Moving to a DevOps mode - easy, hard or just plain terrifying? - Daniel Bryant and Steve Poole

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

Transcript of Moving to a DevOps mode - easy, hard or just plain terrifying? - Daniel Bryant and Steve Poole

@spoole167 @danielbryantuk #DevOps

MOVING TO A DEVOPS MODE:

EASY, HARD OR JUST PLAIN TERRIFYING?

@spoole167 @danielbryantuk #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 ü Finding problems, then solutions

Steve Poole IBM Developer

ü Making Java Real Since Version 0.9 ü Open Source Advocate ü DevOps Practitioner (whatever that means!) ü Driving Change

@spoole167 @danielbryantuk #DevOps

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 #DevOps

In the beginning

@spoole167 @danielbryantuk #DevOps

Design, Code

Unit test

Functional Test System test

Stage Configure

Fix bugs

Fix bugs Helpline

Monitor, backup upgrade, support, repair

security, compliance

Uses

reality chasm

@spoole167 @danielbryantuk #DevOps

Reinforced team separation Long feedback cycles Long time-to-market

Tended to increase ‘Release Panic’

BIG Reality Chasm DEV OPS

@spoole167 @danielbryantuk #DevOps Time

# o

f bug

s

Start to panic here

Really panic here

DEV OPS

QA Client

£ Value here

@spoole167 @danielbryantuk #DevOps Time

# o

f bug

s

Start to panic here

Really panic here

DEV OPS

QA Client

No Value here

@spoole167 @danielbryantuk #DevOps Time

# o

f bug

s

Feedback here

OPS

Client

DEV

Feedback here Feedback here

QA £

Value here

@spoole167 @danielbryantuk #DevOps Time

# o

f bug

s

OPS

Client

DEV

QA

£

I want value here

And here

@spoole167 @danielbryantuk #DevOps Time

# o

f bug

s

OPS

Client

DEV

QA

£ Move Left

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

Break down the silos…

@spoole167 @danielbryantuk #DevOps

ü Culture

ü Common goals

ü Shared responsibility

ü Education

ü Standard technology

@spoole167 @danielbryantuk #DevOps

Netflix are not Unicorns!

Neither are Amazon, etsy, Spotify…

…and anyway…

@spoole167 @danielbryantuk #DevOps

@spoole167 @danielbryantuk #DevOps

•  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 #DevOps

•  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 #DevOps

•  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 (bit.ly/1o6TY01)

@spoole167 @danielbryantuk #DevOps

…so how does this work for individual teams?

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

Interlude… CD and DevOps

@spoole167 @danielbryantuk #DevOps

•  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 #DevOps

Continuous Integration

JUnit

SCM Build

Build Orchestration

Unit Test

@spoole167 @danielbryantuk #DevOps

Continuous Integration

JUnit

Continuous Delivery

Repository

Performance & QA

Deployment tools

@spoole167 @danielbryantuk #DevOps

Continuous Integration

JUnit

Continuous Delivery

Continuous Deployment

Hosting

Deployment tools

@spoole167 @danielbryantuk #DevOps

Continuous Deployment Pipeline

External Cloud

On premises cloud

Clo

ud

Dep

loym

ent

Orc

hest

rato

r JUnit

@spoole167 @danielbryantuk #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 #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 #DevOps

Make your move…

@spoole167 @danielbryantuk #DevOps

@spoole167 @danielbryantuk #DevOps

•  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 #DevOps

•  Design patterns •  Asynchronous communication

•  Timeouts / retries

•  Bulkheads / circuit-breakers

•  Metrics are your friend •  Technical and business data

•  Logging (centralised)

@spoole167 @danielbryantuk #DevOps

•  Learn Linux fundamentals

•  Diagnostic skills •  top, iotop, iostat, netstat, vmstat

•  Java utils: jps, jstat, jmap, jhat

•  “DevOps Troubleshooting” by K. Rankin

@spoole167 @danielbryantuk #DevOps

@spoole167 @danielbryantuk #DevOps

•  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 #DevOps

•  Unit and Intra-component integration testing •  Utilise embedded datastore/middleware •  Service Virtualisation (www.mbtest.org)

•  Inter-component integration testing •  The hardest part of SOA… •  Consider ‘synthetic txns’ (active monitoring)

•  Performance •  JMeter + plugins •  Gatling

@spoole167 @danielbryantuk #DevOps

@spoole167 @danielbryantuk #DevOps

•  Learn about coding (pair program!) •  Python, Ruby, Groovy

•  Get closer to Dev & QA •  Provide constant feedback

•  Embrace chaos for testing •  Simian army…

@spoole167 @danielbryantuk #DevOps

•  Infrastructure monitoring •  Nagios / Zabbix

•  AppDynamics / Zipkin

•  Several trail-blazers •  Etsy (www.codeascraft.com) •  Netflix (techblog.netflix.com)

@spoole167 @danielbryantuk #DevOps

@spoole167 @danielbryantuk #DevOps

@spoole167 @danielbryantuk #DevOps

•  “Infrastructure as Code”

•  Automate all provisioning •  Chef, Puppet, SaltStack, Ansible •  Packer, Veewee, Aminator

•  Play with Vagrant (www.vagrantup.com)

•  The future? •  LXC, Docker •  Mesos, Kubernetes, CoreOS Fleet

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

Why not?

@spoole167 @danielbryantuk #DevOps

@spoole167 @danielbryantuk #DevOps

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 #DevOps

Summary

@spoole167 @danielbryantuk #DevOps

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 #DevOps

You should be terrified

The transition will be hard

But it’s easy to get started

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

Thanks Q & A