How DevOps brings order to a cloud-oriented world

Today's evolved IT model magnifies the divide between developers and IT operatives, but DevOps pushes to increase collaboration among these diverging departments.

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:

Name Source Description
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."

Next Steps

 Consider these management tools for robust DevOpsdeployments

The cloud deployment model influences DevOps tool choices

DevOps doesn't have to be hard; use this home lab to see it in motion

Where cloud, containers fit with DevOps and app modernization

Dig Deeper on Cloud application development