moving to a devops mode – easy, hard or just plain terrifying?

48
@spoole167 @danielbryantuk #DevOps MOVING TO A DEVOPS MODE: EASY, HARD OR JUST PLAIN TERRIFYING? Daniel Bryant Steve Poole @danielbryantuk @spoole167

Post on 13-Sep-2014

664 views

Category:

Technology


0 download

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

Page 1: MOVING TO A DEVOPS MODE – EASY, HARD OR JUST PLAIN TERRIFYING?

@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

Page 2: MOVING TO A DEVOPS MODE – EASY, HARD OR JUST PLAIN TERRIFYING?

@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

Page 3: MOVING TO A DEVOPS MODE – EASY, HARD OR JUST PLAIN TERRIFYING?

@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

Page 4: MOVING TO A DEVOPS MODE – EASY, HARD OR JUST PLAIN TERRIFYING?

@YourTwitterHandle#DVXFR14{session hashtag} @spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps

In th

e

begi

nni

ng

Page 5: MOVING TO A DEVOPS MODE – EASY, HARD OR JUST PLAIN TERRIFYING?

@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

Page 6: MOVING TO A DEVOPS MODE – EASY, HARD OR JUST PLAIN TERRIFYING?

@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

Page 7: MOVING TO A DEVOPS MODE – EASY, HARD OR JUST PLAIN TERRIFYING?

@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

Page 8: MOVING TO A DEVOPS MODE – EASY, HARD OR JUST PLAIN TERRIFYING?

@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

Page 9: MOVING TO A DEVOPS MODE – EASY, HARD OR JUST PLAIN TERRIFYING?

@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

Page 10: MOVING TO A DEVOPS MODE – EASY, HARD OR JUST PLAIN TERRIFYING?

@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

Page 11: MOVING TO A DEVOPS MODE – EASY, HARD OR JUST PLAIN TERRIFYING?

@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

Page 12: MOVING TO A DEVOPS MODE – EASY, HARD OR JUST PLAIN TERRIFYING?

@YourTwitterHandle#DVXFR14{session hashtag} @spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps

Break

down

the

silo

s…

Page 13: MOVING TO A DEVOPS MODE – EASY, HARD OR JUST PLAIN TERRIFYING?

@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

Page 14: MOVING TO A DEVOPS MODE – EASY, HARD OR JUST PLAIN TERRIFYING?

@spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps

Netflix are not Unicorns!Netflix are not Unicorns!

Neither are Amazon, etsy, Spotify…

and besides…

Page 15: MOVING TO A DEVOPS MODE – EASY, HARD OR JUST PLAIN TERRIFYING?

@spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps

Change your mindset…Change your mindset…

Page 16: MOVING TO A DEVOPS MODE – EASY, HARD OR JUST PLAIN TERRIFYING?

@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

Page 17: MOVING TO A DEVOPS MODE – EASY, HARD OR JUST PLAIN TERRIFYING?

@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)

Page 18: MOVING TO A DEVOPS MODE – EASY, HARD OR JUST PLAIN TERRIFYING?

@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)

Page 19: MOVING TO A DEVOPS MODE – EASY, HARD OR JUST PLAIN TERRIFYING?

@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?

Page 20: MOVING TO A DEVOPS MODE – EASY, HARD OR JUST PLAIN TERRIFYING?

@YourTwitterHandle#DVXFR14{session hashtag} @spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps

Inte

rlud

e

…CD a

nd

DevOps

Page 21: MOVING TO A DEVOPS MODE – EASY, HARD OR JUST PLAIN TERRIFYING?

@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)

Page 22: MOVING TO A DEVOPS MODE – EASY, HARD OR JUST PLAIN TERRIFYING?

@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

Page 23: MOVING TO A DEVOPS MODE – EASY, HARD OR JUST PLAIN TERRIFYING?

@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

Page 24: MOVING TO A DEVOPS MODE – EASY, HARD OR JUST PLAIN TERRIFYING?

@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

Page 25: MOVING TO A DEVOPS MODE – EASY, HARD OR JUST PLAIN TERRIFYING?

@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

Page 26: MOVING TO A DEVOPS MODE – EASY, HARD OR JUST PLAIN TERRIFYING?

@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’

Page 27: MOVING TO A DEVOPS MODE – EASY, HARD OR JUST PLAIN TERRIFYING?

@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

Page 28: MOVING TO A DEVOPS MODE – EASY, HARD OR JUST PLAIN TERRIFYING?

@YourTwitterHandle#DVXFR14{session hashtag} @spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps

Mak

e

your

mov

e…

Page 29: MOVING TO A DEVOPS MODE – EASY, HARD OR JUST PLAIN TERRIFYING?

@spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps

Developers…Developers…

Page 30: MOVING TO A DEVOPS MODE – EASY, HARD OR JUST PLAIN TERRIFYING?

@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!

Page 31: MOVING TO A DEVOPS MODE – EASY, HARD OR JUST PLAIN TERRIFYING?

@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)

Page 32: MOVING TO A DEVOPS MODE – EASY, HARD OR JUST PLAIN TERRIFYING?

@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…

Page 33: MOVING TO A DEVOPS MODE – EASY, HARD OR JUST PLAIN TERRIFYING?

@spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps

QA…QA…

Page 34: MOVING TO A DEVOPS MODE – EASY, HARD OR JUST PLAIN TERRIFYING?

@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!

Page 35: MOVING TO A DEVOPS MODE – EASY, HARD OR JUST PLAIN TERRIFYING?

@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)

Page 36: MOVING TO A DEVOPS MODE – EASY, HARD OR JUST PLAIN TERRIFYING?

@spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps

Operations…Operations…

Page 37: MOVING TO A DEVOPS MODE – EASY, HARD OR JUST PLAIN TERRIFYING?

@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…

Page 38: MOVING TO A DEVOPS MODE – EASY, HARD OR JUST PLAIN TERRIFYING?

@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)

Page 39: MOVING TO A DEVOPS MODE – EASY, HARD OR JUST PLAIN TERRIFYING?

@spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps

Graphing…Graphing…

Page 40: MOVING TO A DEVOPS MODE – EASY, HARD OR JUST PLAIN TERRIFYING?

@spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps

Graphing…Graphing…

Page 41: MOVING TO A DEVOPS MODE – EASY, HARD OR JUST PLAIN TERRIFYING?

@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

Page 42: MOVING TO A DEVOPS MODE – EASY, HARD OR JUST PLAIN TERRIFYING?

@YourTwitterHandle#DVXFR14{session hashtag} @spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps

Why

not

?

Page 43: MOVING TO A DEVOPS MODE – EASY, HARD OR JUST PLAIN TERRIFYING?

@spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps

Who here ‘does’ Agile?Who here ‘does’ Agile?

Page 44: MOVING TO A DEVOPS MODE – EASY, HARD OR JUST PLAIN TERRIFYING?

@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?

Page 45: MOVING TO A DEVOPS MODE – EASY, HARD OR JUST PLAIN TERRIFYING?

@YourTwitterHandle#DVXFR14{session hashtag} @spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps

Sum

mar

y

Page 46: MOVING TO A DEVOPS MODE – EASY, HARD OR JUST PLAIN TERRIFYING?

@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

Page 47: MOVING TO A DEVOPS MODE – EASY, HARD OR JUST PLAIN TERRIFYING?

@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

Page 48: MOVING TO A DEVOPS MODE – EASY, HARD OR JUST PLAIN TERRIFYING?

@YourTwitterHandle#DVXFR14{session hashtag} @spoole167 @danielbryantuk @spoole167 @danielbryantuk #DevOps#DevOps

Than

ks

Q &

A