Elastic clouds with elastic bills

I mentioned this in a comment over on John M Willis ESM Blog. I thought it deserved a post all to itself because I think it’s important.

One anxiety I have with hosting my websites is the bill I need to pay each month. There are many many hosting options out there, all with their own particular risk characteristics.

With the advent of on-demand cloud offerings like Amazon EC2 there are lot of new options. One of the characteristics of cloud offerings is easy scalability. Scalability does have a problem though, because your bill will scale too.

The main thing that attracted me to my current hosting provider was the capped bill. I effectively lease a virtual pipe into my server through which all of the traffic passes. If the traffic exceeds the capacity of my pipe, then some of the requests start failing. Whilst that isn’t ideal, it is better than the alternative, and I can always buy a bigger virtual pipe.

Say I get a denial of service attack on my site or my site gets hacked and used to do spam emails or launch a DoS attack, am I going to be presented with a whopping great bill at the end of the month? Happened to us when we were at Rackspace when we paid for the bandwidth we used over the standard 100GB threshold. We were presented with a large bill because a server we were in the process of decommissioning got hacked and used to send spam.

The cloud vendors need to provide a range of options that make billing more manageable and predictable.

The elephant and the cloud

Elephant flying on clouds

The most interesting thing about technology change are the odd juxtapositions it throws up. If you’d asked me a few years ago who would be the leader in cloud computing, I wouldn’t have predicted that it would be Amazon.

Sure Amazon know how to run very large websites. How did they go from e-commerce pioneer to cloud computing? It’s kinda like your local supermarket deciding that they’d like to build ships.

The odd thing is: where is Microsoft? You would have thought they would be very keen to get the developer eye balls currently heading towards Amazon.

I’m sure Microsoft could build an infrastructure around the .NET runtime, virtualise it and rent it to people on a scalable infrastructure.

Microsoft are the obvious company to deliver the cloud computing service. They have a large developer following, have a mature tool set, languages and libraries developers are already familiar with.

The main problem with Amazon’s offering is that, for Microsoft developers, you have to start from scratch. You’ve got to learn a whole raft of new technologies and languages. If you’ve no alternative then that’s what you do. But, if Microsoft can deliver cloud computing using tools you already know, then they are in the driving seat.

One thing is certain: creating scalable websites just got a whole lot easier and cheaper.

Update June 2013: Microsoft have indeed built a scalable .NET based PaaS offering leveraging their developer toolset, called Windows Azure. It is maturing very nicely.

Compute upon a cloud

Data centre worker

Interesting what Amazon is up to…first with cloud storage then cloud computing and now cloud databases. Is the art of data centre management going to be concentrated into a few massive data centres?

We currently rent a single Sun box, running Linux oddly enough, in a data centre to run all of our websites and email. One of the down sides with renting a machine is the limited capacity of storage, CPU and bandwidth. If you go the Amazon way then capacity becomes elastic. You can increase it when you need to and reduce when necessary.

The upside of renting is that your costs are known beforehand.

Would we consider moving over to a service like Amazon? Yes, but with a few reservations:

  • Data security — we need to be PCI DSS compliant because we handle online payments. We must ensure that card holder data cannot be compromised;
  • Budget limits — how can we make sure that we don’t run up ridiculous bills either through programming error or a breach in security;
  • Support — who are we going to call when things go wrong?
  • Denial of Service — will the cloud come with DoS mitigation services and insurance?
  • Firewall — you better be sure you’re going to need a firewall. PCI DSS mandates a firewall, but you need to make sure that access to your ports are limited. That’s best done off server.

We really are at the beginning of the virtual computing and cloud computing revolutions. I expect the IT world will look very different when both have run their respective courses. Though, of course, both virtual and cloud computing are very much bound together.

One side effect of concentrating more and more computing into central hubs is the head count reduction that will likely follow. If your data centre disappears or reduces in size why employ so many people to manage it?

What is likely to happen is that a layer of service providers will be created to allay a lot of the above concerns, especially the support issue. Amazon probably won’t be interested in problems with my particular virtual image, but a service provider who built the virtual image in the first place will be.

Virtual computing will provide challenges to software licenses. Any software that is licensed per CPU is going to be very expensive to run inside a virtual image that can be executed on very large computers and indeed many computers at the same time.