moving to a devops mode – easy, hard or just plain terrifying?
Post on 13-Sep-2014
664 views
DESCRIPTION
Slides from my and Daniel Bryant's (@danielbryantuk) talk at Devoxx UK2014 http://www.devoxx.co.uk/2014/03/moving-to-a-devops-mode-easy-hard-or-just-plain-terrifying/ DevOps – is it for you? Heard about the wonderful ways it could benefit your organisation, but put off by the scary stories? Can you really make the transition to DevOps, and is it worth it? Listen and learn from two DevOps practitioners about their hands-on experiences in making the change. Covering a range of real life examples, this talk will explain the real business benefits to be had from using DevOps techniques, as well as the technical and personal aspects involved. Whether it’s a small team within a startup or one of hundreds within a large organisation, this talk has practical advice on how to approach the challenge, what critical changes need to be considered, and what tools and processes are best suited for the situation. The adoption of DevOps is a game changing event for the industry. Learn why and learn how you can benefit from it too.TRANSCRIPT
@spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps
MOVING TO A DEVOPS MODE: EASY, HARD OR JUST PLAIN TERRIFYING?
MOVING TO A DEVOPS MODE: EASY, HARD OR JUST PLAIN TERRIFYING?
Daniel Bryant Steve Poole@danielbryantuk @spoole167Daniel Bryant Steve Poole@danielbryantuk @spoole167
@spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps
Your Guides for Today’s Journey into DevOps…Your Guides for Today’s Journey into DevOps…
Daniel Bryant
Principal Consultant, OpenCredo
Full-Stack Developer
Open Source Advocate
Agile, Continuous Delivery and DevOps
Aspiring Software Craftsman
Steve Poole
IBM Developer
Making Java Real Since Version 0.9
Open Source Advocate
DevOps Practitioner (whatever that means!)
Driving Change
@spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps
Our Goals…Our Goals…
• DevOps is about extending ‘agility’ across your IT organisation
• Implementing this is not going to be easy…
• … some things will be hard, some things terrifying
• However, there are real benefits
@YourTwitterHandle#DVXFR14{session hashtag} @spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps
In th
e
begi
nni
ng
@spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps
Once upon a time the universe was staticOnce upon a time the universe was static
Design, Code Unit test
Functional TestSystem test
Stage Configure
Fix bugsFix bugsHelpline
Monitor, backupupgrade, support,
repairsecurity, compliance
Usesreality chasm
@spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps
This was called “Waterfall” This was called “Waterfall”
Reinforced team separation
Long feedback cycles Long time-to-market
Tended to increase ‘Release Panic’
BIGRealityChasmDEVDEV OPSOPS
@spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps
Waterfall - more a roller-coaster ride…Waterfall - more a roller-coaster ride…
Time
# o
f bu
gs
Start to panichere
DEVDEVOPSOPS
QAQA
ClientClient£
Value here
Really panichere
Reality Chasm
@spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps
If you fell into the reality chasm…If you fell into the reality chasm…
Time
# o
f bu
gs
Start to panichere Really
panichere
DEVDEVOPSOPS
QAQA
ClientClient
NoValue here
@spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps
Agile helps reduce the chasm Agile helps reduce the chasm
Time
# o
f bu
gs
Feedback here
OPSOPS
ClientClient
DEVDEV
Feedback here
Feedback here
QAQA£
Value here
@spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps
But now clients say…But now clients say…
Time
# o
f bu
gs
OPSOPS
ClientClient
DEVDEV
QAQA
£
I want valuehere
And here
@spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps
The new challenge – we can’t afford the gapThe new challenge – we can’t afford the gap
Time
# o
f bu
gs
OPSOPS
ClientClient
DEVDEV
QAQA
Move LeftMove Left
@YourTwitterHandle#DVXFR14{session hashtag} @spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps
Break
down
the
silo
s…
@spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps
How to bring Dev, QA & Ops together?How to bring Dev, QA & Ops together?
Culture
Common goals
Shared responsibility
Education
Standard technology
@spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps
Netflix are not Unicorns!Netflix are not Unicorns!
Neither are Amazon, etsy, Spotify…
and besides…
@spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps
Change your mindset…Change your mindset…
@spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps
Culture is VitalCulture is Vital
• Culture drives behaviour, drives culture…
• “Communication, simplicity, feedback, courage”
• Everyone is responsible for delivery
• Continuous experimentation and learning
• Not easy to change culture
• The hardest part of DevOps…
• …but you will learn new things
@spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps
Changing CultureChanging Culture
• Greenfield
• Flickr’s story (slidesha.re/sHpYV)
• “Why other people don’t get it”
• Sandro Mancuso (slidesha.re/1bcStpe)
• Enterprise
• “The Phoenix Project” (Gene Kim et al)
@spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps
Changing CultureChanging Culture
• Create an effective team…
• “Habits of highly effective technical teams” • Martijn Verburg (bit.ly/1aF9SnK)
• “Patterns of Effective Teams”• Dan North (vimeo.com/68226771)
• Buy some doughnuts… • Andrzej Grzesik (http://www.youtube.com/watch?
v=OFr0PoIIdvk)
@spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps
We’ve all got issues…We’ve all got issues…
Great, so how does this work for individual teams?
@YourTwitterHandle#DVXFR14{session hashtag} @spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps
Inte
rlud
e
…CD a
nd
DevOps
@spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps
Continuous Delivery and DevOps go hand-in-hand…Continuous Delivery and DevOps go hand-in-hand…
• Create a build and deployment pipeline
• Adopting Continuous Delivery • Jez Humble (http://bit.ly/1oEReUM)
• Implementing Continuous Delivery• Rachel Laycock (http://bit.ly/1l1qMPf)
@spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps
Start with automated build & unit testStart with automated build & unit test
Continuous IntegrationContinuous Integration
JUnitJUnit
SCM BuildBuild Orchestration
UnitTest
@spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps
Add staging for automated QAAdd staging for automated QA
Continuous IntegrationContinuous Integration
JUnitJUnit
Continuous DeliveryContinuous Delivery
Repository
Performance & QA
Deployment tools
@spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps
Add “automatic(ish) deployment to production™” Add “automatic(ish) deployment to production™”
Continuous IntegrationContinuous Integration
JUnitJUnit
Continuous DeliveryContinuous Delivery
Continuous DeploymentContinuous Deployment
Hosting
Deployment tools
@spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps
Base it on virtualization technologiesBase it on virtualization technologies
Continuous Deployment PipelineContinuous Deployment Pipeline
External CloudExternal CloudOn premises cloudOn premises cloud
Clo
ud
Dep
loym
ent
Orc
hest
rato
r
Clo
ud
Dep
loym
ent
Orc
hest
rato
rJUnitJUnit
@spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps
The imperative of DevOpsThe imperative of DevOps
Startups through to big businesses are demanding the value that DevOps & Cloud Technologies can offer
1. Production deployment pipeline up and running in days
2. Updates published in hours
DevOps helps transition an organization into this new world…
Helps to remove the ‘reality chasm’
@spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps
The imperative of DevOpsThe imperative of DevOps
The cost?
1. Standardized pipelines
2. Dev and Ops teams working together
3. Greatly expanding your horizons and your technical
skills
4. Leaving your comfort zone
@YourTwitterHandle#DVXFR14{session hashtag} @spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps
Mak
e
your
mov
e…
@spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps
Developers…Developers…
@spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps
Contribute to the pipelineContribute to the pipeline
• Continuous Integration
• Unit / Integration Tests
• Automate all the things
• Stop throwing stuff over the wall…
• …or we’ll throw you over it too!
@spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps
Moving closer to OpsMoving closer to Ops
• Design patterns
• Asynchronous communication
• Timeouts / retries
• Bulkheads / circuit-breakers
• Metrics are your friend
• Technical and business data
• Logging (centralised)
@spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps
Thinking/Acting like a sysadminThinking/Acting like a sysadmin
• Learn Linux fundamentals
• Diagnostic skills
• top, iotop, iostat, netstat, vmstat
• Java utils: jps, jstat, jmap, jhat
• “DevOps Troubleshooting” by K. Rankin
• Maybe grow a beard…
@spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps
QA…QA…
@spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps
Automating QAAutomating QA
• Automate all the things…
• Tests can be specifications• Specifications can be tests…
• Make it easy for everyone to execute• Make it fast (and conditional)
• Contribute to the build pipeline• If you want people to care, then fail the build!
@spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps
Automating QAAutomating QA
• Unit and Intra-component integration testing• Spock is awesome • Utilise embedded datastore/middleware
• Performance• JMeter + plugins • Gatling
• Website• Geb (Groovy + Selenium)
@spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps
Operations…Operations…
@spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps
Ops should be operational…Ops should be operational…
• Learn about coding (pair program!)
• Python, Ruby, Groovy
• Get closer to Dev & QA
• Provide constant feedback
• Embrace chaos for testing
• Simian army…
@spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps
Monitoring is mandatoryMonitoring is mandatory
• Infrastructure monitoring
• Nagios
• Zabbix
• Splunk
• AppDynamics
• Several trail-blazers
• Etsy (www.codeascraft.com)
• Netflix (techblog.netflix.com)
@spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps
Graphing…Graphing…
@spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps
Graphing…Graphing…
@spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps
Say No To Snowflakes!Say No To Snowflakes!
• “Infrastructure as Code”• Version control everything
• Automate all provisioning• Chef, Puppet, SaltStack, Python, AWS CLI
• Play with Vagrant (www.vagrantup.com)
• Docker and Packer are also interesting
@YourTwitterHandle#DVXFR14{session hashtag} @spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps
Why
not
?
@spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps
Who here ‘does’ Agile?Who here ‘does’ Agile?
@spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps
Are you personally ready?Are you personally ready?
• Do you use Agile techniques?
• Can you spell “Continuous Integration”?
• Are the advantages of DevOps clear?
• Could you communicate them to your Dev & Ops teams?
@YourTwitterHandle#DVXFR14{session hashtag} @spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps
Sum
mar
y
@spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps
SummarySummary
Businesses need to be able to react faster… …DevOps and the Cloud are key enablers
DevOps is as much a game changer as Agile was……this is a Developer, QA and Ops “renaissance”
Don’t be afraid to learn and experiment……you’ll benefit even if the tech doesn’t survive
Agile moved you closer to the customer……DevOps moves you closer to the IT team
@spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps
Moving to a DevOps Mode…Moving to a DevOps Mode…
You should be terrified
The transition will be hard
But it’s easy to get started
@YourTwitterHandle#DVXFR14{session hashtag} @spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps
Than
ks
Q &
A