Building a DevOps Team that isn't Evil

Post on 11-May-2015

2.929 views 2 download

Tags:

Transcript of Building a DevOps Team that isn't Evil

Webinar starts at 1:00 ET You  shouldn’t  be  hearing  anything  yet  

Starting in less than 15 min You  shouldn’t  be  hearing  anything  yet  

Starting in less than 10 min You  shouldn’t  be  hearing  anything  yet  

(I’m  ge6ng  excited,  are  you?)  

Building a DevOps Team (That  isn’t  Evil)  

UrbanCode  Inc.  ©2013  

Presenting Today

Eric  Minick  Technical  Evangelist  etm@urbancode.com  

§  Background  as  a  developer,  tester  and  tools  guy  

§  Last  9  years:  Helping  customers  implement  build,  deploy,  release  automaPon  

         @EricMinick  

UrbanCode  Inc.  ©2013  

The Plan

§ Why  DevOps  (very  briefly)  § Why  would  the  teams  be  seen  as  evil?  §  A  template  for  non-­‐evil  DevOps  teams  §  AddiPonal  Resources,  Q&A  

UrbanCode  Inc.  ©2013  

The Dev /Ops Problem

BA  /  EA   App  Dev   Test                   Ops  

•  A  big  wall  hurts  communicaPon  &  trust  •  Knowledge  mostly  flows  one  way  •  Feedback  is  limited  

•  Processes  and  tools  vary  wildly  via  silos  

Image  credit:  h`p://www.flickr.com/photos/68518558@N00/426688160/sizes/z/in/photostream/    

UrbanCode  Inc.  ©2013  

Idealized solution: blow up the silos

DevOps  

Dev   Test   Ops  

Image  credit:  h`p://www.geograph.org.uk/profile/19979  

UrbanCode  Inc.  ©2013  

Idealized ‘DevOps Team’

Business,  Dev  and  Ops  work  as  one  to  deliver  awesomeness*!  

Biz

Idea!

Dev

Codes /Tests

Agile Reqs.

Ops

Faster / Safer

Release / Monitor

FeedbackLoops

Everywhere

*  Awesomeness  (n):  Rapid  flow  of  business  value  to  the  customer  

UrbanCode  Inc.  ©2013  

But “DevOps team” is a hated term

UrbanCode  Inc.  ©2013  

But “DevOps team” is a hated term

*  h`p://conPnuousdelivery.com/2012/10/theres-­‐no-­‐such-­‐thing-­‐as-­‐a-­‐devops-­‐team/  

The  Devops  movement  addresses  the  dysfuncPon  that  results  from  organizaPons  composed  of  funcPonal  silos.  Thus,  crea+ng  another  func+onal  silo  that  sits  between  dev  and  ops  is  clearly  a  poor  (and  ironic)  way  to  try  and  

solve  these  problems*  

UrbanCode  Inc.  ©2013  

But “DevOps team” is a hated term

The  Devops  movement  addresses  the  dysfuncPon  that  results  from  organizaPons  composed  of  funcPonal  silos.  Thus,  crea+ng  another  func+onal  silo  that  sits  between  dev  and  ops  is  clearly  a  poor  (and  ironic)  way  to  try  and  

solve  these  problems*  

UrbanCode  Inc.  ©2013  

No more silos

Dev   DevOps   Ops  Bad  

UrbanCode  Inc.  ©2013  

Non-Evil (Enterprise) DevOps Teams are Hard

§  Silos  are  tough  to  bust  ­  Just  what  do  you  expect  from  the  VPs  of  Dev  and  Ops?  

§  No,  we’re  not  le6ng  Devs  break  producPon  

§  Limited  #  of  people  in  enterprises  who  “get”  DevOps  ­ When  trying  something  new,  involve  people  who  care  

§  Want  to  start  small  and  learn  something  to  apply  big    

UrbanCode  Inc.  ©2013  

Basic Strategy

Dev   Ops  

DevOps  Team  

Facilitate  be`er  Dev  /  Ops  CollaboraPon  Fight  silo’d  thinking  

UrbanCode  Inc.  ©2013  

Step 1: Assemble your team §  Goal:  Improve  delivery  

­  Reduce  duplicaPon  of  effort,    Improve  consistency,  embrace  change  

§  Members  ­  Developers  ­  Testers  ­  Change  Management  ­  Release  Managers  ­  Release  Engineers  ­  Infrastructure  /  Cloud  People  

§  Advisors  ­  SkepPcs  and  the  “Grumpy  Team”  (security,  audit,  etc)  

§  Team  may  be  full-­‐+me  or  virtual  /  matrix  

