31
© 2013 Callista Enterprise | www.callistaenterprise.se Build Pipelines © 2013 Callista Enterprise | www.callistaenterprise.se Build Pipelines Quality through Repeatability Anders Asplund| [email protected] Björn Beskow| [email protected] 1 1

Build&Pipelines - Callista Enterprisecallistaenterprise.se/assets/presentationer/cadec-2013-build... · – Other"Job" • Plugin"Support Test Deploy" ... • DSL konfiguraon ""

  • Upload
    dinhnga

  • View
    217

  • Download
    0

Embed Size (px)

Citation preview

©  2013  Callista  Enterprise  |  www.callistaenterprise.se  Build  Pipelines   ©  2013  Callista  Enterprise  |  www.callistaenterprise.se  

Build  Pipelines  

Quality  through  Repeatability  

Anders  Asplund|  [email protected]  Björn  Beskow|  [email protected]        

1   1  

©  2013  Callista  Enterprise  |  www.callistaenterprise.se  Build  Pipelines   ©  2013  Callista  Enterprise  |  www.callistaenterprise.se  

Quality  through  Repeatability:  Enterprise  Builds  

2  

©  2013  Callista  Enterprise  |  www.callistaenterprise.se  Build  Pipelines   ©  2013  Callista  Enterprise  |  www.callistaenterprise.se  

Build  Automation  

•  SoGware  Builds  should  be  CRISP:  – Complete  – Repeatable  – InformaLve  – Schedulable  – Portable  

3  

©  2013  Callista  Enterprise  |  www.callistaenterprise.se  Build  Pipelines   ©  2013  Callista  Enterprise  |  www.callistaenterprise.se  

Levels  of  build  automation  

Commanded Builds

Scheduled Builds

Triggered Builds

4  

©  2013  Callista  Enterprise  |  www.callistaenterprise.se  Build  Pipelines   ©  2013  Callista  Enterprise  |  www.callistaenterprise.se  

Continuous  Integration  Servers  Provides  Scheduled  and  Triggered  Builds  on  top  of  a  Commanded  build  mechanism  

5  

©  2013  Callista  Enterprise  |  www.callistaenterprise.se  Build  Pipelines   ©  2013  Callista  Enterprise  |  www.callistaenterprise.se  

Challenge:  Modularity  

6  

©  2013  Callista  Enterprise  |  www.callistaenterprise.se  Build  Pipelines   ©  2013  Callista  Enterprise  |  www.callistaenterprise.se  

Upstream/Downstream  Projects  

7  

©  2013  Callista  Enterprise  |  www.callistaenterprise.se  Build  Pipelines   ©  2013  Callista  Enterprise  |  www.callistaenterprise.se  

Challenge:  Externals  (servers,  environments,  …)  

8  

©  2013  Callista  Enterprise  |  www.callistaenterprise.se  Build  Pipelines   ©  2013  Callista  Enterprise  |  www.callistaenterprise.se  

Challenge:  Autonomy  &  Cohesion  

9  

©  2013  Callista  Enterprise  |  www.callistaenterprise.se  Build  Pipelines   ©  2013  Callista  Enterprise  |  www.callistaenterprise.se  

Challenge:  Autonomy  &  Cohesion  

10  

©  2013  Callista  Enterprise  |  www.callistaenterprise.se  Build  Pipelines   ©  2013  Callista  Enterprise  |  www.callistaenterprise.se  

Build  Pipelines  

11  

©  2013  Callista  Enterprise  |  www.callistaenterprise.se  Build  Pipelines   ©  2013  Callista  Enterprise  |  www.callistaenterprise.se  

Build  Pipelines  

•  Wikipedia:  “a  set  of  validaLons  through  which  a  piece  of  soGware  must  pass  on  its  way  to  release”  

12  

©  2013  Callista  Enterprise  |  www.callistaenterprise.se  Build  Pipelines   ©  2013  Callista  Enterprise  |  www.callistaenterprise.se  

Traditional  CI  scope  

13  

©  2013  Callista  Enterprise  |  www.callistaenterprise.se  Build  Pipelines   ©  2013  Callista  Enterprise  |  www.callistaenterprise.se  

Build  Pipelines  scope  

14  

©  2013  Callista  Enterprise  |  www.callistaenterprise.se  Build  Pipelines   ©  2013  Callista  Enterprise  |  www.callistaenterprise.se  

One-­‐click  Deploys  

15  

©  2013  Callista  Enterprise  |  www.callistaenterprise.se  Build  Pipelines   ©  2013  Callista  Enterprise  |  www.callistaenterprise.se  

•  Open  Source  CI  server  •  Formerly  known  as  Hudson  •  Monitors  execuLon  of  repeated  jobs  

