Upgrade to Pro — share decks privately, control downloads, hide ads and more …

From CI to CD

From CI to CD

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

Avatar for Henri Gomez

Henri Gomez

June 11, 2012
Tweet

More Decks by Henri Gomez

Other Decks in Technology

Transcript

  1. | © 2012 Axway | All rights reserved. From Continous

    Integration to Continuous Delivery Henri Gomez INSA Lyon 11 June 2012
  2. | © 2012 Axway | All rights reserved. 2 Aim

    of this document •  Today Software Challenges •  Expose what are CI and CDs •  Continuous Delivery •  Continuous Deployement •  Contents Repository •  Native Packaging
  3. | © 2012 Axway | All rights reserved. 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.
  4. | © 2012 Axway | All rights reserved. 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)
  5. 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 changes | © 2012 Axway | All rights reserved. 6
  6. 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 ;( | © 2012 Axway | All rights reserved. 7
  7. 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) | © 2012 Axway | All rights reserved. 9
  8. | © 2012 Axway | All rights reserved. 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."
  9. 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 | © 2012 Axway | All rights reserved. 14 In case of error in any step, CI server inform all parties
  10. | © 2012 Axway | All rights reserved. 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)
  11. | © 2012 Axway | All rights reserved. 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 behavior
  12. 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 | © 2012 Axway | All rights reserved. 22 Unit Testing ensure we make the software right
  13. Continuous Integration – QA Functional Testing •  Check code behavior

    •  Automated or manual •  Tests performed in real world, ie a Web UI | © 2012 Axway | All rights reserved. 23 Functional Testing ensure we make the right software
  14. Continuous Integration – QA Performance Testing •  Check system and

    application behavior •  Stress tests •  System and application metrics collected and analyzed | © 2012 Axway | All rights reserved. 24 Performance Testing help figure hotspots and runtime problems quickly
  15. Continuous Integration – QA Capacity Planning •  Performance testing ++

    •  Stress and tortures tests •  Define Limits (ie: x transaction/s for a fixed system) | © 2012 Axway | All rights reserved. 25 Capacity Planning bring abacus to support and sales teams to answer customers needs
  16. | © 2012 Axway | All rights reserved. 27 Continuous

    Integration - Tools A rich ecosystem •  Sources Repositories" •  Build Engines" •  Test Engines" •  Integration Engines" •  Binaries Repositories! •  Deployment Tooling"
  17. | © 2012 Axway | All rights reserved. 28 Continuous

    Integration – Tools Some names and logos
  18. | © 2012 Axway | All rights reserved. 30 Continuous

    Integration – Next What’s next ? •  Continuous Deployment is not Continuous Integration
  19. | © 2012 Axway | All rights reserved. 31 Continuous

    Integration – Next Continuous Deployment in action
  20. | © 2012 Axway | All rights reserved. 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 outside
  21. | © 2012 Axway | All rights reserved. 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"
  22. | © 2012 Axway | All rights reserved. 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 packages
  23. | © 2012 Axway | All rights reserved. 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 process
  24. | © 2012 Axway | All rights reserved. 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)
  25. | © 2012 Axway | All rights reserved. 39 Continuous

    Deployment For Dev Teams •  Code Testing from Trunk •  Deployment decision by Dev Teams •  Operated on Dev Teams Servers
  26. | © 2012 Axway | All rights reserved. 40 Continuous

    Deployment For QA Teams •  Product Testing on Internal Releases •  Deployment decisions on demand by QA Teams •  Operated on QA Teams Servers
  27. | © 2012 Axway | All rights reserved. 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)
  28. | © 2012 Axway | All rights reserved. 42 Continuous

    Deployment Requirements •  Products Repository –  Precisely identified products –  Products fetchable via APIs •  Automated operations –  Products Fetch –  Products Deploy (install/update)
  29. | © 2012 Axway | All rights reserved. 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)
  30. | © 2012 Axway | All rights reserved. 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 replication
  31. | © 2012 Axway | All rights reserved. 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)
  32. Today CI | © 2012 Axway | All rights reserved.

    48 •  From Source to Artifacts –  Developper commit –  CI build project(s) related to commit –  CI publish artifacts project(s) to Content Repository
  33. Today Delivery | © 2012 Axway | All rights reserved.

    49 •  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 WebLiv
  34. Today Deployment | © 2012 Axway | All rights reserved.

    50 •  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 S3
  35. | © 2012 Axway | All rights reserved. 51 Tomorrow

    Continuous Delivery •  On demand delivery via QA/Project Manager
  36. Tomorrow Continuous Packaging | © 2012 Axway | All rights

    reserved. 52 •  Native packages continuous production –  For developpers usage –  For QA usage –  For Cloud Factory usage –  For Ops usage
  37. Tomorrow On Demand Deployment •  On Demand Deployment (ie: QA

    on Internal Releases) | © 2012 Axway | All rights reserved. 53
  38. Tomorrow Applicances Builder Feeding | © 2012 Axway | All

    rights reserved. 54 •  Appliance Builder feeded with native packages –  Turn Appliances builder in Appliances Factory –  From source to VMWare appliances –  From source to EC2 AMIs
  39. | © 2012 Axway | All rights reserved. 56 Native

    Packaging Situation •  Widely used in Unix world •  Componentisation approach •  Runtime dependencies aware •  Powerfull life-cycle support •  Web based packages repositories for modern delivery
  40. | © 2012 Axway | All rights reserved. 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 Operations