Top Banner
everything as code hart hoover cloud evangelist Wednesday, August 21, 13
127
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Everything as Code

everything as code

hart hoovercloud evangelist

Wednesday, August 21, 13

Page 2: Everything as Code

WHAT IS devops?

2

Wednesday, August 21, 13

Page 3: Everything as Code

3

Culture & Work Methodology

Wednesday, August 21, 13

Page 4: Everything as Code

4

What Does DevOps Enable?

Wednesday, August 21, 13

Page 5: Everything as Code

5

Wednesday, August 21, 13

Page 6: Everything as Code

6

Wednesday, August 21, 13

Page 7: Everything as Code

7

Wednesday, August 21, 13

Page 8: Everything as Code

8

Tooling

Wednesday, August 21, 13

Page 9: Everything as Code

9

Wednesday, August 21, 13

Page 10: Everything as Code

10

Wednesday, August 21, 13

Page 11: Everything as Code

11

Gerrit

Wednesday, August 21, 13

Page 12: Everything as Code

12

Wednesday, August 21, 13

Page 13: Everything as Code

13

Deployment Strategies

Wednesday, August 21, 13

Page 14: Everything as Code

14

Wednesday, August 21, 13

Page 15: Everything as Code

15

Wednesday, August 21, 13

Page 16: Everything as Code

16

Wednesday, August 21, 13

Page 17: Everything as Code

17

Cookbooks

Nodes(chef-client)

ChefServer HTTPS

Workstation

knife

Wednesday, August 21, 13

Page 18: Everything as Code

•Nodes: Servers

•Environments: Groups of nodes (Dev/QA/Prod)

•Recipes: Describes the desired state of a node

•Cookbooks: Group of Recipes

•Roles: Group of Cookbooks (Web)

•Attribute: information about the current state of a node

18

Wednesday, August 21, 13

Page 19: Everything as Code

CHEF TOOLS

19

Test Kitchen

berkshelffoodcritic

Vagrant

Wednesday, August 21, 13

Page 20: Everything as Code

20

Wednesday, August 21, 13

Page 21: Everything as Code

21

Manifests

Agents

PuppetMaster HTTPS

PuppetCA

Wednesday, August 21, 13

Page 22: Everything as Code

•Nodes: Servers

•Environments: Groups of nodes (Dev/QA/Prod)

•Manifests: Describes the desired state of a node

•Catalog: Group of Manifests

•Facts: information about the current state of a node

22

Wednesday, August 21, 13

Page 23: Everything as Code

PUPPET TOOLS

23

Test Kitchen - soon

librarian-puppetpuppet-lint

Vagrant

Wednesday, August 21, 13

Page 24: Everything as Code

PUPPET vs. CHEF

24

Wednesday, August 21, 13

Page 25: Everything as Code

25

Wednesday, August 21, 13

Page 26: Everything as Code

26

States

Minions

Master

Wednesday, August 21, 13

Page 27: Everything as Code

•Nodes: Minions

•Environments: Groups of nodes (Dev/QA/Prod)

•States: Describes the desired state of a node

•Grains: information about the current state of a node

27

Wednesday, August 21, 13

Page 28: Everything as Code

28

Wednesday, August 21, 13

Page 29: Everything as Code

29

SSH

Playbooks

Hosts

Wednesday, August 21, 13

Page 30: Everything as Code

•Hosts: Servers

•Groups: Groups of Hosts (Dev/QA/Prod)

•Play: Describes the desired state of a Host.

•Playbook: Group of Plays

•Roles: Group of Hosts (Web)

•Facts: information about the current state of a Host.

30

Wednesday, August 21, 13

Page 31: Everything as Code

ANSIBLE vs. SALTSTACK

31

Wednesday, August 21, 13

Page 32: Everything as Code

32

Measure All the Things

Wednesday, August 21, 13

Page 33: Everything as Code

CollectD + GRAPHITE

33

Wednesday, August 21, 13

Page 34: Everything as Code

CollectD + GRAPHITE

34

