Understanding the cloud and 'devops'--Part 1
While virtualization changed the way we operate our data centers, cloud computing represents a fundamental shift in the way we operate applications.
Cloud computing has brought many changes to IT operations, and there are new organizations and technologies that operations professionals need to understand to embrace those changes.
During a "cloud operations boot camp" prior to the Cloud Connect conference in Santa Clara, Calif., last week, I spoke about theses changes and challenges. If you are interested in reviewing the slides from that presentation, titled "The New DevOps Designers: Cloud and The Big Rethink," they are available at Slideshare.
This is the first of a three-part series intended to explore the concepts that I covered in that boot camp.
"Devops" is a term introduced to me by Jesse Robbins, now CEO of Opscode, the company behind the open-source operations platform Chef. It is intended to represent the shift from reactionary, process-centric operations, such as traditional systems administration and procurement (including ITIL), to a more strategic, agile, and automated approach.
The term is a combination of the words "developer" and "operations," so as you might expect the trend is toward operations being "programmed" using tools like Chef or Puppet (or a variety of others). What I wanted to explore was why this was so? What drives the need for automation expertise in cloud operations?
On the surface, the answer to that question may seem quite simple. "Duh. Cloud computing is driven by the automation and virtualization of infrastructure," you might be saying right now. I agree, but that's not the most interesting aspect of the question, in my opinion.
To understand what really drives the need for more agile operations platforms, let's begin with some simple observations of the effect that virtualization and cloud computing has on IT operations. Much of this comes fromthat I wrote last fall.
First, server virtualization--followed by storage and network virtualization--introduced us to the idea that physical systems operations can be decoupled from the digital elements that they host. Operating systems no longer have to be shackled to physical servers. File systems no longer have to be locked down on specific spindles. Connections between servers are no longer statically assigned to specific physical switch ports.
This separation of concerns means that software and data management (aka "payload management") can be separated from physical infrastructure management. You can see this in the increasing demand for job roles like "virtualization administrator" (though some think that is a temporary phenomenon). RedHat even has a Virtualization Administrator certification. Cisco Systems (my employer), in turn, has several Data Center Administrator certifications for those that focus on physical infrastructure.
Interestingly, the decoupling of payload management and infrastructure management is a big part of what has enabled the cloud computing market to flourish now, instead of a decade ago. Before virtualization, the idea of operating payloads independently from infrastructure was absurd. Servers had to be provisioned with the right operating system for one or more specific applications. The right server had to be bought for this, and the right software had to be provisioned.
Now, in the age of cloud computing, payload administrators (for lack of a better term) can leverage virtualization to almost ignore infrastructure operations. (I say "almost" because there are fundamental concerns related to things like security that must be taken into account.) Infrastructure is "someone else's problem", and can easily be handed off to shared IT services or even a third part infrastructure service.
This, in turn, has changed something fundamental about IT operations. In the past, the unit of deployment into the data center was the server. The server was procured, provisioned with an OS, connected to the network, assigned an address and an identity, etc. The application was secondary; it just went along for the ride.
Cloud computing, however, is an application centric operations model. The unit of deployment is quickly shifting from the server (even the VM image) to the application itself. What evidence is there of this? Well, note that most production server images are now being built to support a single application or application component. Look at the most popular recipes on the Chef cookbook site. Look at the list of applications available as commercial Amazon Machine Images on EC2.
The application is king in cloud, and that changes how we run IT operations pretty significantly. In the next post in this series, I'll take a look at specific changes and why an applications focus means automation is critical to IT operations. I'll also take a look at how that brings development and operations closer together than ever before.