journée devops : de l'intégration continue au déploiement continu avec jenkins

39
©2014 CloudBees, Inc. All Rights Reserved From CI to CD with Jenkins Cyrille Le Clerc, Product Management, CloudBees Geoffroy Warin, Xebia

Upload: xebia-france

Post on 08-May-2015

789 views

Category:

Software


1 download

DESCRIPTION

Vous n'avez pas pu assister à la journée DevOps by Xebia ? Voici la présentation de Cyrille Le Clerc (Cloudbees) et Geoffroy Warrin (Xebia) : "De l'intégration continue au déploiement continu avec Jenkins"

TRANSCRIPT

Page 1: Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins

©2014 CloudBees, Inc. All Rights Reserved

From CI to CD with Jenkins Cyrille  Le  Clerc,  Product  Management,  CloudBees  Geoffroy  Warin,  Xebia  

Page 2: Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins

©2014 CloudBees, Inc. All Rights Reserved

/me

Cyrille Le Clerc  

@cyrilleleclerc  

Open  Source  

CTO  

DevOps,  Infra  as  Code,  ConEnuous  Delivery  

Product  Manager  

Page 3: Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins

©2014 CloudBees, Inc. All Rights Reserved

/me

Geoffroy Warin  

@geowarin  Développeur  

@geowarin  

CraHsmanship  

Page 4: Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins

©2014 CloudBees, Inc. All Rights Reserved

/you

Dev? Ops? CI? Maven? CD?

Page 5: Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins

©2014 CloudBees, Inc. All Rights Reserved

Agenda

•  Concepts:  CI,  Jenkins  and  CD  •  New  roles  for  Jenkins  

– Cross  team  – Deployment  – Workflow  

•  Great  power,  great  responsibiliEes  

Page 6: Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins

©2014 CloudBees, Inc. All Rights Reserved

Concepts

Continuous Integration

Page 7: Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins

©2014 CloudBees, Inc. All Rights Reserved

Continuous Integration

•  PracEce  of  SoHware  Engineering  •  Introduced  by  eXtreme  Programming  •  Prevent  the  “IntegraEon  Hell”  •  IteraEve  

Page 8: Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins

©2014 CloudBees, Inc. All Rights Reserved

/you

What is Continuous Integration?

Page 9: Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins

©2014 CloudBees, Inc. All Rights Reserved

Continuous Integration Principles

•  Source  code  repository  •  Automated  build  •  Self  tesEng  build  •  Commit  to  the  baseline  every  day  

•  Build  every  commit  

•  Everybody  can  see  the  results  of  the  build  

•  Latest  deliverable  easy  to  download  

•  Fast  build  

Wikipedia  

Page 10: Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins

©2014 CloudBees, Inc. All Rights Reserved

Jenkins

Page 11: Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins

©2014 CloudBees, Inc. All Rights Reserved

CloudBees & Jenkins

•  Premier  provider  of  Jenkins  services  and  support  

•  Java  PaaS  

•  CEO:  Sacha  Labourey  •  CTO:  Kohsuke  Kawaguchi    

Page 12: Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins

©2014 CloudBees, Inc. All Rights Reserved

Meet Jenkins…

•  #1  ConEnuous  IntegraEon  and  ConEnuous  Deployment  server  

•  Java  web  applicaEon    

 “java  –jar  jenkins.war”  

•  MIT-­‐licensed,  8  years  old  

•  500+  releases  

jenkins-ci.org

Page 13: Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins

©2014 CloudBees, Inc. All Rights Reserved Source:  2012  Jenkins  Survey    

Page 14: Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins

©2014 CloudBees, Inc. All Rights Reserved

#1 Continuous Integration Tool in the Market

14,2%  

21,8%  

15,7%  

50,4%  

28,3%  

16,0%  

32,2%  

16,0%  

32,2%  

48,2%  

30,8%  

2,3%  

6,0%  

5,1%  

11,6%  

7,1%  

10,1%  

20,1%  

15,3%  

29,8%  

50,8%  

42,3%  

4,5%  

6,1%  

6,2%  

6,5%  

8,0%  

9,7%  

10,9%  

12,7%  

16,7%  

35,3%  

38,3%  

41,3%  

Gradle  Other  (specify)  

CMake  PDE  Build  

Custom/in-­‐house  Tycho  

Sonatype  Nexus  Hudson  Make  

Jenkins  Ant  

Maven  

What  build  and  release  management  products  do  you  typically  use?  (Select  all  that  apply.)  

2013  

2012  

2011  

2010  

Page 15: Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins

©2014 CloudBees, Inc. All Rights Reserved

Massive Adoption

•  61,000+  installaEons  around  the  world;  +60%  in  last  year  •  700+  plugins  by  500  contributors  •  Huge  community  

Page 16: Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins

©2014 CloudBees, Inc. All Rights Reserved

Continuous Delivery

Visualizations are a courtesy of Nhan Ngo, Spotify Available on countinuousdelivery.com under Creative license

Page 17: Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins

©2014 CloudBees, Inc. All Rights Reserved

Reliable Software Releases through

Build, Test, and Deployment

Automation    

Page 18: Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins

©2014 CloudBees, Inc. All Rights Reserved

Continuous Delivery

   

