of this document • Today Software Challenges • Expose what are CI and CDs • Continuous Delivery • Continuous Deployement • Contents Repository • Native Packaging
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.
@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)
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."
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)
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
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"
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
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
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)
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)
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)
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
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)
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
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
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
Packaging Situation • Widely used in Unix world • Componentisation approach • Runtime dependencies aware • Powerfull life-cycle support • Web based packages repositories for modern delivery
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