Slide 1

Slide 1 text

DevOps  with  Visual  Studio  2012   Developer  and  Operations  Interactions   Josh  Harrison   Improving  Enterprises  

Slide 2

Slide 2 text

Agile  Development  Methodology  

Slide 3

Slide 3 text

Deployment!  

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

Panic!  

Slide 6

Slide 6 text

Developer’s  Response  

Slide 7

Slide 7 text

Operation’s  Response   •  You  gave  us  unstable  code.  

Slide 8

Slide 8 text

The  conversation   •  Operations:  “Something  is  broke  in  production”   •  Developers:  “It  worked  in  the  Dev  and  Test  environment”  (that  we  set  up)   •  Operations:  “It  looks  like  there  is  a  permission  issue  with  the  database”   •  Developers:  “What  makes  you  think  that?”   •  Operations:  “When  I  log  into  the  box  I  see  errors  in  the  app  log”   •  Developers:  “Can  we  get  permission  to  the  production  box”  

Slide 9

Slide 9 text

Operations  Response  

Slide 10

Slide 10 text

Mean  time  to  Innocence   Engineer:  “I  have  great  news!”   Regular  Human  Being:  “Did  you  fix  the  problem?”   Engineer:  “No,  but  I  can  prove  it’s  not  our  fault”  

Slide 11

Slide 11 text

Incentives  Matter  

Slide 12

Slide 12 text

Operation’s  Incentives   • Uptime   • Stability  

Slide 13

Slide 13 text

Developer’s  Incentives     • Speed  to  market   • New  functionality   • Rapid  change   • Slamming  in  cool  new  architectures   • Agility  

Slide 14

Slide 14 text

The  Conflict      

Slide 15

Slide 15 text

Agile  is  making  this  problem  worse      

Slide 16

Slide 16 text

DevOps   "is  a  software  development   method  that  stresses   communication,  collaboration   and  integration  between   software  developers  and   information  technology  (IT)   professionals"    

Slide 17

Slide 17 text

Adopting  DevOps   •  Process   •  Culture   •  Tools  

Slide 18

Slide 18 text

Process   •  Version  Control   •  Automate   •  Build   •  Testing   •  Deployment   •  Configuration   •  Monitor   •  Reflect   •  Continuous  Improvement   •  Treat  infrastructure  as  Code  

Slide 19

Slide 19 text

Tools   •  Version  Control  (TFS,  Git,  SVN)   •  Resource  Pools  (Windows  Azure,  Hyper  V,  VMWare,  Amazon  EC2)   •  Configuration  Management  (Windows  Azure,  TFS,  Chef,  Puppet)   •  Continuous  Integration  (TFS,  Team  City,  Hudson)   •  Monitoring  (SCOM,  Avicode,  Log4Net)  

Slide 20

Slide 20 text

Culture   •  Overcome  Stereotypes   •  Developers  are  lazy,  reckless,  and  have  large  egos   •  Sys  admins  just  want  to  say  “No”   •   Engage  early  and  often   •  Transparency  –  What  will  this  change  do  to  the  other  side.   •  Define  done  (last  mile  syndrome)   •  Invite  everyone  to  standups   •  …and  retrospectives  

Slide 21

Slide 21 text

Practice   •  Build  Often   •  Test  Often   •  Deploy  Often   •   Engage  Often  

Slide 22

Slide 22 text

Infrastructure  as  Code   Imagine  your  data  center  suddenly  disapeared.  Which  of  the  below  would  take   the  longest  to  bring  back  online?     •  Source  Code   •  Application  Data   •  Server  Infrastructure  

Slide 23

Slide 23 text

Implementing  Infrastructure  as  Code   1.  Create  a  resource  pool   2. Compose  infrastructure  into  network  addressable  resources   3.  Connect  addressable  resources  

Slide 24

Slide 24 text

Demo  

Slide 25

Slide 25 text

Further  Reading    

Slide 26

Slide 26 text

Q  &  A  

Slide 27

Slide 27 text

About  Me   •  Name:  Josh  Harrison   •  Company:  Improving  Enterprises   •  Twitter:  @josh_r_harrison   •  Email:  [email protected]