From Continous Integration toContinuous DeliveryHenri GomezINSA Lyon11 June 2012| © 2012 Axway | All rights reserved.
Aim of this document    •       Today Software Challenges    •       Expose what are CI and CDs    •       Continuous Deli...
Business Interaction Networks                                        Axway is the Business Interaction                    ...
About @hgomez    •  CI Architect @ Axway    •  Former Senior Ops Director    •  Former Developer, Team Leader and Architec...
Software Challenges
Software Challenges    Today    •       Software projects are larger and complex    •       More and more component intero...
Software Challenges    Early ages    •  Build / Release on a “per request” basis after              –  Project reaches a p...
Software Challenges    Then came Agile8 | © 2012 Axway | All rights reserved.
Software Challenges    Mandatory tooling for Agile    •  Standardize Build, Test and Deployment    •  Provide Continuous B...
Software Challenges     Ideal life-cycle for Agile10 | © 2012 Axway | All rights reserved.
Continuous Integration
Continuous Integration     Definition     •  Continuous Integration is the practice of integrating early        and often,...
Continuous Integration     Workflow13 | © 2012 Axway | All rights reserved.
Continuous Integration     Workflow     •  Team members work on code               –  Code and Unit tests               – ...
Continuous Integration     Building     •  Fetch code               –  From SCM     •  Build code               –  Test co...
Continuous Integration     QA = Quality Assurance     •  Functional Testing               –  Match expected behavior      ...
Continuous Integration     Build in Action #117 | © 2012 Axway | All rights reserved.
Continuous Integration     Build in Action #218 | © 2012 Axway | All rights reserved.
Continuous Integration     Build in Action #319 | © 2012 Axway | All rights reserved.
Continuous Integration     Build in Action #420 | © 2012 Axway | All rights reserved.
Continuous Integration – QA Focus
Continuous Integration – QA     Unit Testing     •  Unit Tests test the code     •  Ensures the code is doing what we inte...
Continuous Integration – QA     Functional Testing     •  Check code behavior     •  Automated or manual     •  Tests perf...
Continuous Integration – QA     Performance Testing    •  Check system and application behavior    •  Stress tests    •  S...
Continuous Integration – QA     Capacity Planning     •  Performance testing ++     •  Stress and tortures tests     •  De...
Continuous Integration – Tools
Continuous Integration - Tools     A rich ecosystem     •       Sources Repositories"     •       Build Engines"     •    ...
Continuous Integration – Tools     Some names and logos28 | © 2012 Axway | All rights reserved.
Continuous Integration – What’s next ?
Continuous Integration – Next     What’s next ?     •  Continuous Deployment is not Continuous Integration30 | © 2012 Axwa...
Continuous Integration – Next     Continuous Deployment in action31 | © 2012 Axway | All rights reserved.
Continuous Integration – Next     Assembly is key !     •  Fetch Dev Artifacts               –  Mandate component approach...
Continuous Integration – Next     Delivery and Deployment     •  Delivery "               –  Providing product to end user...
Continuous Delivery
Continuous Delivery     Definition     •  Continuous Delivery could be seen as the process who        bring products to in...
Continous Delivery     Requirements     •  Contents Repository               –  Precisely identified components           ...
Continuous Deployment
Continuous Deployment     Definition     •  Continuous Deployment is the process who bring        products running on syst...
Continuous Deployment     For Dev Teams     •  Code Testing from Trunk     •  Deployment decision by Dev Teams     •  Oper...
Continuous Deployment     For QA Teams     •  Product Testing on Internal        Releases     •  Deployment decisions on  ...
Continuous Deployment     For OPS Teams     •  Product install or update from Releases     •  Deployment decision by OPS/ ...
Continuous Deployment     Requirements     •  Products Repository               –  Precisely identified products          ...
Continuous Deployment     Factory     •  Deployment Factory               –  Production of Native Packages               –...
Contents Repository
Contents Repository     Definition     •  Shared referential               –  For Development Teams               –  For Q...
Contents Repository     Benefits     •  Common referential               –  Artifacts provided by developers in developmen...
CI Today and beyond
Today     CI     •  From Source to Artifacts               –  Developper commit               –  CI build project(s) relat...
Today     Delivery     •  From Artifacts to Delivery               –  Assembler collect artifacts, build and deploy from i...
Today     Deployment     •  From Artifacts to Deployment               –  Assembler collect artifacts and launch appliance...
Tomorrow     Continuous Delivery     •  On demand delivery via QA/Project Manager51 | © 2012 Axway | All rights reserved.
Tomorrow     Continuous Packaging     •  Native packages continuous production               –      For developpers usage ...
Tomorrow     On Demand Deployment     •  On Demand Deployment (ie: QA on Internal Releases)53 | © 2012 Axway | All rights ...
Tomorrow     Applicances Builder Feeding     •  Appliance Builder feeded with native packages               –  Turn Applia...
Native Packaging
Native Packaging     Situation     •       Widely used in Unix world     •       Componentisation approach     •       Run...
Native Packaging     Bonus     •  Quicker bootstrap for customers on their        own systems     •  Customers Ops Teams m...
Upcoming SlideShare
Loading in...5
×

