everything as code
DESCRIPTION
TRANSCRIPT
everything as code
hart hoovercloud evangelist
Wednesday, August 21, 13
WHAT IS devops?
2
Wednesday, August 21, 13
3
Culture & Work Methodology
Wednesday, August 21, 13
4
What Does DevOps Enable?
Wednesday, August 21, 13
5
Wednesday, August 21, 13
6
Wednesday, August 21, 13
7
Wednesday, August 21, 13
8
Tooling
Wednesday, August 21, 13
9
Wednesday, August 21, 13
10
Wednesday, August 21, 13
11
Gerrit
Wednesday, August 21, 13
12
Wednesday, August 21, 13
13
Deployment Strategies
Wednesday, August 21, 13
14
Wednesday, August 21, 13
15
Wednesday, August 21, 13
16
Wednesday, August 21, 13
17
Cookbooks
Nodes(chef-client)
ChefServer HTTPS
Workstation
knife
Wednesday, August 21, 13
•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
CHEF TOOLS
19
Test Kitchen
berkshelffoodcritic
Vagrant
Wednesday, August 21, 13
20
Wednesday, August 21, 13
21
Manifests
Agents
PuppetMaster HTTPS
PuppetCA
Wednesday, August 21, 13
•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
PUPPET TOOLS
23
Test Kitchen - soon
librarian-puppetpuppet-lint
Vagrant
Wednesday, August 21, 13
PUPPET vs. CHEF
24
Wednesday, August 21, 13
25
Wednesday, August 21, 13
26
States
Minions
Master
Wednesday, August 21, 13
•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
28
Wednesday, August 21, 13
29
SSH
Playbooks
Hosts
Wednesday, August 21, 13
•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
ANSIBLE vs. SALTSTACK
31
Wednesday, August 21, 13
32
Measure All the Things
Wednesday, August 21, 13
CollectD + GRAPHITE
33
Wednesday, August 21, 13
CollectD + GRAPHITE
34
Wednesday, August 21, 13
CollectD + GRAPHITE
35
Wednesday, August 21, 13
NAGIOS
36
NAGIOS
Linux
Windows
Networking
NSClient++
NRPE
SNMP
Wednesday, August 21, 13
NAGIOS PluGINS
37
Wednesday, August 21, 13
38
• Application Monitoring Service
• Agent-based
• Plugins
Wednesday, August 21, 13
39
Automate All the Things
Wednesday, August 21, 13
40
Wednesday, August 21, 13
41
Wednesday, August 21, 13
41
Wednesday, August 21, 13
41
Wednesday, August 21, 13
41
Wednesday, August 21, 13
41
Wednesday, August 21, 13
42
SOME OF THESE != SUCCESS
Wednesday, August 21, 13
43
NO CULTURE BUY-IN = NO DEVOPS
Wednesday, August 21, 13
44
SOFTWARE DEVELOPMENT LIFECYCLE
Wednesday, August 21, 13
45
Wednesday, August 21, 13
45
DEV OPS+
Wednesday, August 21, 13
45
DEV OPS+ QA+
Wednesday, August 21, 13
45
DEV OPS+ QA+
=
DEVOPS
Wednesday, August 21, 13
How to Embrace DevOps
46
SCRUM KANBAN AGILE
Wednesday, August 21, 13
SCRUM
47
Scrum Master
Product Owner Developers
Wednesday, August 21, 13
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
49
1. Design
5. QA 2. Build
4. Release 3. Configure
Wednesday, August 21, 13
SCRUM: KEY MEETINGS
50
Backlog Grooming
Sprint Planning
Daily Scrum
Sprint Review
Sprint Retrospective
Wednesday, August 21, 13
Features In Progress Blocked Tabled Testing Complete
Feature A
Feature B
Feature C
51
KANBAN
Wednesday, August 21, 13
Features In Progress Blocked Tabled Testing Complete
Feature A
Feature B
Feature C
52
KANBAN
Wednesday, August 21, 13
Features In Progress Blocked Tabled Testing Complete
Feature A
Feature B
Feature C
Feature E
Feature D
52
KANBAN
Wednesday, August 21, 13
Features In Progress Blocked Tabled Testing Complete
Feature AFeature BFeature C
Feature E
Feature G
53
KANBAN
Wednesday, August 21, 13
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
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
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
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
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
AGILE TEAMS
57
Traditional Teams AGILE Teams
Project Manager /Team Lead
Servant Leader /Facilitator
Self-Organized
Wednesday, August 21, 13
CONTINUOUS DELIVERY
58
Wednesday, August 21, 13
59
Same Problems
Wednesday, August 21, 13
60
What Version is in Production?
Wednesday, August 21, 13
61
Issues are Found, Fixed & Redeployed Quickly
Wednesday, August 21, 13
62
Test as You Develop
Wednesday, August 21, 13
63
Same Best Practices
Wednesday, August 21, 13
64
Tag, Branch & Release Code that Defines Infra
Wednesday, August 21, 13
65
Coverage Lifecycle Over Various Stages
Wednesday, August 21, 13
66
Continuously Test
Wednesday, August 21, 13
67
Wednesday, August 21, 13
68
Wednesday, August 21, 13
69
Wednesday, August 21, 13
69
Wednesday, August 21, 13
70
Wednesday, August 21, 13
70
INDUSTRY STANDARD!
Wednesday, August 21, 13
70
INDUSTRY STANDARD!
OPEN SOURCE!
Wednesday, August 21, 13
70
THEMES!
INDUSTRY STANDARD!
OPEN SOURCE!
Wednesday, August 21, 13
70
THEMES!
PLUGINS!
INDUSTRY STANDARD!
OPEN SOURCE!
Wednesday, August 21, 13
70
THEMES!
PLUGINS!
INDUSTRY STANDARD!
OPEN SOURCE!
WE KNOW IT!
Wednesday, August 21, 13
71
Wednesday, August 21, 13
72
Wednesday, August 21, 13
So What Happened?
Why Change?
Wednesday, August 21, 13
74
Scaling WordPress is complicated
Wednesday, August 21, 13
74
Scaling WordPress is complicated
Wednesday, August 21, 13
75
Our process was terrible
Wednesday, August 21, 13
75
•Someone emails one of us a post
Our process was terrible
Wednesday, August 21, 13
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
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
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
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
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
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
76
Wednesday, August 21, 13
77
OCTOPRESS
Wednesday, August 21, 13
78
OCTOPRESS
+
Wednesday, August 21, 13
79
Rackspace Cloud Files is GLOBAL
Wednesday, August 21, 13
80
Rackspace Cloud Files is CHEAP
Wednesday, August 21, 13
81
Wednesday, August 21, 13
82
Wednesday, August 21, 13
82
Wednesday, August 21, 13
82
http://github.com/rackerlabs/devsite
Wednesday, August 21, 13
83
Our new process is awesome
Wednesday, August 21, 13
83
•Someone forks our GitHub repo
Our new process is awesome
Wednesday, August 21, 13
83
•Someone forks our GitHub repo
•They write a post: rake new_post[‘Some post’]
Our new process is awesome
Wednesday, August 21, 13
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
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
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
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
84
Wednesday, August 21, 13
85
Wednesday, August 21, 13
86
DEMO TIME
Wednesday, August 21, 13
86
DEMO TIME
MAYBE
?
Wednesday, August 21, 13
87
Wednesday, August 21, 13
88
Wednesday, August 21, 13
Conclusions...
Wednesday, August 21, 13
90
Wednesday, August 21, 13
91
+
Wednesday, August 21, 13
92
OCTOPRESS
+
Wednesday, August 21, 13
93
Wednesday, August 21, 13
ENJOY YOURLUNCH!
Wednesday, August 21, 13