–  Manually  –  Scheduled  –  On  code  change  –  Other  Job  

•  Plugin  Support  

Test  

Deploy  

Release  

16  

©  2013  Callista  Enterprise  |  www.callistaenterprise.se  Build  Pipelines   ©  2013  Callista  Enterprise  |  www.callistaenterprise.se  

Plugin  support  for  Build  Pipelines  

•  Build  Pipeline  

•  Build  Flow  

17  

©  2013  Callista  Enterprise  |  www.callistaenterprise.se  Build  Pipelines   ©  2013  Callista  Enterprise  |  www.callistaenterprise.se  

Build  Pipeline  

18  

©  2013  Callista  Enterprise  |  www.callistaenterprise.se  Build  Pipelines   ©  2013  Callista  Enterprise  |  www.callistaenterprise.se  

Build  Pipeline  Support  Plugins  Parameterized  Trigger  Plugin    

19  

©  2013  Callista  Enterprise  |  www.callistaenterprise.se  Build  Pipelines   ©  2013  Callista  Enterprise  |  www.callistaenterprise.se  

Build  Pipeline  Support  Plugins  CondiLonal  BuildStep  Plugin    

20  

©  2013  Callista  Enterprise  |  www.callistaenterprise.se  Build  Pipelines   ©  2013  Callista  Enterprise  |  www.callistaenterprise.se  

Build  Pipeline  Support  Plugins  Join  plugin    

21  

©  2013  Callista  Enterprise  |  www.callistaenterprise.se  Build  Pipelines   ©  2013  Callista  Enterprise  |  www.callistaenterprise.se  

Build  Pipeline  Support  Plugins  More  Plugins  

•  Clone  Workspace  SCM  Plugin  •  Copy  ArLfact  Plugin  

22  

©  2013  Callista  Enterprise  |  www.callistaenterprise.se  Build  Pipelines   ©  2013  Callista  Enterprise  |  www.callistaenterprise.se  

Other  Plugins  JobConfigHistory  

23  

©  2013  Callista  Enterprise  |  www.callistaenterprise.se  Build  Pipelines   ©  2013  Callista  Enterprise  |  www.callistaenterprise.se  

Plugin  support  for  Build  Pipelines  

•  Build  Pipeline  

•  Build  Flow  

24  

©  2013  Callista  Enterprise  |  www.callistaenterprise.se  Build  Pipelines   ©  2013  Callista  Enterprise  |  www.callistaenterprise.se  

Build  Flow  

25  

build(“Test”)!build(“Release”)!

b = build(“Release”)!build(”Deploy to Test”, param: b.build.number)!

build("Test")!build("Release")!parallel (! { build("Deploy to Test") },! { build("Generate docs") }!)!build("Deploy to Staging")!build("Deploy to Production")!

©  2013  Callista  Enterprise  |  www.callistaenterprise.se  Build  Pipelines   ©  2013  Callista  Enterprise  |  www.callistaenterprise.se  

Build  Flow  

26  

©  2013  Callista  Enterprise  |  www.callistaenterprise.se  Build  Pipelines   ©  2013  Callista  Enterprise  |  www.callistaenterprise.se  

Build  Pipeline  

•  Löst  kopplade  byggsteg  –  återanvändbarhet  

•  DSL-­‐konfiguraLon    •  Saknar  visuell  

presentaLon  •  Saknar  stöd  för  

manuella  steg  

Build  Flow  

-­‐  

+   •  Bra  visuell  överblick  •  Läd  ad  komma  igång  

•  Hårt  kopplade  byggsteg  -­‐  Redundans  

27  

©  2013  Callista  Enterprise  |  www.callistaenterprise.se  Build  Pipelines   ©  2013  Callista  Enterprise  |  www.callistaenterprise.se  

Case  Study:  www.papyrus.com  

28  

©  2013  Callista  Enterprise  |  www.callistaenterprise.se  Build  Pipelines   ©  2013  Callista  Enterprise  |  www.callistaenterprise.se  

TODO:  screen  shot  of  Jenkins  

29  

©  2013  Callista  Enterprise  |  www.callistaenterprise.se  Build  Pipelines   ©  2013  Callista  Enterprise  |  www.callistaenterprise.se  

Effects:  

•  Total  effort:  1  man  week  •  Manual  effort  in  packaging  and  deploying  a  release:  1  man  day  -­‐>  5  minutes  

•  Manual  configuraLon  and  verificaLon  points  (areas  for  potenLal  errors)  +20  -­‐>  1  

•  ROI:  Almost  instant  

30  

©  2013  Callista  Enterprise  |  www.callistaenterprise.se  Build  Pipelines   ©  2013  Callista  Enterprise  |  www.callistaenterprise.se  

Questions?  

31