View
381
Download
1
Category
Preview:
Citation preview
@gil_zilberfeld
An agile introduction to DevOps
@gil_zilberfeld
Hello!
I AM GIL ZILBERFELD
www.gilzilberfeld.comwww.everydayunittesting.com
www.fastee.im
@gil_zilberfeld
@gil_zilberfeld
@gil_zilberfeld
DevOpsA 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
DevOpsA 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
PRINCIPLESMinimize risk
Minimize waste
Early feedback
You can also split your content
PRACTICESSource controlBranching
Continuous integration
Unit and integration tests
How do we do develop it?
@gil_zilberfeld
@gil_zilberfeld
PRINCIPLESMinimize risk
Minimize waste
Early feedback
You can also split your content
PRACTICESSource controlBranching
Continuous integrationAutomatic packageAutomatic deploy
Unit and integration testsE2E tests“Non-functional” tests
How do we do test it?
@gil_zilberfeld
@gil_zilberfeld
PRINCIPLESMinimize risk
Minimize waste
Early feedback
You can also split your content
PRACTICESBranchingSeparate environments
Continuous integrationAutomated sanity testsAutomatic packageAutomatic deploy
Functional testsE2E 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
PRINCIPLESMinimize risk
Early feedback
You can also split your content
PRACTICESVersion management“Side by side” deployContinuous deployment
Canary releasesPost-deployment testingRollback and roll-forward
How do we do ship it?
@gil_zilberfeld
@gil_zilberfeld
PRINCIPLESMinimize risk
Minimize waste
You can also split your content
PRACTICESProduction monitoringChaos monkeys
Reports on KPIs
How do we do monitor it?
@gil_zilberfeld
@gil_zilberfeld
PRINCIPLESMinimize risk
Minimize waste
Early feedback
You can also split your content
PRACTICESFeature togglesVersioning
MVPs
Data extractionA/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.comhttp://www.EverydayUnitTesting.com
http://www.fastee.im
Recommended