Page 19: Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins

©2014 CloudBees, Inc. All Rights Reserved

Feedback

   

Page 20: Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins

©2014 CloudBees, Inc. All Rights Reserved

Continuous Delivery – Martin Fowler

   

ü  Your software is deployable throughout its lifecycle ü  Prioritize deployable software over new features ü  Fast, automated feedback on the product readiness ü  Push-button deployments of any version of the software to any environment

on demand

Contact  :    

Benoit Moussaud  Technical Director Southern Europe  

Page 21: Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins

©2014 CloudBees, Inc. All Rights Reserved

Continuous Integration Steps

Con@

nuou

s  Delivery  

Source Code

Quality Analysis

Unit Tests

Binaries

Page 22: Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins

©2014 CloudBees, Inc. All Rights Reserved

DEV

DEV

OPS

QA

Continuous Delivery Steps

Con@

nuou

s  Delivery  

Source Code

Quality Analysis

Unit Tests

Binaries

Perfs Environment

Func Test Environment

UAT Environment

Production Environment

GO LIVE!

Release!

Staging Environment

Page 23: Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins

©2014 CloudBees, Inc. All Rights Reserved

Jenkins: Hub of Continuous Delivery

•  Connect  the  dots  

•  It  is  the  process  

Page 24: Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins

©2014 CloudBees, Inc. All Rights Reserved

New Roles for Jenkins

•  Cross  team  plaiorm  •  Deployment  automaEon  

–  App,  dataset  …  environment  provisioning  •  Test  automaEon:  load  test,  acceptance  test  …  •  Release  management  •  Workflow  

Jenkins  as  an  ApplicaEon  Lifecycle  Management  plaiorm  

Page 25: Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins

©2014 CloudBees, Inc. All Rights Reserved

Cross Team Platform

•  Not  only  used  by  DEV  but  also  QA  and  OPS  

•  Various  profiles  and  skills  

•  Mission  CriEcal  

Page 26: Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins

©2014 CloudBees, Inc. All Rights Reserved

Deployment Automation

•  Same  tools  and  automaEons  on  all  the  environments  

xxx Environment

xxx Environment

•  Deploy  app,  dataset  …  •  Plugins  ecosystem  

Page 27: Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins

©2014 CloudBees, Inc. All Rights Reserved

Test Automation

•  Powered  by  Jenkins  ecosystem  

•  Requires  full  environment  setup  (app,  dataset)  

Page 28: Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins

©2014 CloudBees, Inc. All Rights Reserved

Brian Marick

Page 29: Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins

©2014 CloudBees, Inc. All Rights Reserved

Release Management

•  Not  only  “mvn release:prepare release:perform”  

•  Includes  QA  validaEon,  Staging  …  

•  “Jenkins'  Maven  job  type  considered  evil”  S.  Connolly    

Page 30: Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins

©2014 CloudBees, Inc. All Rights Reserved

Workflow

Nightly Build

Unit Tests

Perfs Tests

Selenium Tests Deploy to UAT

Sonar Analysis

Page 31: Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins

©2014 CloudBees, Inc. All Rights Reserved

Workflow

Choreograph  acEviEes  that  are  …  •  complex  •  long-­‐running  •  not  sequenEal  •  pausable  •  retryable  

Page 32: Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins

©2014 CloudBees, Inc. All Rights Reserved

Workflow

Today  

•  Build  Flow  Plugin  

•  Build  Pipeline  Plugin  

•  Build  Delivery  Pipeline  

Page 33: Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins

©2014 CloudBees, Inc. All Rights Reserved

Workflow

Page 34: Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins

©2014 CloudBees, Inc. All Rights Reserved

Jenkins Workflow Plugin

•  Engine  is  Open  Source  •  Should  become  a  de-­‐facto  standard  for  CD  •  Groovy  DSL  •  1  single  job  to  replace  mulEple  atomic  jobs  •  Intended  for  graphical  visualizaEon  and  value-­‐added  extensions  

•  SomeEmes  in  2014  

Page 35: Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins

©2014 CloudBees, Inc. All Rights Reserved

Great power, great responsibilities

Cross  team  collaboraEon  plaiorm:  

•  High  Availability  and  SLAs  

•  Security  

Page 36: Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins

©2014 CloudBees, Inc. All Rights Reserved

High Availability and SLAs

•  Jumbo  Jenkins  masters  are  fragile  –  MulEple  medium  sized  Jenkins  masters  

•  Careful  version  upgrades  –  TesEng  environment  +  Jenkins  &  plugins  version  control  

•  Support  •  It’s  not  an  open  bar,  security  

Jenkins  OperaEons  Center  (JOC)  

Enterprise  Update  Center  +  JOC    

Professional  support  

Page 37: Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins

©2014 CloudBees, Inc. All Rights Reserved

Security

•  AuthenEcaEon  

•  Audit  

•  Role  Base  Access  Control  

Jenkins  OperaEons  Center  (JOC)  

Jenkins  Enterprise  by  CloudBees  

Page 38: Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins

©2014 CloudBees, Inc. All Rights Reserved

Continuous Delivery is

•  People  •  Process  •  Tools  

Page 39: Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins

©2014 CloudBees, Inc. All Rights Reserved