SlideShare a Scribd company logo
Enterprise DevOps: Scaling Build, Deploy, Test, ReleaseEric Minick, Lead Consultant
AgendaWhat is DevOps (and why does it exist)?What do we need from DevOps?Tools for DevOpsAdopting DevOps in the Enterprise
AgendaWhat is DevOps (and why does it exist)?What do we need from DevOps?Tools for DevOpsAdopting DevOps in the Enterprise
What is DevOps? – the Patrick Debois TakeWe make bad software and deliver lateFear of change Risky DeploymentsIt works on my machineSilosA DevOps Mindset Emphasizes:We’re all on the same team Developers, Testers, Ops, Managers…Cross-Disciplinary ApproachLots of Communicationhttp://www.jedi.be/blog/2010/02/12/what-is-this-devops-thing-anyway/
What is DevOps, CtdIt’s Agile applied beyond DevelopmentCross-Functional TeamsFocus on ResultsEmbracing Change
Traditional SDLC Roles
Why?Business demand for more releasesGrowing application complexityIncreased controls and audit requirementsEconomics limit headcount
Why? – Business Demand for more ReleasesHigh investment in software needs returns quicklyRespond in a competitive landscapeAgile DevelopmentMore responsiveSmaller updates more quicklyHasn’t addressed actually releasing these changes
Why? - Growing Application ComplexityService Oriented Architectures make for more pieces that need to be released together
Why? - Increased Controls and AuditWe need to comply with a variety of standards and rulesSarbannes-Oxley Act of 2002, SAS 70, CMMI 2/3, ISO 9001:2008, FDA and PCI complianceBasically:Separation of dutiesClear audit trailsSecure everything
Why? - EconomicsDo more… but you get no more people
AgendaWhat is DevOps (and why does it exist)?What do we need from DevOps?Tools for DevOpsAdopting DevOps in the Enterprise
What we needAutomate processes NOT run them manuallyAutomatic Audit Trail NOT bureaucracyCooperation NOT throwing it over the wallShared Automation NOT repeating ourselves
Automation is a big part of what we needBuilds – Production Ready BuildsDeployments – To test environments (Dev, SIT, UAT, Perf) and production (Live, DR, Training)Tests – Smoke, regression, Security
But Today’s Automation is in SilosBuild scriptsUnit testsStatic analysis toolsNightly buildContinuous IntegrationUpdate test environmentDeploy test dataFunctional testsPerformance/Load testsStatic analysis toolsDeployment scriptsProvisioning ToolsArchive releases in Definitive Media Library
Team-level automation has benefitsSave themselves timeAutomate what they would otherwise do manuallyBetter visibility between team membersCI lets other developers know the build is brokenSmoke tests let us know if it’s worth manual testingWiki board with which build is on which lab machineOps – updating a status boardConsistencyFewer mistakes in executing the processLess time tracking down bugsHigher quality products
Team-Level Automation Isn’t EnoughEach team manages the same things differentlyDeploymentsConfiguration (drift)Deployment verification (smoke tests)Audit questions that cut across silos:What source code was used to build what’s in production?Is production configured the same as the test environment?What build was in production on Feb. 12, what was in it, who put it there, and was it tested?
DevOps Spans SilosEnterpriseDevOpsties together Development, QA, Release Management and Operations to give end-to-end traceability.
Terms relating to end-to-end automationDevOpsEnterprise Continuous IntegrationBuild Pipeline / Build LifeContinuous DeploymentContinuous Delivery
Visualizing an SDLC Pipeline
Foundational Tools for DevOpsTools should support automation and auditExpand on team level automationCommon platform for builds, deployments, testsCentral reporting and improved visibilityNo Hiding. No Heroes.
Build Promotion / PipelineEach stage can leverage existing team-level automationNot all builds complete the pipelineStages are linked with shared reporting and reference same files
Continuous, quality buildsNeed CI to produce deployable, traceable builds. Artifacts + dependencies + configuration information = “The Build”The Build becomes the unique identifier to provide traceability across systems.Aids Audit:We have one identifier for stuff from dev to opsSupports Automation:Consistent communication for hand-offsA complete bundle of deployment “stuff”
Artifact Repository (DML)Need an artifact repositoryTraceability to source still essentialRepository (ITIL DML) becomes a building block of the end-to-end systemAids AuditWhat source code was used to build what’s in production?Supports AutomationBuilds populate it. Deployments retrieve from it.
Configuration ManagementNeed configuration driven by the system instead of done by handExtract configuration from one system, deploy to anotherCan reduce deployment failures by 90%Aids Audit:Is production configured the same as test?Supports Automation:Addresses easiest part to forget when creating the manual deployment doc
Track Complex DeploymentsHow do the database, application, configuration, and content changes relate?Aids Audit:Did the whole change go out, or just part of it?Supports AutomationOrders and coordinates automated workflows
Role Based ControlsShared automation with rights for who does whatDevs build and own dev testQA deploys to their environments and run testsOperations runs deployments to productionManagers approve and monitorAids AuditClear controls and separation of dutiesSupports AutomationRemoves barriers to adopting shared automation
Automated TestsRegression tests for shorter QA cyclesSmoke tests for validating deployments in ALL environmentsAids AuditEasily demonstrable tests run against the releaseSupports AutomationQuickly detects deployment problems and prompt rollback
Requirements forDevOps automationNeed an artifact repository to trace “The Build”What source code was used to build what’s in production?Need to drive configuration from the systemIs production configured the same as the test environment?Need manage complex deploymentsWhich versions of various tiers go together?Need to control & track who, did what, whenWhat build was in production on Feb. 12, what was in it, and who put it there?Need to track historical informationDid the tests all pass for the build we put into production six months ago?Need automated smoke testsDid the release work?
Scaling DevOps to the EnterpriseMost organizations start with pilot projects for build and deployment automationThe enterprise will want to adopt this throughout development
Drivers for enterprise adoptionSeek to adopt “best practices”Why have any team doing something less than the best?ConsistencyReduce friction moving people between teamsInvest in training materials (help, documentation, training videos)
What’s needed for enterprise deployment?ScalabilityFind my project among 5000Process flexibility (hard coded script names, certain user, certain machine, IP addresses, platform support)Economies of Scale	Wait… does each team need its own (under-utilized) server?Better solution: pool of servers
What’s needed for enterprise deployment?ManagementLicensingSupportKeeping the system runningTrainingSecurityKeep teams from breaking each-other
The human side of enterprise adoptionBeware of Conway’s law:Cooperation and shared automation are unnatural when you work for different bosses.Solve the problem for everyone involvedCast a wide net: Involve a wide audience earlyMake it easier to get their job done within the system than outside it
Four strategies for facing Conway’s LawHire engineers that have skills in development, test and system administrationPut together cross functional teams with developers, testers and sys-adminsCreate a central “DevOps Infrastructure Team.” Provides shared infrastructure as a service, facilitates Dev / Ops communication .Fight through it! There’s nothing keeping you from asking, “How do I make your life easier?”
SummaryDocument based communication and manual build and release processes are slow and brokenGreater cooperation between development and operations is neededA common automation infrastructure helps Someone needs to make it happen
Referenceshttp://urbancode.com/resourcesEnterprise CI Maturity ModelDeath to Manual Deployments!Build & Deployment Automation for the Lean EconomyITIL Release Management and Automationhttp://urbancode.com/blogs/http://twitter.com/UrbanCodeSoft
Yes, we sell products for thisAnthillPro is becoming the DevOps PlatformDevOps PlatformEnd to End AutomationUrbanBuildBuild automation and CI for the hard problemsUrbanDeployDeployment and release management
Questions?