Wednesday, August 21, 13

Page 35: Everything as Code

CollectD + GRAPHITE

35

Wednesday, August 21, 13

Page 36: Everything as Code

NAGIOS

36

NAGIOS

Linux

Windows

Networking

NSClient++

NRPE

SNMP

Wednesday, August 21, 13

Page 37: Everything as Code

NAGIOS PluGINS

37

Wednesday, August 21, 13

Page 38: Everything as Code

38

• Application Monitoring Service

• Agent-based

• Plugins

Wednesday, August 21, 13

Page 39: Everything as Code

39

Automate All the Things

Wednesday, August 21, 13

Page 40: Everything as Code

40

Wednesday, August 21, 13

Page 41: Everything as Code

41

Wednesday, August 21, 13

Page 42: Everything as Code

41

Wednesday, August 21, 13

Page 43: Everything as Code

41

Wednesday, August 21, 13

Page 44: Everything as Code

41

Wednesday, August 21, 13

Page 45: Everything as Code

41

Wednesday, August 21, 13

Page 46: Everything as Code

42

SOME OF THESE != SUCCESS

Wednesday, August 21, 13

Page 47: Everything as Code

43

NO CULTURE BUY-IN = NO DEVOPS

Wednesday, August 21, 13

Page 48: Everything as Code

44

SOFTWARE DEVELOPMENT LIFECYCLE

Wednesday, August 21, 13

Page 49: Everything as Code

45

Wednesday, August 21, 13

Page 50: Everything as Code

45

DEV OPS+

Wednesday, August 21, 13

Page 51: Everything as Code

45

DEV OPS+ QA+

Wednesday, August 21, 13

Page 52: Everything as Code

45

DEV OPS+ QA+

=

DEVOPS

Wednesday, August 21, 13

Page 53: Everything as Code

How to Embrace DevOps

46

SCRUM KANBAN AGILE

Wednesday, August 21, 13

Page 54: Everything as Code

SCRUM

47

Scrum Master

Product Owner Developers

Wednesday, August 21, 13

Page 55: Everything as Code

Product Backlog

Sprint Backlog Sprint Working increment

of the software

48

1. Design

5. QA 2. Build

4. Release 3. Configure

Wednesday, August 21, 13

Page 56: Everything as Code

49

1. Design

5. QA 2. Build

4. Release 3. Configure

Wednesday, August 21, 13

Page 57: Everything as Code

SCRUM: KEY MEETINGS

50

Backlog Grooming

Sprint Planning

Daily Scrum

Sprint Review

Sprint Retrospective

Wednesday, August 21, 13

Page 58: Everything as Code

Features In Progress Blocked Tabled Testing Complete

Feature A

Feature B

Feature C

51

KANBAN

Wednesday, August 21, 13

Page 59: Everything as Code

Features In Progress Blocked Tabled Testing Complete

Feature A

Feature B

Feature C

52

KANBAN

Wednesday, August 21, 13

Page 60: Everything as Code

Features In Progress Blocked Tabled Testing Complete

Feature A

Feature B

Feature C

Feature E

Feature D

52

KANBAN

Wednesday, August 21, 13

Page 61: Everything as Code

Features In Progress Blocked Tabled Testing Complete

Feature AFeature BFeature C

Feature E

Feature G

53

KANBAN

Wednesday, August 21, 13

Page 62: Everything as Code

Features In Progress Blocked Tabled Testing Complete

Feature AFeature BFeature C

Feature E

Feature D

Feature F

Feature G

53

KANBAN

Wednesday, August 21, 13

Page 63: Everything as Code

Features In Progress Blocked Tabled Testing Complete

Feature A

Feature B

Feature C

Feature E

Feature D

Feature F

Feature G

54

KANBAN

Wednesday, August 21, 13

Page 64: Everything as Code

Features In Progress Blocked Tabled Testing Complete

Feature A

Feature B

Feature C

Feature E

Feature D

Feature F

Feature G

Feature H

Feature I

54

KANBAN

Wednesday, August 21, 13

