Cloud and DevOps: A Marriage Made in Heaven
The Digital Innovation Economy
What is the relationship between Cloud Computing and DevOps? Is DevOps really just “IT for the Cloud”? Can you only do DevOps in the cloud? Can you only do cloud using DevOps? The answer to all three questions is “no”. Cloud and DevOps are independent but mutually reinforcing strategies for delivering business value through IT.
To really understand the relationship between cloud and DevOps, it’s helpful to take a step back and consider the larger context in which both are happening. Cloud and DevOps have evolved in response to three fundamental societal transformations. First, we are in the midst of a transition from a product economy to a service economy. People are placing less emphasis on things and more emphasis on experiences. While companies still produce products, they wrap them inside services. BMW includes routine maintenance in the price of a new car. Cadillac integrates the OnStar service into its vehicles. Much of the power of the iPhone comes from its integration with iCloud and iTunes.
The transition from products to services is impacting software delivery as well. Previously, development companies built software products, and delivered them to customers who took responsibility for operations. With the advent of cloud, the majority of companies that build software also operate it on their customers’ behalf.
Software as service is happening at all layers of the IT stack. At the bottom, Infrastructure-as-a-Service delivers on-demand virtual machines, networks, and storage. Platform-as-a-Service delivers on-demand databases, caches, workflow engines, and application containers. Software-as-a-Service delivers on-demand business functionality. At every level, providers allow customers to consume services based on demand, pay for them based on consumption, and offload responsibility for their management to the provider.
Second, the 21st-century business environment is forcing companies to shift their focus from stability and efficiency to agility and innovation. The pace of disruption is accelerating. Kodak lasted a hundred years before having to face the erosion of its place in the market. Microsoft, on the other hand, felt the ground shift under its feet after only thirty. Apple has gone from the most valuable company in the world to a question mark in just a couple of years.
In order to present an adaptable face to the market, companies need to change their approach to work. They need to shorten work cycles, increase delivery frequency, and adopt an attitude of continual experimentation. Social media is shifting power from producers to consumers. Marketing is changing from a process of driving behavior to one of responding to it. From the corporation as a whole down to the individual employee, companies need to empower creative responsiveness, and minimize any waste that impedes the ability to act on it.
Third, the digital dimension is completely infusing the physical dimension. Is your car a vehicle made of metal and plastic, or is it a Pandora music-service client device? Is your office building HVAC system a marvel of fluid dynamics, or a marvel of Big Data? Is your local library a place to find books on the shelf, or a place to look them up online? The answer, of course, is “yes”.
Digital infusion dramatically raises the stakes for IT. We’re reaching the point where daily activities are becoming impossible without digital technology. Companies depend on IT for their very existence. IT can’t afford to fail at providing a compelling platform for the adaptive business.
What do these transformations have to do with Cloud or DevOps? Cloud is a direct response to the need for agility. Initially, people saw cloud primarily as a way to save money and transfer CapEx to OpEx. They’ve since come to realize that its real value lies in reducing waste that impedes speed and defocuses effort. Very few companies would identify data center operations as part of their core value proposition. Cloud services let IT departments shift their focus away from commodity work such as provisioning hardware or patching operating systems, and spend it instead on adding business-specific value.
The transformation from product to service economy, along with digital infusion, mean that companies need to become software service providers as well as consumers. I’ve reached the point where 99% of my interaction with my bank takes place via their website or mobile app. I judge their brand by the quality of our digital interactions. I judge those interactions across the dimensions of functionality, operability, and deliverability. I expect seamless quality across all three dimensions.
Cloud enables greater business agility by making IT infrastructure more pliable. It lets companies conduct digital service relationships with their customers. Cloud is only part of the answer, though, to the question of how IT enables adaptive businesses. Whether an IT organization runs a company’s applications on data center hardware, or on a private or public cloud, it still needs to align itself with the business’ needs, rather than forcing the business to align itself with IT’s. Silo-based organizations and manual processes still create waste that impede the ability to deliver continuous change and conduct continuous experiments. Onerous, time-consuming, arms-length change management procedures still generate resentment and frustration, and lead users and developers alike to seek ways to get around IT altogether.
IT Ops organizations often get tagged with the unfortunate moniker “The Department of No”. Frustrated businesses used to tag development with this same moniker. The Agile Development movement has made great strides towards creating mutually trusting relationships between business and development. Agile comes in many flavors, and has its own imperfections. At its root, though, Agile is about tuning development to be receptive rather than resistant to change.
The Inseparability of Functionality and Operability
From a DevOps perspective, the most important implication of Software-as-Service is the way in which it dissolves the separation between function and operation. Users experience them as seamless aspects of a unified whole. At the same time as they expect high levels of functional and operational quality, users also expect service providers to deliver continuous change on top of that quality platform.
These expectations necessitate a fundamentally different approach to delivering software. Separating development from operations clashes with the outside-in view of inseparability. Function + operations maps more naturally to Development + Operations. DevOps is exactly that. DevOps represents an effort to accomplish the same mutually trusting relationship for Software-as-Service as Agile has done for software as product. Agile has taught development how to move at the same speed and with the same flexibility as business; DevOps tries to teach operations to move at the same speed and with the same flexibility as development. Success in the 21st-century requires radical alignment of goals, viewpoints, language, and cadence from marketing all the way through to operations.
Cloud And DevOps Aren’t Just for Web Apps
What about IT organizations that work in regulated industries? Can they not use cloud? What about IT organizations that primarily operate commercial software instead of doing their own custom development? Can they not adopt cloud or DevOps? The answer to both questions is “yes they can”.
IT organizations need pliable infrastructure all the way from development to production. Centralized, shared development and test environments generate tremendous waste through polluted test data and contention for resources. IT organizations needn’t wait for the ability to use cloud in production, whether private or public. They can use tools like Vagrant and Docker to improve productivity on top of desktops and shared test infrastructure.
Organizations that manage commercial software still need to coordinate function and operations. They also need to reliably, frequently deliver change, even if that change consists of business rules configurations. Production support needs to understand the totality of change, from business rules at the top down to infrastructure at the bottom. These kinds of organizations can benefit from cross-functional collaboration, comprehensive version control, and automation just like any other.
The truth is, though, that a digitally infused service economy may make pure commercial application support IT a thing of the past. As IT becomes more essential to business value, more companies will need to invest in some amount of custom development, if only at the integration and API level. Inseparable development and operations practices are universally relevant.
Cloud computing, Agile development, and DevOps are interlocking parts of a strategy for transforming IT into a business adaptability enabler. If cloud is an instrument, then DevOps is the musician that plays it. Together, they help IT shift its emphasis from asking questions like “how long can we go without an outage?” to “how often can we deliver new functionality?” or “how quickly can we deploy a new service?"
Adopting Cloud and DevOps
If you are a “legacy” IT organization that is struggling to adapt to new business demands, how do you take up cloud or DevOps? Do you need to shatter your org chart, or make a massive investment in deploying a private cloud? The principle of continuous improvement is key to Agile, cloud, and DevOps. It should guide your approach to adopting them as well. Continuous improvement speaks about “starting where you are.” The truth is that there’s nowhere else to start.
Adaptive business is about always asking questions of oneself:
- What’s changed since we last looked?
- How can we get better?
- What can we do differently?
- What haven’t we thought of?
Adaptive IT is about asking the same kinds of questions. Rather than reacting to new ideas or methodologies with “we can’t because…”, instead ask yourself:
- Why can’t we?
- How can we?
- What’s the first step towards getting from here to there?
- What can we stop doing?
These questions may lead you to do things like experimenting with a cloud platform for a single test environment, or inviting InfoSec staff to standups for a single project. Learning what works, and how it works for your organization, shows you how to propagate it more widely.
No Time To Waste
Just like the business as a whole, IT needs to engage in continuous experimentation. Public clouds like AWS, along with Shadow IT, are pulling businesses away from internal IT departments. The time for fighting to retain control is past. IT’s need to change from being the Department of No to being the Department of Look Over Here is urgent. Cloud and DevOps are two enabling practices that can help IT address the larger transformative shifts – the service economy, continuous disruption, and digital infusion - that are driving business in the 21st century.
About the Author
Jeff Sussna is Founder and Principal of Ingineering.IT, a Minneapolis consulting firm specializing in continuous delivery, cloud computing, and design thinking. Jeff has more than 20 years of IT experience, and has led high-performance teams across the Dev/QA/Ops spectrum. He is a highly sought-after speaker on IT Innovation topics, and was recognized as a Top 50 Must-Read IT Blogger for 2012 and 2013 by BizTech Magazine. His interests focus on the intersection of development, operations, design, and business.
Uwe Zdun, Rafael Capilla, Huy Tran, Olaf Zimmermann Mar 09, 2014
Olav Maassen, Liz Keogh & Chris Matts Mar 08, 2014