More Related Content

Enterprise DevOps: Scaling Build, Deploy, Test, Release

  • 1. Enterprise DevOps: Scaling Build, Deploy, Test, ReleaseEric Minick, Lead Consultant
  • 2. AgendaWhat is DevOps (and why does it exist)?What do we need from DevOps?Tools for DevOpsAdopting DevOps in the Enterprise
  • 3. AgendaWhat is DevOps (and why does it exist)?What do we need from DevOps?Tools for DevOpsAdopting DevOps in the Enterprise
  • 4. What is DevOps? – the Patrick Debois TakeWe make bad software and deliver lateFear of change Risky DeploymentsIt works on my machineSilosA DevOps Mindset Emphasizes:We’re all on the same team Developers, Testers, Ops, Managers…Cross-Disciplinary ApproachLots of Communicationhttp://www.jedi.be/blog/2010/02/12/what-is-this-devops-thing-anyway/
  • 5. What is DevOps, CtdIt’s Agile applied beyond DevelopmentCross-Functional TeamsFocus on ResultsEmbracing Change
  • 7. Why?Business demand for more releasesGrowing application complexityIncreased controls and audit requirementsEconomics limit headcount
  • 8. Why? – Business Demand for more ReleasesHigh investment in software needs returns quicklyRespond in a competitive landscapeAgile DevelopmentMore responsiveSmaller updates more quicklyHasn’t addressed actually releasing these changes
  • 9. Why? - Growing Application ComplexityService Oriented Architectures make for more pieces that need to be released together
  • 10. Why? - Increased Controls and AuditWe need to comply with a variety of standards and rulesSarbannes-Oxley Act of 2002, SAS 70, CMMI 2/3, ISO 9001:2008, FDA and PCI complianceBasically:Separation of dutiesClear audit trailsSecure everything
  • 11. Why? - EconomicsDo more… but you get no more people
  • 12. AgendaWhat is DevOps (and why does it exist)?What do we need from DevOps?Tools for DevOpsAdopting DevOps in the Enterprise
  • 13. What we needAutomate processes NOT run them manuallyAutomatic Audit Trail NOT bureaucracyCooperation NOT throwing it over the wallShared Automation NOT repeating ourselves
  • 14. Automation is a big part of what we needBuilds – Production Ready BuildsDeployments – To test environments (Dev, SIT, UAT, Perf) and production (Live, DR, Training)Tests – Smoke, regression, Security
  • 15. But Today’s Automation is in SilosBuild scriptsUnit testsStatic analysis toolsNightly buildContinuous IntegrationUpdate test environmentDeploy test dataFunctional testsPerformance/Load testsStatic analysis toolsDeployment scriptsProvisioning ToolsArchive releases in Definitive Media Library
  • 16. Team-level automation has benefitsSave themselves timeAutomate what they would otherwise do manuallyBetter visibility between team membersCI lets other developers know the build is brokenSmoke tests let us know if it’s worth manual testingWiki board with which build is on which lab machineOps – updating a status boardConsistencyFewer mistakes in executing the processLess time tracking down bugsHigher quality products
  • 17. Team-Level Automation Isn’t EnoughEach team manages the same things differentlyDeploymentsConfiguration (drift)Deployment verification (smoke tests)Audit questions that cut across silos:What source code was used to build what’s in production?Is production configured the same as the test environment?What build was in production on Feb. 12, what was in it, who put it there, and was it tested?
  • 18. DevOps Spans SilosEnterpriseDevOpsties together Development, QA, Release Management and Operations to give end-to-end traceability.
  • 19. Terms relating to end-to-end automationDevOpsEnterprise Continuous IntegrationBuild Pipeline / Build LifeContinuous DeploymentContinuous Delivery
  • 21. Foundational Tools for DevOpsTools should support automation and auditExpand on team level automationCommon platform for builds, deployments, testsCentral reporting and improved visibilityNo Hiding. No Heroes.
  • 22. Build Promotion / PipelineEach stage can leverage existing team-level automationNot all builds complete the pipelineStages are linked with shared reporting and reference same files
  • 23. Continuous, quality buildsNeed CI to produce deployable, traceable builds. Artifacts + dependencies + configuration information = “The Build”The Build becomes the unique identifier to provide traceability across systems.Aids Audit:We have one identifier for stuff from dev to opsSupports Automation:Consistent communication for hand-offsA complete bundle of deployment “stuff”
  • 24. Artifact Repository (DML)Need an artifact repositoryTraceability to source still essentialRepository (ITIL DML) becomes a building block of the end-to-end systemAids AuditWhat source code was used to build what’s in production?Supports AutomationBuilds populate it. Deployments retrieve from it.
  • 25. Configuration ManagementNeed configuration driven by the system instead of done by handExtract configuration from one system, deploy to anotherCan reduce deployment failures by 90%Aids Audit:Is production configured the same as test?Supports Automation:Addresses easiest part to forget when creating the manual deployment doc
  • 26. Track Complex DeploymentsHow do the database, application, configuration, and content changes relate?Aids Audit:Did the whole change go out, or just part of it?Supports AutomationOrders and coordinates automated workflows
  • 27. Role Based ControlsShared automation with rights for who does whatDevs build and own dev testQA deploys to their environments and run testsOperations runs deployments to productionManagers approve and monitorAids AuditClear controls and separation of dutiesSupports AutomationRemoves barriers to adopting shared automation
  • 28. Automated TestsRegression tests for shorter QA cyclesSmoke tests for validating deployments in ALL environmentsAids AuditEasily demonstrable tests run against the releaseSupports AutomationQuickly detects deployment problems and prompt rollback
  • 29. Requirements forDevOps automationNeed an artifact repository to trace “The Build”What source code was used to build what’s in production?Need to drive configuration from the systemIs production configured the same as the test environment?Need manage complex deploymentsWhich versions of various tiers go together?Need to control & track who, did what, whenWhat build was in production on Feb. 12, what was in it, and who put it there?Need to track historical informationDid the tests all pass for the build we put into production six months ago?Need automated smoke testsDid the release work?
  • 30. Scaling DevOps to the EnterpriseMost organizations start with pilot projects for build and deployment automationThe enterprise will want to adopt this throughout development
  • 31. Drivers for enterprise adoptionSeek to adopt “best practices”Why have any team doing something less than the best?ConsistencyReduce friction moving people between teamsInvest in training materials (help, documentation, training videos)
  • 32. What’s needed for enterprise deployment?ScalabilityFind my project among 5000Process flexibility (hard coded script names, certain user, certain machine, IP addresses, platform support)Economies of Scale Wait… does each team need its own (under-utilized) server?Better solution: pool of servers
  • 33. What’s needed for enterprise deployment?ManagementLicensingSupportKeeping the system runningTrainingSecurityKeep teams from breaking each-other
  • 34. The human side of enterprise adoptionBeware of Conway’s law:Cooperation and shared automation are unnatural when you work for different bosses.Solve the problem for everyone involvedCast a wide net: Involve a wide audience earlyMake it easier to get their job done within the system than outside it
  • 35. Four strategies for facing Conway’s LawHire engineers that have skills in development, test and system administrationPut together cross functional teams with developers, testers and sys-adminsCreate a central “DevOps Infrastructure Team.” Provides shared infrastructure as a service, facilitates Dev / Ops communication .Fight through it! There’s nothing keeping you from asking, “How do I make your life easier?”
  • 36. SummaryDocument based communication and manual build and release processes are slow and brokenGreater cooperation between development and operations is neededA common automation infrastructure helps Someone needs to make it happen
  • 37. Referenceshttp://urbancode.com/resourcesEnterprise CI Maturity ModelDeath to Manual Deployments!Build & Deployment Automation for the Lean EconomyITIL Release Management and Automationhttp://urbancode.com/blogs/http://twitter.com/UrbanCodeSoft
  • 38. Yes, we sell products for thisAnthillPro is becoming the DevOps PlatformDevOps PlatformEnd to End AutomationUrbanBuildBuild automation and CI for the hard problemsUrbanDeployDeployment and release management