The increased adoption of public cloud services and agile programming methodologies has made it clear that improved cooperation between software developers and IT operatives is a necessity.
These two groups have a radically divergent worldview: Developers want immediate access to new computing and storage resources, along with accommodation of frequent minor app updates. IT operations groups want stability and reliability; they worship the status quo of the data center’s networked resources and software.
DevOps is the name of a nascent IT discipline that aims to bring order to this chaotic world of application/service development, testing, deployment, scaling and monitoring, as well as ensure software quality, security, availability, reliability and performance.
Commissioning new server instances -- even virtual ones -- requires an Act of Congress. Sysadmins and QA teams treat new apps and updates like they carry the bubonic plague, erecting complicated change-management systems to protect what they believe is a brittle infrastructure. Such a mindset mismatch can lead to conflicts and reduce operational efficiency; this is where DevOps factors in.
James Urquhart, market strategist for the cloud computing service provider systems unit at Cisco Systems, is an early DevOps prophet and thought leader who has noted that "up until now, IT has worked from a server-centric operations model; cloud is an application-centric operations model." According to a blog post from John Allspaw, VP of technical operations at Etsy, "DevOps is what some people are calling the renewed cross-interest in development and operations collaboration."
Figure 1: Venn diagram showing DevOps as the intersection of development (software engineering), tech operations and quality assurance (QA)
Another blog post on the DevOps disconnect from Chris Hoff quotes Andrew Shafer, engineering lead at Cloudscaling: "DevOps isn't so much about developers helping operations; it's about operational concerns becoming more and more programmable and operators becoming more and more comfortable and capable with that."
According to Hoff, Allspaw considers DevOps to "really be about tools + culture + communication." The term DevOps doesn’t appear in Google Trends until Q4 of 2010, but DevOps practitioners already have plenty of monitoring and management tools for public and private Infrastructure as a Service and Platform as a Service clouds to choose from. Here’s a list of some of the more popular ones:
|Azure CmdLets||MSDN Archive||Windows Azure Service Management CmdLets (API wrapper)|
|AzureWatch||Paraleap||Dynamic scalability and monitoring tool for Windows Azure|
|Chef||Opscode||Systems integration framework|
|CloudFormation||Amazon Web Services||Template-based provisioning tool for Amazon Web Services|
|CloudTest Pro||Soasta||Real-time Web performance monitoring and load testing|
|CloudWatch||Amazon Web Services||Monitoring and auto-scaling service for Amazon EC2|
|Fabric||C.V. Hansen & J.E. Forcier||Python library/command-line tool for deployment/sysadmin tasks|
|Ganglia||Ganglia||Scalable distributed monitoring system for clusters and grids|
|Kaavo IMOD||Kaavo||App/workload management for EC2, IBM, Rackspace, Terremark|
|ManageAxis||Cumulux||Dynamic scalability and monitoring tool for Windows Azure|
|Mcollective||Puppet Labs||Server orchestration/parallel job execution system framework|
|Nagios 2.0||Nagios Enterprises||Monitoring/alerting for servers, switches, applications and services|
|SCOM 2007||Microsoft||Windows Azure Management Pack for monitoring cloud resources|
|Puppet||Puppet Labs||Automated administrative engine for *nix systems|
|RightScale||RightScale||One of the first commercial cloud management platforms|
|RunDeck||DTOLabs/RunDeck||Automates ad-hoc and routine procedures in data centers/clouds|
|Skytap Cloud||Skytap||Cloud automation solutions for enterprises and software vendors|
Migrating computing resources from a traditional on-premise data center to a public cloud -- and the attendant budgetary transfers -- is likely to have a traumatic effect on an organization’s operations and QA teams. Unchecked, the trauma probably will lead to a more defensive posture and a toxic relationship with development groups.
As James Turnbull, director of operations for Puppet Labs, asserts in a blog post on what DevOps means to him: "[F]or me, DevOps is about people and nature of the environment you want to work in. The best thing about the movement for me is that it is trying to foster behaviors and environments where people work together towards joint goals, rather than at cross-purposes or at odds. That’s a world I’d much rather use my skills in."
More on DevOps and the cloud:
James Urquhart's five-part analysis of how "virtualization and the large scale, multi-tenant operations model we know and love as cloud computing are enabling IT professionals to rethink the packaging, delivery, and operation of software functionality in extremely disruptive -- and beneficial -- ways" can be found at his The Wisdom of Clouds blog.
Urquhart's more recent three-part series on "understanding cloud and devops" is based on principles from the previous series of posts.
John Allspaw’s 51-slide Dev and Ops Collaboration and Awareness presentation at the QCon San Francisco 2010 conference illustrates "the various pain points and solutions surrounding the collaboration and cooperation between development teams who are tasked with delivering working software and operations teams who are tasked with delivering infrastructure and availability."
ABOUT THE AUTHOR:
Roger Jennings is a data-oriented .NET developer and writer, the principal consultant of OakLeaf Systems and curator of the OakLeaf Systems blog. He's also the author of 30+ books on the Windows Azure Platform, Microsoft operating systems (Windows NT and 2000 Server), databases (SQL Azure, SQL Server and Access), .NET data access, Web services and InfoPath 2003. His books have more than 1.25 million English copies in print and have been translated into 20+ languages.
Dig deeper on Cloud development and testing