Imagine this scenario: It was still dark this morning when you started your car. The gas tank light that signals "empty" came to life, so you pulled into a service station to refuel and pumped the gas yourself. Sometime around noon, you and your colleagues walked over to a salad bar in a nearby food court. On the way, you stopped at the ATM to withdraw enough cash to pay for lunch. Once there, you carefully arranged the perfect salad, one that balanced your preferences with a very real need to cut down on cholesterol. All in all, it was a pretty typical workday in the 21st century.
When I reflect on a morning like that, I realize that 50 years ago, no retail manager would have considered delegating such responsibility to the consumer. Today we can't imagine why any store ever needs extra staff to perform such basic tasks.
The revolution in retail that brought us self-serve gas, ATMs and salad bars grew out of a need to manage steadily rising labor costs and increased competition - business challenges that every CIO can relate to. Despite this reality, IT, with its vast complexity and byzantine interdependencies, has always defied such simplistic transformation - until now. Change is coming thanks to cloud computing: the overhyped computing trend du jour actually hides within it the seeds of a genuine IT management revolution.
Delegation at Scale
The problem with cloud computing is that it is far too easy to fall for the talking points and overlook the effect it will have on the business of IT. Cloud is about the shift from CAPEX-dominated to OPEX-managed budgets. It is also about on-demand, elastic computing. But lost in the hyperbole is a more important insight: cloud is fundamentally about self-service.
It's about a shift in deployment and operational responsibility away from IT and toward the user base - empowering individuals so they can easily access computing capacity when they need it. In a time of continuous pressure on IT budgets, the secret to scaling IT management is to leverage the one resource that IT has in abundance - and that is its own user community. Cloud management is an exercise in delegation to the customers of IT.
Consider the stunning success of Salesforce.com, the poster child for software as a service. Salesforce is a demonstration of SaaS as a cloud computing deployment pattern, an embodiment of what is otherwise an amorphous term.
Salesforce is successful because it delegates application responsibility to its users. The company specifically targets the customer relationship management market because it is an area of high friction between users and IT. (When Salesforce showed up, you'd have been hard-pressed to find a salesperson with positive things to say about their company's internal legacy CRM application.) Salesforce countered that with a highly streamlined, scalable, multitenant CRM engine they host more efficiently than any enterprise.
The people behind Salesforce never tried to sell their product to IT; instead, they sold directly to the field. Salespeople saw a solution that gave them the basic functionality they needed, was easily customizable, and could be delivered at a cost well within their own spending limit. Gone were the expensive consultants and formalized projects run by an unapproachable priesthood. In place of all that was a perfectly serviceable solution run by users. Salesforce is operational scale through delegation writ large.
Curation Promotes Standardization
The genius of the self-service gas station is that it proves that if you make a task uniform and regulated, you can delegate it to the masses and eliminate extra staff overlay. When was the last time you were surprised or confused at a self-service pump? Probably not recently - that is the power of uniformity. This is policy control; too much configurability increases the potential for failure.
Although it is a more sophisticated domain, the cloud is no different. For self-service, processing is reduced to uniform units of CPU/network/storage and managed in a pool that users can draw from on demand. Resources are easily available to the user populace, but regulated to ensure their efficient use. Recognizing that human intervention might slow or block the use of cloud infrastructure, processes are automated as much as possible. All of the technology behind cloud works to promote an efficient model of self-service with the goal of minimizing administrative specialization and overlay.
Curation has become a buzzword in Silicon Valley. In the cloud, curation refers to a carefully chosen subset of operating systems, middleware and applications known to work together. These are preintegrated, often managed by user IT and made available as basic components to the user populace.
Apple taught many of us the value of vertical integration coupled with minimalist configuration. Complexity and choice are killers in IT. The cloud service model minimizes operational demands with a standardized configuration the community can easily adapt to, rather than forcing IT to accommodate a community's idiosyncratic demands. Complexity decreases when the building blocks of our applications - OS, database, Web server, application server, etc. - become more componentized, allowing IT to begin to recognize economies of scale in their deployment. The magic of curation is that limiting choice isn't really all that limiting; rather, limitation is the key to operational efficiency.
Rules and Enforcement
The challenge that arises with delegation is that delegates may abuse their privileges. The way to effectively manage delegates is to provide a policy framework and enforcement mechanism that encourages people to act responsibly. In the cloud, a combination of chargeback, quotas and claw backs are surprisingly effective in managing a diverse user populace.
When at the salad bar for lunch, you may try to avoid the heavy stuff. Cottage cheese might be nice, but if you're paying for it by weight, it doesn't seem like a good value compared with the lightweight spinach right next to it. Pennies per CPU hour may not sound like a lot, but they add up over time. An effective chargeback scheme not only realizes the IT holy grail of accurate by-department cost recovery, but it helps to moderate user consumption.
My own experience with management using chargeback extends outside the salad bar. Some time ago, I spun up an Ubuntu image on one of the commercial cloud providers. I found it useful for a variety of day-to-day tasks, but over time, it fell out of use. Every month, a small charge appeared on my credit card reminding me my image was still there. It wasn't much money, and I could certainly afford it, but it didn't feel like I was deriving value from it. So one day I took it down. What's important in this anecdote is that I managed my own use; it wasn't IT trying to determine if my image was still important. Cost, even small, is a great counter to the natural impulse to allow virtual machines to sprawl unused in a shared environment.
The well-managed cloud exploits human psychology to achieve operational objectives. People are natural hoarders. We all have a tendency to hold on to things we perceive as valuable and difficult to acquire, whether it is fine wine or rack mount servers. If disk space is difficult to obtain, people will reserve all they can and hold on to it, even if they have no immediate use for the storage. When we make disk space abundant and easy to acquire, people will take just what they need and release unused capacity.
Similarly, overprovisioning is a response to our fear of failure. Web loads are so difficult to predict (and acquiring hardware is so onerous) that we naturally overprovision our Web infrastructure as insurance against our own success. Make server capacity elastic, and people will use what they need, expanding and contracting demand to get through the ebb and flow of a typical e-commerce site's lifecycle.
That said, there is nothing like external policy checks and audits to help steer a populace toward efficient use. Cloud infrastructure should enforce quotas to restrain any impulse toward greed. Automated claw backs - for example, pulling resources back into a common pool after a certain time - are also essential to manage finite capacity and maximize hardware utilization.
Management Trumps Technology
Like any techie, I can't help but be drawn into the technological underpinnings of the cloud. Hypervisors, virtualized networking, elastic computing - these are all fascinating topics and each represents a great step forward in our understanding of how to scale the delivery of computation. But it is the philosophical change underlying cloud management that is the real stuff of revolution. Pool the resources, make them simple and uniform, enable self-service provisioning and ops, and manage the systems and people using accurate charging models and enforced policy - this is how IT will be delivered in the future. Commoditization is not a threat to IT, but a great opportunity for transformation.