Five years into the cloud computing phenomenon, we're much more aware of the limitations and consequences. Here are 12 trends to watch in the coming year, starting with numbers 7 to 12.
Only a few years ago, cloud computing didn't exist. Or rather, it existed by a dozen other names--such as virtualization, managed hosting, or simply The Internet. Today, it's the must-have feature of every product or service, from mobile phones to cameras to TVs.
Nobody knows this better than enterprise IT professionals, who have to deal with a rising tide of hyperbole and insatiable consumer expectations even as their budgets shrink and the role of technology in business grows. What nobody disputes, however, is that on-demand IT is here to stay.
While companies have been relying on software as a service and third-party tools for decades, it has been roughly five years since clouds entered the enterprise IT psyche, introduced by public providers such as Amazon, Google, and Salesforce.com and via private stacks from VMware, Microsoft, and Citrix. Five years is plenty of time to mature. We're much more aware of the limitations and consequences of utility computing. Here, then, are a dozen insights into what the next year will bring, nearly half a decade into the cloud era. In Part I of this two-part series, I'll cover trends seven to 12, in reverse order. In Part II, I'll cover cloud trends one to six.
Cloud Trend No. 12: Infrastructure, Code, And Data Are Intertwined.
We talk about writing code, storing data, and managing infrastructure, but these three things will soon be one and the same.
While much of the emphasis around cloud computing has been on virtual machines, it's really about data.
-- Compared to the cost of moving bytes around, nearly every other part of computing is free, according to research done by Microsoft nearly a decade ago.
-- Data is what we're worried will leak out. The reason the analogy between clouds and the electrical grid falls apart is that when someone steals your electrons, they don't have your corporate secrets.
-- Availability is a data problem. I can have 50 instances of an application running around the world. That's easy. But getting them to cooperate on sharing and updating a single user record is the hard part. The more copies we make, the more the data can be corrupted, get out of sync, and so on.
-- With the ability to scale out horizontally, we can make applications fast for millions of users. Scaling the data, however, is an entirely different matter. Ask any architect where the bottleneck is, and more often than not they'll point to data and I/O.
Tomorrow's applications will include three kinds of code: instructions for the business process itself; instructions for how to handle the data needed; and instructions for how to manage growth, shrinkage, and failure.
Consider, for example, a customer service application that can run on both public and private clouds. This application accesses a database that contains both innocuous information (the name of a customer, or his purchase history) as well as heavily regulated information (his social security number).
When the application is running in a trusted on-premises environment, the call center operator has access to all of the data. The operator can, after properly verifying a caller's identity, make changes to it. But when the application is running in a different environment--such as a public cloud used as part of a disaster recovery plan--the application can't access the social security data.
To accomplish this task, we need to encrypt the information not at the device or file level, but at the table or field level. The application needs to run with different permissions depending on its circumstances. It also needs to be smart enough to tell the operator what's happening, so that the operator can explain the situation to a caller.
Similarly, if a data center has a problem, the application can re-launch in another data center. But as machines and programs come online, they need to adapt to the new environment: different unique names, addresses, latencies, and so on. We do this through Devops, and platform orchestration systems like Chef, Puppet, and Pallet.
When a machine moves to a new location, it needs to take with it the data required to run. The more data it takes, the better it can run quickly. But the more that it takes, the longer it will take to relocate--and the more it will cost. As a result, there's a tradeoff to be made when moving a workload: just enough metadata and application logic to function, but not so much that things slow down.
There are nascent standards that let programmers declare how data should be handled, making workloads move about the world efficiently, adapting to changing circumstances.
Cloud Trend No. 11: What Can't I Put In The Cloud?
Several weeks ago, I was at a doctor's office with 10 physicians and two assistants. One wall of the waiting room was lined with manila file fodders, each emblazoned with colored stickers and numbers.
I spent a half hour waiting to see the doctor, and in that time, I saw at least three data errors. In one case, a doctor picked up the wrong folder, opened it, and then realized her mistake. In another, an assistant dropped a folder, spilling patient records across the floor. And in a third, an assistant couldn't find a patient's record because it had been misfiled.
The benefits of electronic health records are huge. In addition to overcoming these kinds of errors, health practitioners can work together on a patient, transferring information from specialist to specialist. And researchers can mine the information to understand the efficacy of a cure or the spread of a disease.
Today, we're concerned about putting data in the cloud. For large organizations, that might be a real concern, but for small organizations like doctors' offices, police precincts, and schools--all of which deal with regulated data--leaving information out of the cloud could be a huge mistake.
We criticize the cloud, but we don't compare apples to apples. We don't really understand the costs of paper medical records, evidence stored on analog tape, student information saved in a single spreadsheet. In 2012, we'll start to do a real comparison of on- and off-cloud solutions, and realize that, for many businesses, the real question is what can't be better done in a cloud.
Cloud Trend No. 10: Inception, The Brain In The Vat, And Hardware.
An ever-increasing percentage of our enterprise applications run in virtual environments. We no longer use virtualization solely for increased utilization--that is, putting several virtual machines on one physical one in order to make the best use of its processing capacity. We also do it for operational efficiency, because it's easier to work with virtual bits than physical atoms.
Between the virtual machine and the bare metal on which it runs is a hypervisor, a piece of code whose core function is to trick the operating system into thinking it's running on bare metal. In some cases, companies add another layer beneath the hypervisor, to further streamline operations.
Multicloud Infrastructure & Application ManagementEnterprise cloud adoption has evolved to the point where hybrid public/private cloud designs and use of multiple providers is common. Who among us has mastered provisioning resources in different clouds; allocating the right resources to each application; assigning applications to the "best" cloud provider based on performance or reliability requirements.