Created by Laurence J MacGuire a.k.a Liu Jian Ming
ThoughtWorks Xi’An, 2014/12/04
The Client
Marketing - BA - Programmer - QA
Code that only lives in Git is dead.
And where’s the Ops guy?
Responsibilities
Requirements
Wants
“SysAdmins” & “NetAdmins”
REA’s Operations people
Network Admins
Systems Admins
Security
Responsibilities
Requirements
Wants
It’s bad. It’s a self-reinforcing cycle and everybody loses.
Cut delivery time (each iteration, or less)
Stability through constant/incremental change
Increase visibility/feedback
We can do that w/ Delivery
Development & Operations
It’s bridging the gap between development and operations.
DevOps is a way of doing things. It’s an attitude.
Infrastructure barrier much lower
Traditional SysAdmin offerings have changed
We can leverage their work. And we must!
There are 10 types of people. Those who can read binary, and those who can’t.
– The internet
[Good] ---------(Larry)-------------(Internet Explorer)- [Evil]
[Noodles] --(ShanXi)-------(Larry)---(GuangXi)---------- [Rice]
[LvRouHuoShao] ----(Larry)------------------------- [RouJiaMou]
And it’s all good.
Everyone is different.
No one is better.
Everyone has something to contribute.
How do you think this makes us better, as human beings? as a team?
Everyone is more aware of others.
[Ops] (Javier)----(Colin)-(Karel)---(Larry)-------(WenBo)---- [Dev]
We’ve all shifted towards each other.
Both sides contribute. No one pulls. Everyone is better off.
Continuous Improvement
Simplify even more. Reduce the barrier, to include more people.
Ops people that code/Code people that Ops.
Useful is large organisations
Karel, Lauchlin, DanX, Larry don’t do DevOps
We make our teams better at it.
All you’ve talked about is human resources & project management.
Repeatability: Automation.
Visibility: Logging, Monitoring & Alerting.
Flexibility: Adequate reponse to change.
Repeatability is the ease with which a process can be re-done.
It’s important because it assumes a process and it’s dependencies have been thoroughly understood and distilled to a very simple form.
It’s executable documentation.
$ ftp production-site.com
> put index.php
> put lib/something.php
$ ssh ...
Error prone.
$ RAILS_ENV=production rake deploy
Not error prone. Anyone can run it, and see if it succeeds.
Makes few, if any assumptions.
Plenty of tools exist
Does your tool fit the following criteria?
Visibility is the ease with which one can extract valuable information
It is important because we need to know if something goes wrong, and be able to debug it to fix it.
Too much information. Hard to extract.
$ cat /dev/random > /dev/console
Too little information. no value.
$ rake deploy 2&> /dev/null
Better: Organised, extractable
Nov 30 17:08:45 cnmlarry NetworkManager[1151]: Activation (wlan0) Stage 4 of 5 (IPv6 Configure Timeout) scheduled...
Nov 30 17:08:45 cnmlarry NetworkManager[1151]: Activation (wlan0) Stage 4 of 5 (IPv6 Configure Timeout) started...
Nov 30 17:08:45 cnmlarry NetworkManager[1151]: Activation (wlan0) Stage 4 of 5 (IPv6 Configure Timeout) complete.
Plenty of tools exist
Does your tool fit the following criteria?
The tools you use, are they flexible enough to …
It’s about making IT delivery