From Continuous Integration to DevOps
Maciej ZawadzkiCofounder and CEO of UrbancodeOriginal author of AnthillPro. Architect of Urbancode’sDevOps Platform.Blog: http://urbancode.com/blogs/devil-in-the-detailsTwitter: @devl_in_details
Eric MinickLead ConsultantWorked as a dev, tester, and release guyDozens of enterprise rollouts Blog: http://urbancode.com/blogs/Twitter: @EricMinick
AgendaContinuous IntegrationContinuous DeliveryDevOpsThe FutureResources
CI: it’s about Quality DeterminationCI is based on the observation that the longer development streams diverge, the more painful the eventual integration will be. Taking the converse of the above statement, the more frequently developers integrate their changes, the more painless those integrations will be.But, why does it not suffice for developers to simply check-in or commit their changes frequently to practice CI? Implied condition -- that each integration will not decrease the code quality.  This is the key to understanding CI; the rest is implementation details.
CI: it’s about Quality DeterminationIntegrating frequently is less painful than infrequently.But, If we commit frequently blindly, we have a broken code baseImplied condition: each integration will not decrease the code quality. This is the key to CI The rest is implementation details.http://www.urbancode.com/blogs/anthillpro-blog/2011/09/07/continuous_integration_why_you_dont_really_get_it.html
CI: the ImplementionHow do we determine code quality? We test itHow do we test code? We build it and run tests against itCI requires fast feedback, so what tests do we run?  Unit testsThis is how we get from CI to CI servers and software builds
CI: the Disruption of Build ManagementParadigm change: similar to structure of scientific revolutions – Thomas KuhnBefore CI, build engineers would:Manually perform the buildAfter the paradigm change, build engineers would:Design the build process for projects.  The actual build execution is handled by a tool.
CI: the BumpsCI BuildsPurpose: determine quality of latest changesAudience: development teamSource: Build is traceable to latest changes and “latest” sourceArtifacts: Throw away builds, tests are importantBuild Management BuildsPurpose: produce artifacts for 3rd partiesAudience: 3rd parties outside developmentSource: Build is traceable to sourceArtifacts: Important builds, artifacts are important and primary
CI: the Innovation of AutomationInvention: proven to work in the laboratoryInnovation: it can be replicated reliably on a meaningful scale at practical costs.For an idea to move from invention to innovation requires an ensemble of critical components. Peter M. Senge, The Fifth DisciplineCI brings together “critical” factors:AutomationSelf-serviceTransparency/Visibility
CI: SummaryCI requires the determination of code qualityCI disrupted Build ManagementCI represents the Innovation of Automation
AgendaContinuous IntegrationContinuous DeliveryDevOpsThe FutureResources
Continuous Delivery: What is it?Continuation of the Quality Determination that CI started.Functional tests require deployment.Progression through environments on a march to production, with “the build” subjected to more exhaustive tests in each environment.
Continuous Delivery: The DriversQuality Determination:CI left unfinished business on the table.Further tests require deployments.Agile: keeping up with the pace.  Innovation of Automation: self-service and visibility have a powerful attraction
Continuous Delivery: the DetailsDeploying multi-tiered applications is not trivial.  Application modelComponent (tier) modelMapping of components to servers in each Env.Multiple TiersDatabase changesMiddleware code changesMiddleware config changesFlat file changesMulti-environment deploymentsHandle different environment topologiesHandle different environment configurations
Continuous Delivery & Mountain BikesHow many people own a mountain bike?How many people ever took it down a mountain?The guys that deploy to production 50 times a day drive their mountain bike down the mountain.The rest of us benefit from the technology as we have a comfortable ride on the park trails with our kids.
Continuous Delivery: Theory & RealityThe reality is that:Dev and Ops are in different silosDev and Ops use different toolsDev produces change, Ops seeks to control change50 page Word doc is the standard hand-off between Dev and Ops
Continuous Delivery: SummaryCD follows through on what CI started, the quality determinationCD is enabling technology for deploymentsCD reality is that most organizations use it in lower environments only
AgendaContinuous IntegrationContinuous DeliveryDevOpsThe FutureResources
DevOps: the DriversThe Cloud (IaaS):  Has all the “critical” factors for InnovationSelf-service is a radical shift in the SLAHand-off document leads to errorsAgile leads to faster pace
DevOps: the DisruptionCloud offers an alternative to Enterprise ITEnterprise IT will need to match the SLAPrivate cloud under Enterprise IT control is a way to remain competitiveAdopting cloud automation is a paradigm shift for Enterprise ITOnce the paradigm shifts, the flood gates open for deployment automation
DevOps: the Implementation, ConvergenceIaaS on a private cloudEnvironment provisioning as a service.Application teams may request environments for their applications. Environments come pre-configured with DB and middleware. Application Deployment (CD) to provisioned environments.
DevOps: the Bumps AheadDevOpsVery High TempoCan rebuild database / app from scratchNo need for RollbacksAudit is nice to haveSecurity, traceability, separation of duties.New Environments are commonSlower TempoIncremental updates to Database and AppRollbacks are hugeAudit CriticalSecurity, traceability, separation of duties.New environments are     rare
The SummaryCI represents Innovation of AutomationCI got us started down the road towards PRODCD continued the work that CI started CD provided enabling technology for application deploymentsDevOps will disrupt Ops the same way CI disrupted Build ManagementDevOps opens the door for the convergence with Dev practices such as CD
AgendaContinuous IntegrationContinuous DeliveryDevOpsThe FutureResources
Where are we headed?Private clouds (or public/private)Platform as a serviceServers with middleware, properly configured, managed, and available self-service.Application deployment onto the platformRelease ManagementTracks builds through the (PaaS) environments from CI to Production. Same deployment process for all environments
Where are the tools headed?Pre-2006: Just CI tools2006-2010: CI becomes Continuous Delivery First end-to-end tool is AnthillPro in 2006. Now: DevOpsCI is commodity.Integrated CD tools focus on point solutions 	deployment and pipeline management. Expanding integrations with private cloud
AgendaContinuous IntegrationContinuous DeliveryDevOpsThe FutureResources
More on CI, CD, and DevOpsWebinars and more: http://urbancode.com/resourcesDeath to Manual Deployments!Build & Deployment Automation for the Lean EconomyEnterprise DevOps: Scaling Build, Deploy, Test, ReleaseYou should follow us:Urbancode.com/blogs/Twitter.com/UrbanCodeSoftFacebook.com/UrbanCodeSoft
Yes, UrbanCode sells Agile / DevOps toolsAnthillPro is now the DevOps PlatformDevOps PlatformAutomated build, test and deployment. Includes UrbanDeploy.  UrbanDeployDeployment and release management

