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