xebialabs @ jenkins user conference nyc 2014

23
Delivery Automation & Acceleration T. J. Randall Director of Sales Engineering XebiaLabs xebialabs.com @xebialabs

Upload: xebialabs

Post on 21-May-2015

226 views

Category:

Software


1 download

TRANSCRIPT

Page 1: XebiaLabs @ Jenkins User Conference NYC 2014

Delivery  Automation  &  Acceleration  T. J. Randall Director of Sales Engineering XebiaLabs xebialabs.com @xebialabs

Page 2: XebiaLabs @ Jenkins User Conference NYC 2014

2 Copyright  2014.    Confiden4al  –  Distribu4on  prohibited  without  permission    

What’s  Wrong  with  Software  Delivery  Today?  

High Error Rate Lots of Delays Manual Process

Page 3: XebiaLabs @ Jenkins User Conference NYC 2014

3 Copyright  2014.    Confiden4al  –  Distribu4on  prohibited  without  permission    

What  do  we  use?  

We love Jenkins ourselves and use it for our continuous integration needs

Build Failure Analyzer

Helps us to understand why builds are failing, especially when analyzing possible infrastructure issues.

Matrix Reloaded Plugin

Allows users to easily rebuild parts of an already built Matrix build.

Promoted Builds Plugin

Distinguish good builds from bad builds by introducing the notion of 'promotion'.

Throttle Concurrent Builds Plugin

For throttling the number of concurrent builds of a project running per node or globally.

Page 4: XebiaLabs @ Jenkins User Conference NYC 2014

4 Copyright  2014.    Confiden4al  –  Distribu4on  prohibited  without  permission    

What  do  we  see  others  use?  

I get the benefit to go to lots of different customers, in all kinds of verticals, and see how they are using Jenkins.

Build Monitor Plugin Great for teams to publish build results on screens

Swarm Plugin Enables slaves to auto-discover nearby Jenkins master and join it automatically, thereby forming an ad-hoc cluster.

Shelve Project Plugin Lets you shelve projects so that they can easily be resurrected. (delayed trashcan ;)

Timestamp Plugin Adds timestamps to builds. Makes it easier to understand what is running slowing, or see that a job is stuck without activity.

Page 5: XebiaLabs @ Jenkins User Conference NYC 2014

5 Copyright  2014.    Confiden4al  –  Distribu4on  prohibited  without  permission    

Goals  for  Continuous  Delivery  Implementation  

“Processes and tools for achieving Continuous Delivery need to get me to Production faster.”

All decisions need to keep this goal in mind.

Page 6: XebiaLabs @ Jenkins User Conference NYC 2014

6 Copyright  2014.    Confiden4al  –  Distribu4on  prohibited  without  permission    

When  do  some  people  start  to  think  about  other  tools?  

When do you hit the edges of your CI tool?

Examples Security: authentication in DEV, QA & PROD environments from CI tool Reporting: providing necessary documentation for releases

Jenkins has the luxury problem based on their success

People have expanded technically, and are reaching limits Expanding into areas where they hit organizational problems

Page 7: XebiaLabs @ Jenkins User Conference NYC 2014

7 Copyright  2014.    Confiden4al  –  Distribu4on  prohibited  without  permission    

The  Onion  of  Continuous  Delivery  

The  onion  is  bigger  than  Jenkins  -­‐  in  each  layer  is  more  "pain”  (but  not  necessarily  in  this  order)  

Capacity  /  Slave  Pool  

Pipelines  Deployment  

Code  Coverage  

Code  Build  Integra4on  tes4ng    

Onion  represents  technical  challenges,  as  well  as  mul<ple  parts  of  the  organiza<on  

Consumer  audience  not  happy  with  how  informa4on  is  presented  

Release  Management  

Page 8: XebiaLabs @ Jenkins User Conference NYC 2014

8 Copyright  2014.    Confiden4al  –  Distribu4on  prohibited  without  permission    

How  do  you  "Productionalize"  Your  Tools  

How do you include all of your teams in your continuous delivery tool set? How did your automation tools get chosen?

Who maintains your automation tools?

Upgrades? Compliance?

Most organizations try to limit/avoid cross-team activities

when choosing a tool.

Page 9: XebiaLabs @ Jenkins User Conference NYC 2014

9 Copyright  2014.    Confiden4al  –  Distribu4on  prohibited  without  permission    

What  do  you  need  for  Continuous  Delivery?    (as  it  relates  to  teams)  

Ever notice that our CD tooling and processes are a lot like this?

Page 10: XebiaLabs @ Jenkins User Conference NYC 2014

10 Copyright  2014.    Confiden4al  –  Distribu4on  prohibited  without  permission    

Outline  for  Continuous  Delivery  Tools  

Let’s take a look at five technical needs for continuous delivery as they relate to both tools and teams.

Continuous Integration Deployment Scaling Test Release Management

For the conversation, we’ll use five teams that you might come across as part of your application release process.