From Continuous Integration to DevOps

  • 1.
  • 2.
    Maciej ZawadzkiCofounder andCEO of UrbancodeOriginal author of AnthillPro. Architect of Urbancode’sDevOps Platform.Blog: http://urbancode.com/blogs/devil-in-the-detailsTwitter: @devl_in_details
  • 3.
    Eric MinickLead ConsultantWorkedas a dev, tester, and release guyDozens of enterprise rollouts Blog: http://urbancode.com/blogs/Twitter: @EricMinick
  • 4.
  • 5.
    CI: it’s aboutQuality DeterminationCI is based on the observation that the longer development streams diverge, the more painful the eventual integration will be. Taking the converse of the above statement, the more frequently developers integrate their changes, the more painless those integrations will be.But, why does it not suffice for developers to simply check-in or commit their changes frequently to practice CI? Implied condition -- that each integration will not decrease the code quality. This is the key to understanding CI; the rest is implementation details.
  • 6.
    CI: it’s aboutQuality DeterminationIntegrating frequently is less painful than infrequently.But, If we commit frequently blindly, we have a broken code baseImplied condition: each integration will not decrease the code quality. This is the key to CI The rest is implementation details.http://www.urbancode.com/blogs/anthillpro-blog/2011/09/07/continuous_integration_why_you_dont_really_get_it.html
  • 7.
    CI: the ImplementionHowdo we determine code quality? We test itHow do we test code? We build it and run tests against itCI requires fast feedback, so what tests do we run? Unit testsThis is how we get from CI to CI servers and software builds
  • 8.
    CI: the Disruptionof Build ManagementParadigm change: similar to structure of scientific revolutions – Thomas KuhnBefore CI, build engineers would:Manually perform the buildAfter the paradigm change, build engineers would:Design the build process for projects. The actual build execution is handled by a tool.
  • 9.
    CI: the BumpsCIBuildsPurpose: determine quality of latest changesAudience: development teamSource: Build is traceable to latest changes and “latest” sourceArtifacts: Throw away builds, tests are importantBuild Management BuildsPurpose: produce artifacts for 3rd partiesAudience: 3rd parties outside developmentSource: Build is traceable to sourceArtifacts: Important builds, artifacts are important and primary
  • 10.
    CI: the Innovationof AutomationInvention: proven to work in the laboratoryInnovation: it can be replicated reliably on a meaningful scale at practical costs.For an idea to move from invention to innovation requires an ensemble of critical components. Peter M. Senge, The Fifth DisciplineCI brings together “critical” factors:AutomationSelf-serviceTransparency/Visibility
  • 11.
    CI: SummaryCI requiresthe determination of code qualityCI disrupted Build ManagementCI represents the Innovation of Automation
  • 12.
  • 13.
    Continuous Delivery: Whatis it?Continuation of the Quality Determination that CI started.Functional tests require deployment.Progression through environments on a march to production, with “the build” subjected to more exhaustive tests in each environment.
  • 14.
    Continuous Delivery: TheDriversQuality Determination:CI left unfinished business on the table.Further tests require deployments.Agile: keeping up with the pace. Innovation of Automation: self-service and visibility have a powerful attraction
  • 15.
    Continuous Delivery: theDetailsDeploying multi-tiered applications is not trivial. Application modelComponent (tier) modelMapping of components to servers in each Env.Multiple TiersDatabase changesMiddleware code changesMiddleware config changesFlat file changesMulti-environment deploymentsHandle different environment topologiesHandle different environment configurations
  • 16.
    Continuous Delivery &Mountain BikesHow many people own a mountain bike?How many people ever took it down a mountain?The guys that deploy to production 50 times a day drive their mountain bike down the mountain.The rest of us benefit from the technology as we have a comfortable ride on the park trails with our kids.
  • 17.
    Continuous Delivery: Theory& RealityThe reality is that:Dev and Ops are in different silosDev and Ops use different toolsDev produces change, Ops seeks to control change50 page Word doc is the standard hand-off between Dev and Ops
  • 18.
    Continuous Delivery: SummaryCDfollows through on what CI started, the quality determinationCD is enabling technology for deploymentsCD reality is that most organizations use it in lower environments only
  • 19.
  • 20.
    DevOps: the DriversTheCloud (IaaS): Has all the “critical” factors for InnovationSelf-service is a radical shift in the SLAHand-off document leads to errorsAgile leads to faster pace
  • 21.
    DevOps: the DisruptionCloudoffers an alternative to Enterprise ITEnterprise IT will need to match the SLAPrivate cloud under Enterprise IT control is a way to remain competitiveAdopting cloud automation is a paradigm shift for Enterprise ITOnce the paradigm shifts, the flood gates open for deployment automation
  • 22.
    DevOps: the Implementation,ConvergenceIaaS on a private cloudEnvironment provisioning as a service.Application teams may request environments for their applications. Environments come pre-configured with DB and middleware. Application Deployment (CD) to provisioned environments.
  • 23.
    DevOps: the BumpsAheadDevOpsVery High TempoCan rebuild database / app from scratchNo need for RollbacksAudit is nice to haveSecurity, traceability, separation of duties.New Environments are commonSlower TempoIncremental updates to Database and AppRollbacks are hugeAudit CriticalSecurity, traceability, separation of duties.New environments are rare
  • 24.
    The SummaryCI representsInnovation of AutomationCI got us started down the road towards PRODCD continued the work that CI started CD provided enabling technology for application deploymentsDevOps will disrupt Ops the same way CI disrupted Build ManagementDevOps opens the door for the convergence with Dev practices such as CD
  • 25.
  • 26.
    Where are weheaded?Private clouds (or public/private)Platform as a serviceServers with middleware, properly configured, managed, and available self-service.Application deployment onto the platformRelease ManagementTracks builds through the (PaaS) environments from CI to Production. Same deployment process for all environments
  • 27.
    Where are thetools headed?Pre-2006: Just CI tools2006-2010: CI becomes Continuous Delivery First end-to-end tool is AnthillPro in 2006. Now: DevOpsCI is commodity.Integrated CD tools focus on point solutions deployment and pipeline management. Expanding integrations with private cloud
  • 28.
  • 29.
    More on CI,CD, and DevOpsWebinars and more: http://urbancode.com/resourcesDeath to Manual Deployments!Build & Deployment Automation for the Lean EconomyEnterprise DevOps: Scaling Build, Deploy, Test, ReleaseYou should follow us:Urbancode.com/blogs/Twitter.com/UrbanCodeSoftFacebook.com/UrbanCodeSoft
  • 30.
    Yes, UrbanCode sellsAgile / DevOps toolsAnthillPro is now the DevOps PlatformDevOps PlatformAutomated build, test and deployment. Includes UrbanDeploy. UrbanDeployDeployment and release management

Editor's Notes

  • #6 We don’t want them just reading this slide. Less text on slides if we’re presenting.
  • #7 CI is based on the observation that the longer development streams diverge, the more painful the eventual integration will be. Taking the converse of the above statement, the more frequently developers integrate their changes, the more painless those integrations will be
  • #8 It’s arguably the most important test. Non-compiling code, really hurts the rest of your team