Enterprise DevOps: Scaling Build, Deploy, Test, Release


Published on

Slides from this webcast: bit.ly/mTUTq4

Discussion of what DevOps is, why we need it, what sorts of shared tooling helps it, and how it fits in to an enterprise rollout.

Published in: Technology, Business

Enterprise DevOps: Scaling Build, Deploy, Test, Release

  1. 1. Enterprise DevOps: Scaling Build, Deploy, Test, Release<br />Eric Minick, Lead Consultant<br />
  2. 2. Agenda<br />What is DevOps (and why does it exist)?<br />What do we need from DevOps?<br />Tools for DevOps<br />Adopting DevOps in the Enterprise<br />
  3. 3. Agenda<br />What is DevOps (and why does it exist)?<br />What do we need from DevOps?<br />Tools for DevOps<br />Adopting DevOps in the Enterprise<br />
  4. 4. What is DevOps? – the Patrick Debois Take<br />We make bad software and deliver late<br />Fear of change <br />Risky Deployments<br />It works on my machine<br />Silos<br />A DevOps Mindset Emphasizes:<br />We’re all on the same team <br />Developers, Testers, Ops, Managers…<br />Cross-Disciplinary Approach<br />Lots of Communication<br />http://www.jedi.be/blog/2010/02/12/what-is-this-devops-thing-anyway/<br />
  5. 5. What is DevOps, Ctd<br />It’s Agile applied beyond Development<br />Cross-Functional Teams<br />Focus on Results<br />Embracing Change<br />
  6. 6. Traditional SDLC Roles<br />
  7. 7. Why?<br />Business demand for more releases<br />Growing application complexity<br />Increased controls and audit requirements<br />Economics limit headcount<br />
  8. 8. Why? – Business Demand for more Releases<br />High investment in software needs returns quickly<br />Respond in a competitive landscape<br />Agile Development<br />More responsive<br />Smaller updates more quickly<br />Hasn’t addressed actually releasing these changes<br />
  9. 9. Why? - Growing Application Complexity<br />Service Oriented Architectures make for more pieces that need to be released together<br />
  10. 10. Why? - Increased Controls and Audit<br />We need to comply with a variety of standards and rules<br />Sarbannes-Oxley Act of 2002, SAS 70, CMMI 2/3, ISO 9001:2008, FDA and PCI compliance<br />Basically:<br />Separation of duties<br />Clear audit trails<br />Secure everything<br />
  11. 11. Why? - Economics<br />Do more… but you get no more people<br />
  12. 12. Agenda<br />What is DevOps (and why does it exist)?<br />What do we need from DevOps?<br />Tools for DevOps<br />Adopting DevOps in the Enterprise<br />
  13. 13. What we need<br />Automate processes NOT run them manually<br />Automatic Audit Trail NOT bureaucracy<br />Cooperation NOT throwing it over the wall<br />Shared Automation NOT repeating ourselves<br />
  14. 14. Automation is a big part of what we need<br />Builds – Production Ready Builds<br />Deployments – To test environments (Dev, SIT, UAT, Perf) and production (Live, DR, Training)<br />Tests – Smoke, regression, Security<br />
  15. 15. But Today’s Automation is in Silos<br />Build scripts<br />Unit tests<br />Static analysis tools<br />Nightly build<br />Continuous Integration<br />Update test environment<br />Deploy test data<br />Functional tests<br />Performance/Load tests<br />Static analysis tools<br />Deployment scripts<br />Provisioning Tools<br />Archive releases in Definitive Media Library<br />
  16. 16. Team-level automation has benefits<br />Save themselves time<br />Automate what they would otherwise do manually<br />Better visibility between team members<br />CI lets other developers know the build is broken<br />Smoke tests let us know if it’s worth manual testing<br />Wiki board with which build is on which lab machine<br />Ops – updating a status board<br />Consistency<br />Fewer mistakes in executing the process<br />Less time tracking down bugs<br />Higher quality products<br />
  17. 17. Team-Level Automation Isn’t Enough<br />Each team manages the same things differently<br />Deployments<br />Configuration (drift)<br />Deployment verification (smoke tests)<br />Audit questions that cut across silos:<br />What source code was used to build what’s in production?<br />Is production configured the same as the test environment?<br />What build was in production on Feb. 12, what was in it, who put it there, and was it tested?<br />
  18. 18. DevOps Spans Silos<br />EnterpriseDevOpsties together Development, QA, Release Management and Operations to give end-to-end traceability.<br />
  19. 19. Terms relating to end-to-end automation<br />DevOps<br />Enterprise Continuous Integration<br />Build Pipeline / Build Life<br />Continuous Deployment<br />Continuous Delivery<br />
  20. 20. Visualizing an SDLC Pipeline<br />
  21. 21. Foundational Tools for DevOps<br />Tools should support automation and audit<br />Expand on team level automation<br />Common platform for builds, deployments, tests<br />Central reporting and improved visibility<br />No Hiding. No Heroes. <br />
  22. 22. Build Promotion / Pipeline<br />Each stage can leverage existing team-level automation<br />Not all builds complete the pipeline<br />Stages are linked with shared reporting and reference same files<br />
  23. 23. Continuous, quality builds<br />Need CI to produce deployable, traceable builds. <br />Artifacts + dependencies + configuration information = “The Build”<br />The Build becomes the unique identifier to provide traceability across systems.<br />Aids Audit:<br />We have one identifier for stuff from dev to ops<br />Supports Automation:<br />Consistent communication for hand-offs<br />A complete bundle of deployment “stuff” <br />
  24. 24. Artifact Repository (DML)<br />Need an artifact repository<br />Traceability to source still essential<br />Repository (ITIL DML) becomes a building block of the end-to-end system<br />Aids Audit<br />What source code was used to build what’s in production?<br />Supports Automation<br />Builds populate it. Deployments retrieve from it. <br />
  25. 25. Configuration Management<br />Need configuration driven by the system instead of done by hand<br />Extract configuration from one system, deploy to another<br />Can reduce deployment failures by 90%<br />Aids Audit:<br />Is production configured the same as test?<br />Supports Automation:<br />Addresses easiest part to forget when creating the manual deployment doc<br />
  26. 26. Track Complex Deployments<br />How do the database, application, configuration, and content changes relate?<br />Aids Audit:<br />Did the whole change go out, or just part of it?<br />Supports Automation<br />Orders and coordinates automated workflows<br />
  27. 27. Role Based Controls<br />Shared automation with rights for who does what<br />Devs build and own dev test<br />QA deploys to their environments and run tests<br />Operations runs deployments to production<br />Managers approve and monitor<br />Aids Audit<br />Clear controls and separation of duties<br />Supports Automation<br />Removes barriers to adopting shared automation<br />
  28. 28. Automated Tests<br />Regression tests for shorter QA cycles<br />Smoke tests for validating deployments in ALL environments<br />Aids Audit<br />Easily demonstrable tests run against the release<br />Supports Automation<br />Quickly detects deployment problems and prompt rollback<br />
  29. 29. Requirements forDevOps automation<br />Need an artifact repository to trace “The Build”<br />What source code was used to build what’s in production?<br />Need to drive configuration from the system<br />Is production configured the same as the test environment?<br />Need manage complex deployments<br />Which versions of various tiers go together?<br />Need to control & track who, did what, when<br />What build was in production on Feb. 12, what was in it, and who put it there?<br />Need to track historical information<br />Did the tests all pass for the build we put into production six months ago?<br />Need automated smoke tests<br />Did the release work?<br />
  30. 30. Scaling DevOps to the Enterprise<br />Most organizations start with pilot projects for build and deployment automation<br />The enterprise will want to adopt this throughout development<br />
  31. 31. Drivers for enterprise adoption<br />Seek to adopt “best practices”<br />Why have any team doing something less than the best?<br />Consistency<br />Reduce friction moving people between teams<br />Invest in training materials (help, documentation, training videos)<br />
  32. 32. What’s needed for enterprise deployment?<br />Scalability<br />Find my project among 5000<br />Process flexibility (hard coded script names, certain user, certain machine, IP addresses, platform support)<br />Economies of Scale <br />Wait… does each team need its own (under-utilized) server?<br />Better solution: pool of servers<br />
  33. 33. What’s needed for enterprise deployment?<br />Management<br />Licensing<br />Support<br />Keeping the system running<br />Training<br />Security<br />Keep teams from breaking each-other<br />
  34. 34. The human side of enterprise adoption<br />Beware of Conway’s law:<br />Cooperation and shared automation are unnatural when you work for different bosses.<br />Solve the problem for everyone involved<br />Cast a wide net: Involve a wide audience early<br />Make it easier to get their job done within the system than outside it<br />
  35. 35. Four strategies for facing Conway’s Law<br />Hire engineers that have skills in development, test and system administration<br />Put together cross functional teams with developers, testers and sys-admins<br />Create a central “DevOps Infrastructure Team.” Provides shared infrastructure as a service, facilitates Dev / Ops communication .<br />Fight through it! There’s nothing keeping you from asking, “How do I make your life easier?” <br />
  36. 36. Summary<br />Document based communication and manual build and release processes are slow and broken<br />Greater cooperation between development and operations is needed<br />A common automation infrastructure helps<br /> Someone needs to make it happen<br />
  37. 37. References<br />http://urbancode.com/resources<br />Enterprise CI Maturity Model<br />Death to Manual Deployments!<br />Build & Deployment Automation for the Lean Economy<br />ITIL Release Management and Automation<br />http://urbancode.com/blogs/<br />http://twitter.com/UrbanCodeSoft<br />
  38. 38. Yes, we sell products for this<br />AnthillPro is becoming the DevOps Platform<br />DevOps Platform<br />End to End Automation<br />UrbanBuild<br />Build automation and CI for the hard problems<br />UrbanDeploy<br />Deployment and release management<br />
  39. 39. Questions?<br />