DEVOPS
What does DevOps try to solve?
T H E P R O B L E M
DEVOPS
Slide 4
Slide 4 text
DEVOPS
“There’s a tacit assumption that projects will run
late, and when they're delivered (if they’re ever
delivered), they will underperform, and not
deliver well against investment. It's a wonder any
of us have a job at all!”
S T E P H E N N E L S O N - S M I T H
Slide 5
Slide 5 text
DEVOPS
What is different about DevOps?
T H E S O LU T I O N
DEVOPS
Slide 6
Slide 6 text
DEVOPS
“Bridging the gap between projects and
operations by using Agile techniques both in
development, project management and system
administration.”
PAT R I C K D U B O I S
Slide 7
Slide 7 text
DEVOPS
Broadly defined, DevOps is a
philosophy or cultural approach that
promotes better communication
between two teams.
T H E B A S I C S
Slide 8
Slide 8 text
DEVOPS
Narrowly defined, DevOp is a job
description for an employee who
possesses the skills to work as a
both a developer and a systems
engineer.
T H E B A S I C S
Slide 9
Slide 9 text
DEVOPS
Communication.
Collaboration.
Multi-disciplinary approach.
Understanding of the domain.
Sensitivity and passion for the business.
KEY PRINCIPLES
Slide 10
Slide 10 text
DEVOPS
Battleground for development,
operations, and QA.
T H E T R A D I T I O N A L W AY:
DEVOPS
Slide 11
Slide 11 text
DEVOPS
Siloization.
Lack of understanding.
No shared goals.
Different backgrounds
and technical skills.
TRADITIONAL THINKING
Slide 12
Slide 12 text
DEVOPS
“Lob it over the wall”
mentality.
“It works on my machine”
Changes are dangerous and
time-consuming.
Deployment is fraught with
peril.
TRADITIONAL PROBLEMS
Slide 13
Slide 13 text
DEVOPS
A TRADITIONAL EXAMPLE
DEVOPS
Slide 14
Slide 14 text
DEVOPS
1 DEVELOPMENT
The developers team writes a ruby application
on Windows using preferred tools, and gems
which rely on native libraries.
Slide 15
Slide 15 text
DEVOPS
2 HANDOFF
The ruby application is delivered to the
operations team who plan to run the
application in production on a Linux server
which runs on metal.
Slide 16
Slide 16 text
DEVOPS
3 PROVISIONING
The operations team provisions a server, and
tries to get the application running using
available libraries.
Slide 17
Slide 17 text
DEVOPS
4 PROBLEMS
QA finds issues and bugs that were introduced
because of missing libraries, different library
versions, and environment configuration
differences.
Slide 18
Slide 18 text
DEVOPS
5 BATTLE
Development and operations flip issues back
and forth, blaming each other for the problems:
“It works on my machine.”
Slide 19
Slide 19 text
DEVOPS
Breaking down barriers, building
bridges, and stressing collaboration.
T H E D E V O P S W AY:
DEVOPS
Slide 20
Slide 20 text
DEVOPS
Combines elements of
Dev, Ops, and QA.
Started as “Agile
Infrastructure”.
Much in common with
agile software
development, and the
“Agile Manifesto”
DEVOPS THINKING
Slide 21
Slide 21 text
DEVOPS
Cooperation.
Communication
Short feedback loops.
Teaching and learning.
Paradigms to support
and enable this.
DEVOPS STRATEGIES
Slide 22
Slide 22 text
DEVOPS
A DEVOPS EXAMPLE
DEVOPS
Slide 23
Slide 23 text
DEVOPS
1 DEVELOPMENT
The development team writes a ruby
application on Windows, but using a Linux
virtual machine, managed with Vagrant and
Chef, as their platform for building the
application and testing it.
Slide 24
Slide 24 text
DEVOPS
2 HANDOFF
The operations team takes the Chef
configuration used by the Developers to
provision a new virtual server on AWS, making
the new system nearly identical.
Slide 25
Slide 25 text
DEVOPS
3 DEPLOYMENT
The application is continuously deployed via a
post-receive git hook, and the QA team is able
to quickly review new features, and provide
feedback to the development team.
Slide 26
Slide 26 text
DEVOPS
4 LAUNCH
When the application is ready for launch, new
production virtual machines are provisioned
alongside the existing systems, using the Chef
configuration to ensure everything is identical.
Slide 27
Slide 27 text
DEVOPS
5 NEW FEATURES
The application runs smoothly, and new
features can be developed confidently using the
established infrastructure and workflows.
Slide 28
Slide 28 text
DEVOPS
T O O L S A N D P R A C T I C E S
PA R A D I G M S
Slide 29
Slide 29 text
DEVOPS
Effortless create/destroy environments
as needed.
Easy testing, portability, accessibility,
etc.
Examples: AWS, Rackspace, VMWare
ESXi, etc.
VIRTUALIZATION
Slide 30
Slide 30 text
DEVOPS
Repeatability without human errors.
Consistency, efficiency, security, etc.
Examples: Vagrant, git hooks, make
variants, etc.
AUTOMATION
Slide 31
Slide 31 text
DEVOPS
Confidence that the system will
perform correctly.
Reduce effects of ‘infrastructure by
coincidence’ —it works, but we cannot
prove why.
Examples: Test kitchen, serverspec,
etc.
TESTING
Slide 32
Slide 32 text
DEVOPS
Describe intended state of systems
programmatically.
‘Infrastructure as Code’: managing
systems as you would manage
programs.
Examples: Chef, Puppet, Ansible, etc.
CODING
Slide 33
Slide 33 text
DEVOPS
Code describes the state of a managed
system.
No forgotten documentation or
unknown state.
Examples: Chef, Puppet, Ansible, etc.
DOCUMENTATION
Slide 34
Slide 34 text
DEVOPS
U S I N G C H E F T O P R O V I S I O N A V I R T U A L S E R V E R
E X A M P L E
Slide 35
Slide 35 text
DEVOPS
B E N E F I T S
Slide 36
Slide 36 text
DEVOPS
Increased confidence.
Less risk and fear.
Faster development and
deployment.
Greater reliability and quality.
More effective systems.
WHY DEVOPS?
Slide 37
Slide 37 text
No content
Slide 38
Slide 38 text
DEVOPS
The Phoenix Project
Gene Kim, Kevin Behr and George Spafford
DevOps Days
http://www.devopsdays.org/
Dev2Ops
http://dev2ops.org/
Patrick Dubois
http://www.jedi.be/blog/
S O U R C E S