DEV QA DBA Network Services Ops

Page 11: XebiaLabs @ Jenkins User Conference NYC 2014

11 Copyright  2014.    Confiden4al  –  Distribu4on  prohibited  without  permission    

Continuous  Integration  (reality)  

Team   What  they  currently  have  

DEV   CI  tool  that  allows  them  to  quickly  build  applica4ons.  DEV  teams  normally  drive  this  decision  

QA   “CI  tool?    We  don’t  need  no  s/nkin’  CI  tool!”  

DBA   “I  don’t  check  SQL  into  a  SCM.”  

Network  Services   “What’s  a  CI  tool?”  

OPS   “What’s  a  CI  tool?”  

Business   “What’s  a  CI  tool?”  

VERY  hard  to  answer  “What  Changed?”,  “Why  Changed?”  and  “How  Changed?”  

Page 12: XebiaLabs @ Jenkins User Conference NYC 2014

12 Copyright  2014.    Confiden4al  –  Distribu4on  prohibited  without  permission    

Continuous  Integration  

Team   What  they  need  

DEV   Same  CI  tool  for  all  teams.  Commits  can  document  why  a  change  was  made.  (not  just  “fixed  variable  assignment”)  

QA   QA  needs  to  understand  the  changes  as  the  relate  to  request  (enhancement,  bug  fix,  etc.)  

DBA   SQL  scripts  are  code.    Check  them  in.  

Network  Services   Scripts  are  code.    Check  them  in.  

OPS   Can  use  CI  informa4on  for  understanding  parts  of  system  that  are  changing.  

Business   Visibility  into  the  delivery  of  their  changes  

Page 13: XebiaLabs @ Jenkins User Conference NYC 2014

13 Copyright  2014.    Confiden4al  –  Distribu4on  prohibited  without  permission    

Deployment  (reality)  

Team   What  they  currently  have  

DEV   Some  tools,  some  custom  scrip4ng,  some  magic  sauce  

QA   “You’re  not  puIng  that  tool  in  MY  environment!”  

DBA   “You  can’t  automated  database  deployments.    Just  call  us  when  you’re  ready.”  

Network  Services   “There’s  a  deployment  going  on?  Why  didn’t  anyone  tell  us?!”  

OPS   “Why  are  there  seven  tabs  of  instruc/ons  for  one  app?!”  

Business   “Can  someone  please  tell  us  when  we  can  log  in  to  test?”  

Different  deployment  tools  and  processes  across  environments  

Page 14: XebiaLabs @ Jenkins User Conference NYC 2014

14 Copyright  2014.    Confiden4al  –  Distribu4on  prohibited  without  permission    

Deployment  

Team   What  they  need  

DEV   Tooling  that  ensures  consistent,  fast  deployments  in  environments.  

QA   Deployments  based  on  same  process  as  DEV,  with  no  manual  steps.  

DBA   Either  SQL  code  is  part  of  automated  deployment,  or  no4fica4ons  included  in  overall  automa4on.  

Network  Services   Visibility  into  current  and  upcoming  deployments  

OPS   Same  deployment  process  as  earlier  environments,  with  no  manual  steps  

Business   Visibility  into  current  and  upcoming  deployments,  along  with  automated  no4fica4ons.  

Page 15: XebiaLabs @ Jenkins User Conference NYC 2014

15 Copyright  2014.    Confiden4al  –  Distribu4on  prohibited  without  permission    

Scaling  (some  versions  of  reality)  

Team   What  they  currently  have  

DEV   Scrip4ng  to  instan4ate  needed  environments  

QA   Requests  made  to  Network  Services  for  infrastructure  

DBA   “You  can’t  scale  databases!”  

Network  Services   Service  en4ty  for  crea4ng,  maintaining  and  gran4ng  access  to  infrastructure  

OPS   “We’ve  got  our  own  environments  to  maintain”  

Business   “What  address  do  I  put  in  the  browser?”  

Difficulty  crea<ng,  maintaining  and  accessing  scaled  infrastructure  

Page 16: XebiaLabs @ Jenkins User Conference NYC 2014

16 Copyright  2014.    Confiden4al  –  Distribu4on  prohibited  without  permission    

Scaling  

Team   What  they  need  

DEV   Infrastructure  scaled  as  part  of  CI  /  deployment  process  

QA   Infrastructure  scaled  as  part  of  deployment  process  

DBA   Hop  in  the  pool!    The  water  is  great!  

Network  Services   Visibility  /  access  to  all  infrastructure  

OPS   Visibility  /  access  to  all  infrastructure  

Business   Clear  informa4on  about  infrastructure  available  for  access  

Page 17: XebiaLabs @ Jenkins User Conference NYC 2014

17 Copyright  2014.    Confiden4al  –  Distribu4on  prohibited  without  permission    

Test  (reality)  

Team   What  they  currently  have  

DEV   CI  tools  provide  a  lot  of  func4onality  here.    Tests  not  related  to  other  groups  (to  help  avoid  duplica4on)  