h`p://www.fotopedia.com/items/flickr-­‐2133752097  

UrbanCode  Inc.  ©2013  

Step 2: Identify pilot project* teams §  Willing  §  Capable  §  High  rates  of  change  §  Moderate  complexity  §  Highly  visible  

   

 *  3a:  Start  referring  to  them  as  ‘ApplicaPon’  or  ‘Product’  teams  rather  than  ‘Project’.  Project  teams  that  disband  auer  delivery  are  counter-­‐DevOps.    

UrbanCode  Inc.  ©2013  

Step 3: Audit the delivery pipeline §  Look  for  things  that  cause  errors  and  slowdowns  

§  Inconsistent  ­  Environments,  tools,  communicaPon  

§  Slow  or  expensive  ­  Handoffs  ­  Se6ng  up  /  deploying  to  test  environments  

§  If  you  aren’t  constantly  tesPng  the  latest  in  environments  that  are  similar  to  producPon,  there  will  be  stuff  to  fix.    

UrbanCode  Inc.  ©2013  

Step 4: Updated SDLC & toolchain design

PackageRepo

DeploymentChain

Test 1

Test ...

Test n

Prod

VersionMeta-data

ProvisioningController

SourceRepos Env. Def

Images

IaaSProvisioning

ServerConfiguration

EnvironmentConfig

EnvironmentInventory

CMDB

SourceRepos

Continuous Integration & Build

Mgmt. Build

PackageRepo

Build Registeredwith Package

Repo

TriggersVersion

Meta-data

DeploymentSystem

Builds

Test 1

Test ...

Test n

Prod

FunctionalTests

PerformanceTests

Monitoring

EventCorrelation

Rollback

UC  Webinar:  “Building  a  DevOps  Toolchain”  

MVP  Minimum  Viable  Process  

UrbanCode  Inc.  ©2013  

Step 5: Begin executing with pilot teams    

UrbanCode  Inc.  ©2013  

Step 6: Post-mortems / retrospectives  No  ba&le  plan  ever  survives  contact  with  the  enemy.  

 -­‐  Moltke  the  Elder    

§  Meet  and  update  regularly  ­ With  every  major  producPon  release  ­  Host  Dev  /  Ops  post-­‐mortems  for  outages.  The  teams  own  the  event  and  outcomes.  You  facilitate  and  learn.  

UrbanCode  Inc.  ©2013  

Step 7: Roll out to more teams §  Give  up  ownership  of  everything  ­  Build  and  release  -­‐>  applicaPon  teams  ­  Tooling  -­‐>  Infrastructure  and/or  Development  Support  

(if  no  appropriate  group  exists,  lobby  for  one)  

 §  Evangelize  successes,  recruiPng  more  teams  ­  Expand  scope  beyond  web  apps  &  mobile  as  appropriate  

UrbanCode  Inc.  ©2013  

7 steps to a Good DevOps Team 1.  Assemble  a  team  with  diverse  skills  &  backgrounds  2.  IdenPfy  pilot  teams  to  work  with  3.  Audit  the  exisPng  value  delivery  chain  4.  Create  a  plan  of  a`ack  including  process  and  tools  5.  Try  it  6.  Learn  and  replan  7.  OperaPonalize  (give  up  ownership  and  scale)  

UrbanCode  Inc.  ©2013  

Dealing with defenders of the wall §  IdenPfy  them  early  §  Co-­‐opt  them  with  advisors  

­  They  are  either  members  of  the  “grumpy  team”  or  cite  those  people.  

§  Avoid  them  when  picking  pilot  teams  

§  Build  a  business  case  with  your  value  delivery  chain  audit.  It  starts  and  ends  with  the  business.  

UrbanCode  Inc.  ©2013  

Summary §  DevOps  is  firmly  anP-­‐silo  

§  Do  Not  ­  create  a  DevOps  silo  ­  rename  the  ops  silo  “DevOps”  

§  Do    ­  create  a  team  to  facilitate  DevOps  adopPon  ­  work  to  tear  down  walls  and  blur  silos  

UrbanCode  Inc.  ©2013  

References h`p://urbancode.com/resources  

§  Deployment  AutomaPon  Basics  §  Lean  Build  &  Deployment  AutomaPon  §  ITIL  Release  Management  and  AutomaPon  

Blogs.urbancode.com    Twi`er.com/UrbanCode  

UrbanCode  Inc.  ©2013  

Speaking of DevOps toolchains…  Urbancode  is  a  vendor  of  these  types  of  tools:  §  uBuild    ­  Build  automaPon  on  an  enterprise  scale  

§  uDeploy  ­  ApplicaPon  Release  AutomaPon  

§  uRelease  ­  Release  management  and  release  weekend  execuPon  

§  TerraForm  ­  Open  source  environment  provisioning  tool  

Q&A eric@urbancode.com  

Slideshare.net/Urbancode  @EricMinick  

Linked-­‐in  group:  “AutomaPng  Deployment  and  Release”