All cloud roads lead to applications
How has our perception of cloud-computing services changed over the last few years? Where do we go from here? The answer relies on one key principle of cloud computing: it's all about the applications.
Last week's Structure conference in San Francisco was fascinating to me on several levels. The conference centered much more on the business and market dynamics of cloud than pure technology and services, so there was significantly more coherence to the talks as a whole than in previous years.
Vendors had products and services, and customers had private and public cloud deployments; as opposed to previous years where the "vaporware" almost formed storm clouds.
Another key observation from the show was the change in emphasis this year from virtual machines (2009) and "workloads" (2010) to an almost maniacal focus on the term "application." Everyone was talking about the importance of supporting application development, operating applications in the cloud, integrating applications, and so on. In 2011, applications are king.
In fact, for the foreseeable future, applications are king.
And that is as it should be. I've noted in the past that I believe. There is nothing in the execution stack that is "cloud." Management and monitoring protocols don't change for cloud. The secret sauce of cloud is in how you provision and operate those elements: on demand and at the appropriate scale.
What's more, cloud is an application centric operations model. As I note in my "Cloud and the Future of Networked Systems" presentation which I gave earlier this year, IT operations is moving from a server-centric to application-centric operations model, where more and more of the management and monitoring tasks will be defined by (and targeted at) the application itself, not the underlying infrastructure.
The application-centricity of cloud leads to an interesting corollary: if the focus of cloud is on applications, then all cloud solutions must look at the problem they solve from the perspective of the application. In other words, designing a tool for virtual machine management in the cloud is a short-term game. Eventually, the application will begin to hide the containers in which it runs, and the concept of managing a guest operating system in a virtual machine won't make sense.
However, designing tools with the development, deployment, and operations of code and data in the cloud model has tremendous promise. It's a disruptive concept--displacing our server-centric past--and one for which few enterprises have any serious tools or processes. Certainly not in terms of operations.
One example of application-centricity can be found in cloud tools like enStratus and RightScale. (Disclosure: I am an adviser to enStratus.) Both of these vendors are still too VM-centric for my taste, but each ideally wants to provide tools for managing applications across disparate cloud systems. The VM view is simply an artifact of how most applications are built and deployed today.
So, how can one achieve application centricity? Well, there are a few choices:
Use management tools that are application aware for deployment to infrastructure as a service, including development tools and platforms, cloud management tools like the ones I mentioned above, and organize your operations tasks around applications, not server groups.
Build to a platform as a service environment that hides operations tasks from you and lets you focus on only the application itself.
Ditch building your own applications and acquire functionality through the software as a service model, where the vendor operates all aspects of the application for you, except the use of the application itself.
I should be clear about one thing before I wrap up, however. In addition to application-centric operations, someone has to deliver the service that the application is deployed to (or the application itself, in the case of software as a service) and the infrastructure that supports the service.
Rather, they become the responsibility of the cloud provider (public or private), not the end user.
Ultimately, I think this new separation of concerns in operations is at the heart of the difficult cultural change that many IT organizations face. However, the result of that change is the ability for business units to focus on business functionality. For real this time. Not like before the application became the center of the cloud computing universe.