Page 65: Everything as Code

Features In Progress Blocked Tabled Testing Complete

Feature A

Feature B

Feature C

Feature EFeature D

Feature F

Feature G

Feature H

Feature I

55

KANBAN

Wednesday, August 21, 13

Page 66: Everything as Code

AGILE DEVELOPMENT

• Individuals and interactions over process and tools

• Working software over comprehensive documentation

• Customer collaboration over contract negotiation• Responding to change over following a plan

56

Wednesday, August 21, 13

Page 67: Everything as Code

AGILE TEAMS

57

Traditional Teams AGILE Teams

Project Manager /Team Lead

Servant Leader /Facilitator

Self-Organized

Wednesday, August 21, 13

Page 68: Everything as Code

CONTINUOUS DELIVERY

58

Wednesday, August 21, 13

Page 69: Everything as Code

59

Same Problems

Wednesday, August 21, 13

Page 70: Everything as Code

60

What Version is in Production?

Wednesday, August 21, 13

Page 71: Everything as Code

61

Issues are Found, Fixed & Redeployed Quickly

Wednesday, August 21, 13

Page 72: Everything as Code

62

Test as You Develop

Wednesday, August 21, 13

Page 73: Everything as Code

63

Same Best Practices

Wednesday, August 21, 13

Page 74: Everything as Code

64

Tag, Branch & Release Code that Defines Infra

Wednesday, August 21, 13

Page 75: Everything as Code

65

Coverage Lifecycle Over Various Stages

Wednesday, August 21, 13

Page 76: Everything as Code

66

Continuously Test

Wednesday, August 21, 13

Page 77: Everything as Code

67

Wednesday, August 21, 13

Page 78: Everything as Code

68

Wednesday, August 21, 13

Page 79: Everything as Code

69

Wednesday, August 21, 13

Page 80: Everything as Code

69

Wednesday, August 21, 13

Page 81: Everything as Code

70

Wednesday, August 21, 13

Page 82: Everything as Code

70

INDUSTRY STANDARD!

Wednesday, August 21, 13

Page 83: Everything as Code

70

INDUSTRY STANDARD!

OPEN SOURCE!

Wednesday, August 21, 13

Page 84: Everything as Code

70

THEMES!

INDUSTRY STANDARD!

OPEN SOURCE!

Wednesday, August 21, 13

Page 85: Everything as Code

70

THEMES!

PLUGINS!

INDUSTRY STANDARD!

OPEN SOURCE!

Wednesday, August 21, 13

Page 86: Everything as Code

70

THEMES!

PLUGINS!

INDUSTRY STANDARD!

OPEN SOURCE!

WE KNOW IT!

Wednesday, August 21, 13

Page 87: Everything as Code

71

Wednesday, August 21, 13

Page 88: Everything as Code

72

Wednesday, August 21, 13

Page 89: Everything as Code

So What Happened?

Why Change?

Wednesday, August 21, 13

Page 90: Everything as Code

74

Scaling WordPress is complicated

Wednesday, August 21, 13

Page 91: Everything as Code

74

Scaling WordPress is complicated

Wednesday, August 21, 13

Page 92: Everything as Code

75

Our process was terrible

Wednesday, August 21, 13

Page 93: Everything as Code

75

•Someone emails one of us a post

Our process was terrible

Wednesday, August 21, 13

Page 94: Everything as Code

75

•Someone emails one of us a post

•We read it and send it back to them for revisions.

Our process was terrible

Wednesday, August 21, 13

Page 95: Everything as Code

75

•Someone emails one of us a post

•We read it and send it back to them for revisions.

•They rewrite it and send us a new file... via email.

Our process was terrible

Wednesday, August 21, 13

Page 96: Everything as Code

75

•Someone emails one of us a post

•We read it and send it back to them for revisions.

•They rewrite it and send us a new file... via email.

•Round and round we go.

Our process was terrible

Wednesday, August 21, 13

Page 97: Everything as Code

75

•Someone emails one of us a post

•We read it and send it back to them for revisions.

