Enterprise DevOps: Scaling Build, Deploy, Test, Release
- 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
- 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?
- 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
- 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