From ci to cd

485

Published on

From Continuous Integration to Continuous Delivery, Talk at INSA Lyon in June 2012

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
485
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
26
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

From ci to cd

  1. 1. From Continous Integration toContinuous DeliveryHenri GomezINSA Lyon11 June 2012| © 2012 Axway | All rights reserved.
  2. 2. Aim of this document •  Today Software Challenges •  Expose what are CI and CDs •  Continuous Delivery •  Continuous Deployement •  Contents Repository •  Native Packaging2 | © 2012 Axway | All rights reserved.
  3. 3. Business Interaction Networks Axway is the Business Interaction Networks company. We are the only provider in the market today to manage, run, secure, and monitor all your business interactions — emails, files, messages, services, events, and processes.| © 2012 Axway | All rights reserved.
  4. 4. About @hgomez •  CI Architect @ Axway •  Former Senior Ops Director •  Former Developer, Team Leader and Architect •  JPackage Project Founder •  OpenJDK 7&8 packages for OSX •  ASF Member (Tomcat & XML-RPC)4 | © 2012 Axway | All rights reserved.
  5. 5. Software Challenges
  6. 6. Software Challenges Today •  Software projects are larger and complex •  More and more component interoperability •  Many teams and often remote teams •  Tight schedules •  Frequent needs and requirements changes6 | © 2012 Axway | All rights reserved.
  7. 7. Software Challenges Early ages •  Build / Release on a “per request” basis after –  Project reaches a particular step (milestone/release candidate) •  Mandatory pre-requesites –  Project in proper state -> yes it build –  Well documented per standards -> doc is not an option –  Properly reviewed -> someone tested product •  Late discovery –  Some pre-requesites where just not there ;(7 | © 2012 Axway | All rights reserved.
  8. 8. Software Challenges Then came Agile8 | © 2012 Axway | All rights reserved.
  9. 9. Software Challenges Mandatory tooling for Agile •  Standardize Build, Test and Deployment •  Provide Continuous Builds, Test and Deployment •  Ensures solid, reproducible and analyzable steps •  Visible to all actors (Dev, QA, Product Owner)9 | © 2012 Axway | All rights reserved.
  10. 10. Software Challenges Ideal life-cycle for Agile10 | © 2012 Axway | All rights reserved.
  11. 11. Continuous Integration
  12. 12. Continuous Integration Definition •  Continuous Integration is the practice of integrating early and often, so as to avoid the pitfalls of "integration hell".! •  The ultimate goal is to reduce timely rework and thus reduce cost and time. When done well, continuous integration has been shown to achieve these goals."12 | © 2012 Axway | All rights reserved.
  13. 13. Continuous Integration Workflow13 | © 2012 Axway | All rights reserved.
  14. 14. Continuous Integration Workflow •  Team members work on code –  Code and Unit tests –  Push on SCM after local tests passed •  CI Server periodically polls SCM and if changes –  Check out all code –  Build all code Run all unit tests –  Run acceptance tests –  Deploy snapshots to artifacts repository In case of error in any step, CI server inform all parties14 | © 2012 Axway | All rights reserved.
  15. 15. Continuous Integration Building •  Fetch code –  From SCM •  Build code –  Test code in its dependency land •  Run tests –  Unit tests –  Acceptance tests •  Deploy Dev artifacts –  Developers artifacts (ie: Maven jar/war) –  Precisely identified (name and version)15 | © 2012 Axway | All rights reserved.
  16. 16. Continuous Integration QA = Quality Assurance •  Functional Testing –  Match expected behavior –  Test regressions fixes •  Performance Testing –  Smoke Tests –  Stress Tests –  Response Speed –  Throughput –  Application behavior metering –  Systems hosting application behavior16 | © 2012 Axway | All rights reserved.
  17. 17. Continuous Integration Build in Action #117 | © 2012 Axway | All rights reserved.
  18. 18. Continuous Integration Build in Action #218 | © 2012 Axway | All rights reserved.
  19. 19. Continuous Integration Build in Action #319 | © 2012 Axway | All rights reserved.
  20. 20. Continuous Integration Build in Action #420 | © 2012 Axway | All rights reserved.
  21. 21. Continuous Integration – QA Focus
  22. 22. Continuous Integration – QA Unit Testing •  Unit Tests test the code •  Ensures the code is doing what we intend it to do •  Many extremely quick and small tests Unit Testing ensure we make the software right22 | © 2012 Axway | All rights reserved.
  23. 23. Continuous Integration – QA Functional Testing •  Check code behavior •  Automated or manual •  Tests performed in real world, ie a Web UI Functional Testing ensure we make the right software23 | © 2012 Axway | All rights reserved.
  24. 24. Continuous Integration – QA Performance Testing •  Check system and application behavior •  Stress tests •  System and application metrics collected and analyzed Performance Testing help figure hotspots and runtime problems quickly24 | © 2012 Axway | All rights reserved.
  25. 25. Continuous Integration – QA Capacity Planning •  Performance testing ++ •  Stress and tortures tests •  Define Limits (ie: x transaction/s for a fixed system) Capacity Planning bring abacus to support and sales teams to answer customers needs25 | © 2012 Axway | All rights reserved.
  26. 26. Continuous Integration – Tools
  27. 27. Continuous Integration - Tools A rich ecosystem •  Sources Repositories" •  Build Engines" •  Test Engines" •  Integration Engines" •  Binaries Repositories! •  Deployment Tooling"27 | © 2012 Axway | All rights reserved.
  28. 28. Continuous Integration – Tools Some names and logos28 | © 2012 Axway | All rights reserved.
  29. 29. Continuous Integration – What’s next ?
  30. 30. Continuous Integration – Next What’s next ? •  Continuous Deployment is not Continuous Integration30 | © 2012 Axway | All rights reserved.
  31. 31. Continuous Integration – Next Continuous Deployment in action31 | © 2012 Axway | All rights reserved.
  32. 32. Continuous Integration – Next Assembly is key ! •  Fetch Dev Artifacts –  Mandate component approach •  Assemble Artifacts –  Components Assembly guidelines –  Special care of Components configurations •  Deploy Usable Artifacts –  Ready to use by upstream teams like QA-Ops –  Should be configurable from the outside32 | © 2012 Axway | All rights reserved.
  33. 33. Continuous Integration – Next Delivery and Deployment •  Delivery " –  Providing product to end user" –  User could then install or update it on his own systems! •  Deployement " –  Providing operational solution to end user" –  User could directly use it on his own or leased systems"33 | © 2012 Axway | All rights reserved.
  34. 34. Continuous Delivery
  35. 35. Continuous Delivery Definition •  Continuous Delivery could be seen as the process who bring products to internal and external customers •  Internal customers –  Developers –  QA –  Sales •  Various medias –  CD/DVD –  AMI/VMDK/VDI –  Native packages35 | © 2012 Axway | All rights reserved.
  36. 36. Continous Delivery Requirements •  Contents Repository –  Precisely identified components –  Components fetchable via APIs •  Scriptable operations –  Components Fetch –  Components Assembly –  Media generation (packages or burn) •  It will turn into a Media Factory –  Predicable process –  Automated process36 | © 2012 Axway | All rights reserved.
  37. 37. Continuous Deployment
  38. 38. Continuous Deployment Definition •  Continuous Deployment is the process who bring products running on systems to internal and external customers •  3 main requesters –  Dev Teams –  QA Teams –  Ops Teams (internal or customers)38 | © 2012 Axway | All rights reserved.
  39. 39. Continuous Deployment For Dev Teams •  Code Testing from Trunk •  Deployment decision by Dev Teams •  Operated on Dev Teams Servers39 | © 2012 Axway | All rights reserved.
  40. 40. Continuous Deployment For QA Teams •  Product Testing on Internal Releases •  Deployment decisions on demand by QA Teams •  Operated on QA Teams Servers40 | © 2012 Axway | All rights reserved.
  41. 41. Continuous Deployment For OPS Teams •  Product install or update from Releases •  Deployment decision by OPS/ Customers –  To inform users about planned operation –  To follow their customers SLA •  Operated on Production Servers –  Under control of customers Ops –  With customers agreements (Cloud/Saas)41 | © 2012 Axway | All rights reserved.
  42. 42. Continuous Deployment Requirements •  Products Repository –  Precisely identified products –  Products fetchable via APIs •  Automated operations –  Products Fetch –  Products Deploy (install/update)42 | © 2012 Axway | All rights reserved.
  43. 43. Continuous Deployment Factory •  Deployment Factory –  Production of Native Packages –  Production of OS Images (VMWare, Amazon Web Service) •  Images and Packages –  Images for boot strap operations (Virtualized environments) –  Packages to install and update systems (Virtualized and Physical)43 | © 2012 Axway | All rights reserved.
  44. 44. Contents Repository
  45. 45. Contents Repository Definition •  Shared referential –  For Development Teams –  For QA Team –  For Assembly Team •  APIs powered –  Upload / Download operations by APIs •  Security in mind –  By Repository sections –  By Users –  Peering and sites replication45 | © 2012 Axway | All rights reserved.
  46. 46. Contents Repository Benefits •  Common referential –  Artifacts provided by developers in development phase –  Artifacts tested by QA in validation phase –  Artifacts assembled in continuous delivery and deployment chains •  Automation ready –  Unique identifier for artifacts (id, group, version, kind) –  Programatic access to artifacts easily via APIs •  Web based –  Security via redundancy (on/off sites) –  Peering via replication (on remote sites)46 | © 2012 Axway | All rights reserved.
  47. 47. CI Today and beyond
  48. 48. Today CI •  From Source to Artifacts –  Developper commit –  CI build project(s) related to commit –  CI publish artifacts project(s) to Content Repository48 | © 2012 Axway | All rights reserved.
  49. 49. Today Delivery •  From Artifacts to Delivery –  Assembler collect artifacts, build and deploy from its workstation –  Assembler push usable delivery to WebLiv –  Customers and Axway team get delivery from WebLiv49 | © 2012 Axway | All rights reserved.
  50. 50. Today Deployment •  From Artifacts to Deployment –  Assembler collect artifacts and launch appliances build –  Appliances deployed on WebLiv and Amazon S3 (Cloud) –  Customers and Axway team get delivery from WebLiv or S350 | © 2012 Axway | All rights reserved.
  51. 51. Tomorrow Continuous Delivery •  On demand delivery via QA/Project Manager51 | © 2012 Axway | All rights reserved.
  52. 52. Tomorrow Continuous Packaging •  Native packages continuous production –  For developpers usage –  For QA usage –  For Cloud Factory usage –  For Ops usage52 | © 2012 Axway | All rights reserved.
  53. 53. Tomorrow On Demand Deployment •  On Demand Deployment (ie: QA on Internal Releases)53 | © 2012 Axway | All rights reserved.
  54. 54. Tomorrow Applicances Builder Feeding •  Appliance Builder feeded with native packages –  Turn Appliances builder in Appliances Factory –  From source to VMWare appliances –  From source to EC2 AMIs54 | © 2012 Axway | All rights reserved.
  55. 55. Native Packaging
  56. 56. Native Packaging Situation •  Widely used in Unix world •  Componentisation approach •  Runtime dependencies aware •  Powerfull life-cycle support •  Web based packages repositories for modern delivery56 | © 2012 Axway | All rights reserved.
  57. 57. Native Packaging Bonus •  Quicker bootstrap for customers on their own systems •  Customers Ops Teams may use them as regular packages •  Help create VM images or appliances with up to date products •  Help update products in existing VM images/appliances •  Faster install/update process for customers •  Perfectly suited for Cloud Operations57 | © 2012 Axway | All rights reserved.
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×