QA   Normally  choose/maintain  their  own  test  tools.    Tests  are  created  based  on  conversa4ons  with  DEV  and  business.    QA  is  the  first  “integrated”  environment.  

DBA   “Tes/ng?    The  database  is    up….”  

Network  Services   Normally  choose/maintain  their  own  tools,  which  are  not  accessible/used  by  other  teams  

OPS   Ad  hoc  reports  of  tests  completed  

Business   “We’ll  do  our  own  “smoke”  (manual)  tes/ng,  and  track  the  results  in  a  spreadsheet”  

Silos  of  informa<on,  as  well  as  non-­‐consistent  tes<ng  across  environments  

Page 18: XebiaLabs @ Jenkins User Conference NYC 2014

18 Copyright  2014.    Confiden4al  –  Distribu4on  prohibited  without  permission    

Test  

DEV   What  they  need  

QA   Tooling  that  gives  them  much  broader  coverage/feedback,  as  well  as  tes4ng  in  earlier  environments.  

DBA   Database  needs  to  be  tested  also  –  not  just  load  tes4ng!  

Network  Services   Tes4ng  applica4on  as  it  relates  to  infrastructure  in  each  environment  

OPS   Tests  that  validate  release  is  successful  

Business   Feedback  into  all  groups  about  tes4ng  requirements,  so  that  more  automated  tests  can  be  built  

DEV   Test  tool  that  gives  quick  results  on  each  build.    Same  tests  are  available  to  other  teams  for  their  use  

Page 19: XebiaLabs @ Jenkins User Conference NYC 2014

19 Copyright  2014.    Confiden4al  –  Distribu4on  prohibited  without  permission    

Release  Management  (aka  “Excel”)  

Team   What  they  currently  have  

DEV   Some  tooling  (ex/  JIRA);  E-­‐mails  sent  to  PM  to  relate  what  is  being  worked  on  

QA   Sources  of  informa4on  (e-­‐mail,  defect  system,  spreadsheets,  etc.)  to  relate  what  is  in  QA  /  what  is  coming.  

DBA   “Just  tell  us  when  to  deploy  your  SQL.”  

Network  Services   “I’ve  got  my  own  releases  to  maintain  –  I  can  squeeze  you  in  next  Thursday.”  

OPS   “Wednesday  release  mee/ng  (kinda)  tells  me  what  to  expect  this  week-­‐end.”  

Business   “When  are  my  features  geIng  delivered?!”  

Kludge,  manual,  broken  communica<on  for  the  most  important  thing!    

Page 20: XebiaLabs @ Jenkins User Conference NYC 2014

20 Copyright  2014.    Confiden4al  –  Distribu4on  prohibited  without  permission    

Release  Management    

Team   What  they  need  

DEV   CI,  deployment,  scaling  and  tes4ng  informa4on  feeds  into  release  management  system  

QA   Release  management  drives  dates  so  that  QA  is  part  of  overall  release,  not  viewed  as  a  bo_leneck  

DBA   Team  ac4vely  par4cipates  in  their  por4on(s)  of  the  release  process  

Network  Services   Included,  but  not  necessarily  ac4vely  involved,  with  applica<on  release  

OPS   Easily  access  all  informa4on  about  all  releases.  

Business   Ability  to  access  and  par<cipate  in  release  process  

Page 21: XebiaLabs @ Jenkins User Conference NYC 2014

21 Copyright  2014.    Confiden4al  –  Distribu4on  prohibited  without  permission    

Outline  for  Continuous  Delivery  Tools  

Tool   What  to  look  for  

Con4nuous  Integra4on   Tool(s)  build  all  applica4ons  automa4cally  

Deployment   Manages  deployments  for  all  environments.    

Scaling   Allows  easy  crea4on,  modifica4on  and  destroy  opera4ons,  as  well  as  seamless  integra4on  to  deployment  tool.  

Test   Aggregates  test  results  from  various  tools  

Release  Management   Used  by  all  teams  in  app  release  process!  

Page 22: XebiaLabs @ Jenkins User Conference NYC 2014

22 Copyright  2014.    Confiden4al  –  Distribu4on  prohibited  without  permission    

(not  so)  Clever  closing…  

   

       

App  1.0  App  2.1   App  2.0   App  1.2  

   

Dev   Test  1   Test  2   QA1   QA2   PROD  

Private  /  Public  Cloud  

   

Did  I  men4on  I  was  a  vendor?  

Page 23: XebiaLabs @ Jenkins User Conference NYC 2014

23 Copyright  2014.    Confiden4al  –  Distribu4on  prohibited  without  permission    

Thank  You!  

Contact Details T. J. Randall, Director of Sales Engineering, XebiaLabs, [email protected]

@TJRandall

More  Informa<on      Products:      www.xebialabs.com/products  

   Blog:    blog.xebialabs.com  

   TwiUer:    @xebialabs  

   Videos:    vimeo.com/xebialabs