@gil_zilberfeld
An agile introduction
to DevOps
@gil_zilberfeld
Hello!
I AM GIL ZILBERFELD
www.gilzilberfeld.com
www.everydayunittesting.com
www.fastee.im
@gil_zilberfeld
@gil_zilberfeld
@gil_zilberfeld
DevOps
A culture, movement or practice that
emphasizes the collaboration and
communication of both software
developers and other information-
technology professionals while
automating the process of software
delivery and infrastructure changes.
@gil_zilberfeld
@gil_zilberfeld
@gil_zilberfeld
@gil_zilberfeld
DevOps
A culture, movement or practice that
emphasizes the collaboration and
communication of both software
developers and other information-
technology professionals while
automating the process of software
delivery and infrastructure changes.
@gil_zilberfeld
@gil_zilberfeld
@gil_zilberfeld
@gil_zilberfeld
@gil_zilberfeld
The new stuff
New complex problems (Cloud, Serverless)
Environments all the way down
Governance and risk (“You can’t do that!”)
We trust automation
Better tools (Docker, Puppet, Chef)
@gil_zilberfeld
@gil_zilberfeld
New questions
What is release management?
What is a version?
What is a feature?
What is an environment?
When is it ready for release?
How do we fix it when it fails?
@gil_zilberfeld
@gil_zilberfeld
Working software
Developed
Tested
Does what we want
Does what the user wants
Incrementally adds value
@gil_zilberfeld
@gil_zilberfeld
PRINCIPLES
Minimize risk
Minimize waste
Early feedback
You can also split your content
PRACTICES
Source control
Branching
Continuous integration
Unit and integration tests
How do we do develop it?
@gil_zilberfeld
@gil_zilberfeld
PRINCIPLES
Minimize risk
Minimize waste
Early feedback
You can also split your content
PRACTICES
Source control
Branching
Continuous integration
Automatic package
Automatic deploy
Unit and integration tests
E2E tests
“Non-functional” tests
How do we do test it?
@gil_zilberfeld
@gil_zilberfeld
PRINCIPLES
Minimize risk
Minimize waste
Early feedback
You can also split your content
PRACTICES
Branching
Separate environments
Continuous integration
Automated sanity tests
Automatic package
Automatic deploy
Functional tests
E2E tests
“Non-functional” tests
How do we do test it?
@gil_zilberfeld
@gil_zilberfeld
The App
Manual test suite takes a week to run
Data preparation for testing takes 7 hours
Single development environment
No actual customers
Everyone steps on everyone else
@gil_zilberfeld
The App
Design a pipeline from development to pre-
production with the following goals:
Quickest feedback
Reliability
@gil_zilberfeld
@gil_zilberfeld
@gil_zilberfeld
@gil_zilberfeld
PRINCIPLES
Minimize risk
Early feedback
You can also split your content
PRACTICES
Version management
“Side by side” deploy
Continuous deployment
Canary releases
Post-deployment testing
Rollback and roll-forward
How do we do ship it?
@gil_zilberfeld
@gil_zilberfeld
PRINCIPLES
Minimize risk
Minimize waste
You can also split your content
PRACTICES
Production monitoring
Chaos monkeys
Reports on KPIs
How do we do monitor it?
@gil_zilberfeld
@gil_zilberfeld
PRINCIPLES
Minimize risk
Minimize waste
Early feedback
You can also split your content
PRACTICES
Feature toggles
Versioning
MVPs
Data extraction
A/B testing
How do we do product validation?
@gil_zilberfeld
@gil_zilberfeld
The App
The App is live!
We think people interested in hi-tech gadgets will
bring us the big bucks
We want to run a bucket load of experiments
We also have mobile versions, not just web
@gil_zilberfeld
The App
Design the pipeline from dev to production with the
goals:
Quick feedback
Do not interrupt production
Describe risks mitigations, capabilities, and issues
@gil_zilberfeld
@gil_zilberfeld
@gil_zilberfeld
@gil_zilberfeld
@gil_zilberfeld
Thanks!
ANY QUESTIONS?
You can find me at:
@gil_zilberfeld
http://www.GilZilberfeld.com
http://www.EverydayUnitTesting.com
http://www.fastee.im

An agile introduction to DevOps

Editor's Notes

  • #8 Simple to explain, hard to implement