Guest Contributor Brian Jawalka makes the case for DevOps, an approach that teams developers and operations experts in IT to realize the full benefits of the cloud.
By Brian Jawalka, Rackspace Hosting
To take full advantage of the cloud, you need DevOps, a management discipline focused on increasing innovation while maintaining the highest standard of operational quality. The promise of the cloud is similar. If the speed of innovation that DevOps allows is not part of your plan, you're probably not taking full advantage of the cloud.
Sometimes people confuse the cloud with virtualization. Virtualization used new technology to transform the way IT worked, but it's not a paradigm shift like the cloud. People talk about moving to the cloud as if it happens by magic or by pressing a button. Taking full advantage of the cloud means rethinking the data center, development, and operations-as well as the architecture of key applications.
Virtualization: A progression, not a revolution
Consider what happened with virtualization. Enterprises began virtualizing computing assets because it was less expensive than running directly owned resources. Consolidating computing power onto fewer machines meant lower energy bills associated with running and cooling those machines, more efficient administration, and increased automation.
Virtualization shifted IT's focus from managing servers and network gear to managing virtual machines. Instead of being concerned about what software is on which server, in which building, IT now had to think about its new, more confined set of physical gear, and how to deploy virtual machines on top of it. The portfolio of equipment also changed. Instead of buying 10 servers to support an application, IT would buy five servers, advanced storage devices, and virtualization software.
Even though IT started to think differently about infrastructure, the applications stayed more or less the same, because a virtual machine, by definition, replicates a physical machine with a piece of software. This was a good thing because it meant better utilization of hardware. But it was also a bad thing, in that applications didn't gain new capabilities, and the enterprise was limited to the virtualization platform it chose. In the end, all virtualization really does is consolidate physical computing assets and increase efficiency. Virtualization in your data center is an important on-ramp to all the possibilities of contemporary computing, but if you stop there, you're still not on the highway.
The cloud demands DevOps
Some enterprises fall into the trap of treating the cloud exactly like they handle virtualization. This approach treats the cloud like a large, virtualized data center that runs apps on cloud-based VMs. The problems with this approach are:
- Benefits only accrue to IT, not the whole organization.
- Cloud infrastructure doesn't run as predictably as VMs in a data center, so it won't work for high performance applications.
- The way applications are developed and evolved doesn't change, which limits the ability to reach new markets and offer new services.
- The architecture of applications doesn't change, which limits their potential to be run more flexibly.
- Applications don't change operationally, which limits their ability to be more efficient.
- You're not able to take advantage of the cloud's benefits, because you're restricted to a traditional IT model.
True adoption of the cloud means changing the way you design, build, and evolve applications to take advantage of what the cloud does differently from data centers, whether virtualized or not. In other words, true cloud adoption involves adopting DevOps.
DevOps is about increasing innovation while maintaining the highest standard of operational quality. In the DevOps world, application developers and operations experts are on the same team. In the traditional data center, development and operations experts are often on separate teams.
But in the cloud, the entire stack of resources, from storage to networking to servers, can become virtualized and configurable as services. IT Operations can manage the entire spectrum of resources an application consumes. An application could be served by databases, storage, networking and servers distributed across several clouds, or a combination of cloud-based and on-premise hardware. The cloud gives IT Operations fine-grained control over resource consumption-if an application needs more computing power, it can be scaled up or down dynamically. If an application needs access to a new database, storage, or load-balancing technology in order to enable mobile capabilities, the design of that app needs to offer the flexibility to add those services. The low cost of public cloud resources allows entirely new infrastructures to be built, even to do continuous deployment, instead of just minor changes to a legacy system. The on-demand, self-service nature of the cloud, combined with its flexibility and scalability, changes the game for consuming infrastructure and deploying applications.
The cloud is perfect for this type of activity because it allows you to recombine software and hardware in ways that were previously impossible or outrageously expensive.
It's true that the public cloud will not support migration of some mission-critical legacy apps. For these performance-sensitive apps, and for special security or compliance needs, a private cloud can fit the bill. This can be created in a company's data center or using a service provider.
As more enterprise-grade cloud services become commercially available, IT Operations can step back from active management of those services, becoming more of a service broker, whose value comes from evaluating the quality of, selecting and managing cloud service providers. In a sense, IT Operations becomes as much a business manager as a technology expert-another paradigm shift that adds value for the overall organization but represents a change in required IT skills. A more tightly integrated IT organization, such as that facilitated by DevOps, stands to do better in a service-broker model, because it takes a comprehensive view of an application's needs, which leads to better decisions.
I'm not arguing that every single application can or should move to the cloud. There are limits to what should migrate. But if you are approaching the cloud without thinking about DevOps-meaning without thinking about how your IT organization could redesign itself, as well as its applications-you are only getting a fraction of the value of the cloud.Brian Jawalka works for Rackspace Advisory Services as an Enterprise Solutions Architect for Cloud Strategy. He is a technology industry expert with 10 years experience in developing world-class product and transformational architectures. His core expertise is in the development of cross-industry enterprise architectures and roadmaps. Brian has developed secure IT architectures, solutions, and best practices for a wide range of global customers and industries. Presently, Brian is helping to pioneer the Rackspace Advisory Group focused on enterprise architecture, IT governance, information security, and holistic IT systems design for Fortune 1000 companies.