Cloud Computing - Here there be Cats
3/22/2012 9:20 AM
Here there be Cats
I've been working with Windows Azure since it first released, and I just recently completed my IBM Certified Solution Architect -- Cloud Computing Infrastructure V1 exam. I've found that the map of cloud computing is a bit like an old mariner's map. There's great opportunity for those willing to be pioneers, but there are also regions where the map says "Here there be dragons!" For cloud computing, I think the map should read "Here there be cats!"
Recently, a poll that I saw touted the top two reasons that enterprises were moving to cloud computing as cost savings, at 31% of respondents, and flexibility, at 28%. Yet, the article pointed out that many early adopters of cloud computing either did not ever realize these benefits, or realized them at first, but gradually rising costs erased the cost savings.
So, I was wondering to myself, what the reasons for this would be, and thinking back to our own internal virtualization efforts, I realized the pitfalls that we had to navigate internally, and how these would translate to a cloud environment.
Governance – Herding Cats
First of all, I think that the cloud computing map should read “Here there be Cats”. Now, while this doesn’t sound imposing, the problem lies with the pluralisation. Cats, left to themselves are a bit like rabbits. They multiply. They also think they own everything and they dominate. One cat is not too bad, up to 3 or 4 cats is probably manageable (depending on your level of discipline), but at about 10, keeping the house clean is near to impossible. After all, it’s no longer your house…
What's more, eventually some department wants to get a couple of Persians, but the Tabbies have overrun the house and there's no more room. Now you need a bigger house!
The problem with cloud computing is that every single one of those “cats” requires food, space and maintenance, and none of these is free. At first, everyone loves the little things, but pretty soon there are just too many of them. With cats the solution involves a visit to the vet and an operation, and the proliferation ends. With an enterprise and virtual instances, the solution is governance.
Governance comes in two flavors, and most enterprises will require a mixture. There are products from IBM’s Tivoli portfolio that provide the ability to design, create and implement policies that allow you to control the proliferation of resources. More importantly, they allow you, at a fairly fine grained level of control, to track and analyse usage by division or project. Now, when a particular division starts spinning up too many instances, you can quickly identify that they are bypassing their allotment (or even prevent them from doing so), which allows you to stop runaway projects before they make your whole cloud infrastructure a non-profit organization. Then, there’s good old fashioned policy, reporting and oversight. No amount of automation tools will help you if you don’t use them well.
Life-Cycle Management – Not for Cats
The other issue is de-provisioning.
Many early adopters were all excited about the ability to rapidly provision, but didn’t necessarily think through the issue of the full life-cycle, including de-provisioning.
In the past, before the cloud, you would buy a system, configure it, install software, run the software, and because it was so specialized for the task, and licenses were so closely tied to the hardware, you’d keep it around in a back room forever. It wasn’t efficient then, but it was a hidden cost, buried in your costs of energy, cooling, space and maintenance, which typically was in a big happy pool, so you didn’t see the cost.
Now, however, in a cloud environment, the space and the CPU usage will cost you real money. When it was just one or two legacy systems, it was not such an issue, but when you can spin up a new instance in minutes, with no immediate cost, you can quickly wind up with a problem. Darn those cats! They’ve taken over the kitchen AND the living room, and they’re eating me out of house and home!!!
Everyone gets the first few parts of the life-cycle: Provisioning (birth), configuration (childhood), evolution (teen years), maintenance (mid-life), and life-support (old-age), but no one wants to talk about the last part. It’s kind of an uncomfortable topic.
Yet, in a cloud environment, failure to address it will cause your costs to constantly increase. You don’t have the luxury to ignore it, if you want your cloud environment to succeed. In real life, that last part simply asserts itself. In a traditional data center, the hardware may fail, or no longer be supported by the vendor, and you will decide not to upgrade it. But in a cloud environment, the whole cycle is so fast that you don’t have the luxury to wait for nature. My cat analogy gets uncomfortable with this, but it’s absolutely essential in a cloud computing environment: De-provisioning.
One easy way to deal with this is to enforce a rule that requires every new deployment to identify an estimated end-of-life date, then end-of-life it automatically on that date unless they request and get an extension. It may be irrelevant for some projects and mission critical systems, but for many others, such as test systems, QA systems, and others, it is imperative that you make people think about it, before they deploy.
Automating Policy – Ensuring Success
While it is possible to implement policy manually, doing so is a good way to ensure failure to enforce. Manual policy typically involves getting certain people (usually decision makers who are really busy and may not know all the realities behind requests) to approve things.
Sometimes they just aren’t available and/or are too busy with other things to handle the extra work-load, so approval doesn’t work. This kills the flexibility part of the cloud computing benefit statement. You no longer have rapid deployment because you’re waiting for Joe in Finance to approve the deployment, and he’s on vacation for the next 3 weeks!
Sometimes they are available, but don’t really know enough to say “no” when they should, so the policy becomes ineffective. It’s a bit like the kids asking Dad if they can have an extra-large ice-cream but what he doesn’t know is that Mom just gave them a large hunk of cake and 3 donuts, each, and the ice-cream would put their sugar quotient over the top!
The solution is to have automated, audited systems that enforce policy where possible, and report on usage for all the other cases.
What Can Your Cloud Provider Do For You?
At the end of the day, you need to evaluate your cloud provider to see what features they provide for you. In particular, if you have a significant number of systems today, moving to a cloud may present serious problems, unless your provider enables you to provide governance, fine-grained usage reporting (and possibly billing), full life-cycle management, and policy enforcement capabilities.
With this arsenal of tools, you can officially herd your cats!
Copyright ©2012 FusionWare Integration Corp.