Friday, April 19, 2013 9:24 AMA Four Quadrant Look at the DevOps ToolchainPuppet Labs
I found Damon Edwards and Anthony Shortland's video presentation on DevOps a refreshing change. They see DevOps as a larger, more comprehensive service delivery platform and view the DevOps toolchain as the practical way to make that service delivery platform work. Their excellent diagram divides a service delivery platform for DevOps into four quadrants, with Infrastructure and Applications on the Y axis and Build and Deploy on the X axis.
A service delivery platform treats common tools as a single integrated system. To go into production, both software development and infrastructure can be coordinated into a single flow, and can to a degree share some of the same tooling. Everything starts from a source repository, and from there it's built, packaged, and stored in a package repository. At release time, those packages are installed, and a system like Puppet ensures that all the virtual machines are in a consistent state. Dev and Ops may sometimes use different tools to accomplish their goals, but they map onto a common framework.
I came away with two main points.
First, it's helpful if every system in a service delivery platform is either web-based or offers APIs, with hooks to allow the automation of one tool to kick off downstream work for the next tool. This makes me think about how DevOps toolchains fit together and where there are opportunities to more intelligently connect systems using web services.
Second is the realization that the parallel structure of Dev and Ops integration points out parts of the platform that are better developed than others in a given installation. I found it entertaining how the piece pointed out the challenges of managing virtual machine customization, describing the difference between "baked" configurations that are very quick to clone vs. "fried" configurations that start from a common base but are customized to fit the system's specific needs.
Puppet is featured on the Deploy side of the system, where its resource model leads to modular automation of installation processes. Here again there are common coordination issues between Dev, which is working on new code, and Ops, which is constantly refining the software-defined data center.
I think the 25 minute video is worth watching twice to catch the nuances of how the service delivery model can help you visualize this structure relative to your own DevOps toolchain. As you move Dev and Ops closer together, it makes sense to consider how changes to the DevOps toolchain could allow the use of more common tools or at least common repositories.