•They rewrite it and send us a new file... via email.

•Round and round we go.

•We email the finished article to our editor, Andrew.

Our process was terrible

Wednesday, August 21, 13

Page 98: Everything as Code

75

•Someone emails one of us a post

•We read it and send it back to them for revisions.

•They rewrite it and send us a new file... via email.

•Round and round we go.

•We email the finished article to our editor, Andrew.

•Andrew emails us a different copy with his edits.

Our process was terrible

Wednesday, August 21, 13

Page 99: Everything as Code

75

•Someone emails one of us a post

•We read it and send it back to them for revisions.

•They rewrite it and send us a new file... via email.

•Round and round we go.

•We email the finished article to our editor, Andrew.

•Andrew emails us a different copy with his edits.

•We copy/paste into WordPress and post.

Our process was terrible

Wednesday, August 21, 13

Page 100: Everything as Code

76

Wednesday, August 21, 13

Page 101: Everything as Code

77

OCTOPRESS

Wednesday, August 21, 13

Page 102: Everything as Code

78

OCTOPRESS

+

Wednesday, August 21, 13

Page 103: Everything as Code

79

Rackspace Cloud Files is GLOBAL

Wednesday, August 21, 13

Page 104: Everything as Code

80

Rackspace Cloud Files is CHEAP

Wednesday, August 21, 13

Page 105: Everything as Code

81

Wednesday, August 21, 13

Page 106: Everything as Code

82

Wednesday, August 21, 13

Page 107: Everything as Code

82

Wednesday, August 21, 13

Page 108: Everything as Code

82

http://github.com/rackerlabs/devsite

Wednesday, August 21, 13

Page 109: Everything as Code

83

Our new process is awesome

Wednesday, August 21, 13

Page 110: Everything as Code

83

•Someone forks our GitHub repo

Our new process is awesome

Wednesday, August 21, 13

Page 111: Everything as Code

83

•Someone forks our GitHub repo

•They write a post: rake new_post[‘Some post’]

Our new process is awesome

Wednesday, August 21, 13

Page 112: Everything as Code

83

•Someone forks our GitHub repo

•They write a post: rake new_post[‘Some post’]

•They submit a pull request to us.

Our new process is awesome

Wednesday, August 21, 13

Page 113: Everything as Code

83

•Someone forks our GitHub repo

•They write a post: rake new_post[‘Some post’]

•They submit a pull request to us.

•We revise it via a GitHub discussion

Our new process is awesome

Wednesday, August 21, 13

Page 114: Everything as Code

83

•Someone forks our GitHub repo

•They write a post: rake new_post[‘Some post’]

•They submit a pull request to us.

•We revise it via a GitHub discussion

•We merge the commit.

Our new process is awesome

Wednesday, August 21, 13

Page 115: Everything as Code

83

•Someone forks our GitHub repo

•They write a post: rake new_post[‘Some post’]

•They submit a pull request to us.

•We revise it via a GitHub discussion

•We merge the commit.

•DEPLOY!

Our new process is awesome

Wednesday, August 21, 13

Page 116: Everything as Code

84

Wednesday, August 21, 13

Page 117: Everything as Code

85

Wednesday, August 21, 13

Page 118: Everything as Code

86

DEMO TIME

Wednesday, August 21, 13

Page 119: Everything as Code

86

DEMO TIME

MAYBE

?

Wednesday, August 21, 13

Page 120: Everything as Code

87

Wednesday, August 21, 13

Page 121: Everything as Code

88

Wednesday, August 21, 13

Page 122: Everything as Code

Conclusions...

Wednesday, August 21, 13

Page 123: Everything as Code

90

Wednesday, August 21, 13

Page 124: Everything as Code

91

+

Wednesday, August 21, 13

Page 125: Everything as Code

92

OCTOPRESS

+

Wednesday, August 21, 13

Page 126: Everything as Code

93

Wednesday, August 21, 13

Page 127: Everything as Code

ENJOY YOURLUNCH!

Wednesday, August 21, 13