Orchestrating the Continuous Delivery Process @SachaLabourey CEO and Founder, CloudBees ©2014 CloudBees, Inc. All Rights Reserved 1 Continuous Delivery Overview Feedback Loop App Lifecycle BUILD TEST Continuous Integration Managed by… …Enterprise …SMB Deploy Run Continuous Delivery Process Sub-Processes STAGE Deployment Development Teams Development Teams Release / Ops Teams DevOps ©2014 CloudBees, Inc. All Rights Reserved 2 Continuous Delivery Defined • For the business person: – Continuous delivery is a methodology that allows you to deliver new software and update existing software faster, with lower risk • For the technical person: – Continuous delivery encompasses the set of activities you use to ensure you are ready to deploy code and configuration changes into production at all times • In relation to Continuous Integration: – CD extends CI to include the concept of deployment and testing for production readiness ©2014 CloudBees, Inc. All Rights Reserved 3 3 ©2014 CloudBees, Inc. All Rights Reserved 4 Do I really need that? Let’s see… ©2014 CloudBees, Inc. All Rights Reserved 5 HP LaserJet FutureSmart Firmware (10M+ LOC) - Development costs growing 2.5x from 2004-2008 Up to 10 different branches (driven by each product release) 80-90% of resources just porting existing FW to new products Unable to add new products to the plans due to lack of FW resources - 6 weeks + to get through a complete testing cycle (mainly manual) - Ongoing customer issues with consistency and lack of features - Marketing had essentially given up asking for FW innovations ©2014 CloudBees, Inc. All Rights Reserved 6 HP LaserJet FutureSmart Firmware (10M+ LOC) Code Integration 10% Detailed Planning 20% From 2008… Continuous Integration 2% Agile Planning 5% Porting Code 25% One Main Branch 15% Current Product Support 25% One Branch CPE 10% Manual Testing 15% Most Testing Automated 5% Capacity for Innovation ~5% … to 2011 Capacity for Innovation ~40% 7 ©2014 CloudBees, Inc. All Rights Reserved © Mike Young, HP, 2011, http://bit.ly/1qyJWSM Automation Everywhere! 8 ©2014 CloudBees, Inc. All Rights Reserved © Mike Young, HP, 2011, http://bit.ly/1qyJWSM It all started with developers: CI Dev Code Config Tests Build Build System Packager Packages Artifacts & underlying systems Data Source Repo CI Server Artifact Repo Toolchain Push code change Kick off build, tests, more tests Archive artifacts (library, .war file) ©2014 CloudBees, Inc. All Rights Reserved 9 9 Continuous Delivery Emerges for Testing Build Stage Dev Code Config Tests Build System Packager Packages Provisioning System Config Automation Artifact Repo Ops Console Resource Model Data Source Repo CI Server Infra Manager Deploy artifacts to staging area Connect to needed systems/services Run functional and system tests ©2014 CloudBees, Inc. All Rights Reserved 10 10 Ops Has Different Needs Than Dev Dev Code Config Tests Build Build System Stage Packager Packages Provisioning System Config Automation Artifact Repo Ops Console Resource Model Provisioning System Config Automation Data Source Repo CI Server Ops Environment Specification Tests Infra Manager Packages Build System Packager “Treating Configuration as Code” Build Images ©2014 CloudBees, Inc. All Rights Reserved Deploy 11 11 But the Toolchains Intersect for Dev and Ops Stage Dev Build CI Server Artifact Repo Ops Console Resource Model Infra Manager Ops Source Repo Build Deploy Inspired by: http://www.infoq.com/presentations/devops-patterns ©2014 CloudBees, Inc. All Rights Reserved 12 12 Why the Difference in Toolchain Choices? • Dev – Speed, coding, functionality, quality – Favor local optimization on process, pet tools, fast feedback • Ops – – – – Auditing, security, compliance, availability, risk avoidance Favor central control, reproducibility, traceability, process Much larger set of constraints, rules, surrounding systems Legacy issues Jenkins is common ground ©2014 CloudBees, Inc. All Rights Reserved 13 13 Continuous Integration Source Code Unit Tests Quality Analysis Binaries ©2014 CloudBees, Inc. All Rights Reserved 14 Continuous Delivery Process Source Code DEV Unit Tests Continuous Delivery Quality Analysis QA Binaries Perfs Environment Func Test Environment UAT Environment DEV Release! Staging Environment OPS Production Environment GO LIVE! ©2014 CloudBees, Inc. All Rights Reserved 15 Jenkins Orchestrates the Toolchain BUILD TEST STAGE DEPLOY ©2014 CloudBees, Inc. All Rights Reserved Tool Tool Tool Tool Tool Tool Tool Tool Tool Tool Tool Continuous Delivery with Jenkins RUN 16 CloudBees Continuous Delivery Platform ©2014 CloudBees, Inc. All Rights Reserved 17 CloudBees Continuous Delivery Platform Continuous Delivery CloudBees Network Management Monitoring DevOps SOLUTIONS Mobile … OPERATIONS Operations AT SCALE Jenkins Operations Center (JOC) CORE JE JE JE JE Provisioning Hybrid Infrastructure Support Upgrade HYBRID INFRASTRUCTURE SUPPORT RAW VMW Pivotal … ©2014 CloudBees, Inc. All Rights Reserved 18 Flexible, manageable & reliable @ scale Hybrid deployments, abstraction layer JOC JE JE JE JE JE Cloud deployments Static Linux Deployments IaaS benefit from elasticity/ondemand cloud Customer Private attributes Data Center JE JE JE JE JE AWS CloudBees Managed Masters and Elastic Slaves Customer AWS VPC CloudBees AWS Account Pivotal ©2014 CloudBees, Inc. All Rights Reserved 19 Public Cloud BUILD TEST STAGE DEPLOY RUN Build Commit Test Deploy Stage Code CloudBees Continuous Delivery Platform BUILD TEST STAGE DEPLOY RUN On-Premise/Private Cloud ©2014 CloudBees, Inc. All Rights Reserved 20 Improving Continuous Delivery Workflow Issues • • • • Requires many plugins Workflow definition distributed across many jobs Failures cause big problems! Limited re-usability Build Pipeline View Many Build Jobs 21 21 ©2014 CloudBees, Inc. All Rights Reserved Ref: http://www.infoq.com/articles/orch-pipelines-jenkins Jenkins Workflow – A Big Deal for CD (coming soon!) With Workflow • • • • • New job type Single place for definition Retry-able and restartable Reusable workflows Text-based DSL Build Pipeline View One Workflow Job New visualizations coming! ©2014 CloudBees, Inc. All Rights Reserved 22 22 Conclusions • The Dev and Ops automation tool chains to support continuous delivery are different, but intersect at Jenkins • CloudBees offers a continuous delivery platform based on Jenkins that runs on-prem, in the cloud, or bridges those worlds simply and securely • New features being surfaced in Jenkins are extending its reach even further to support continuous delivery ©2014 CloudBees, Inc. All Rights Reserved 23 23
© Copyright 2024