12-03-10 | Blog Post
We have a really important web application that gets a fairly unpredictable flow of traffic from multiple sources including users. I wanted to know what it would cost to host this application “in the cloud.” I thought it would be really easy to buy a “cloud” server and move my application there. But first, I wanted to forecast the costs.
I decided to check Amazon EC2 and Microsoft Azure. Without too much difficulty I found the details for their pricing. This is when my hair started to hurt. I had no idea they could make it this complicated.
Check out Microsoft Azure’s pricing at https://azure.microsoft.com/en-us/pricing/. That page has over 700 words and 45 bullets to describe how they charge for a virtual server. They charge for things like a “App Fabric Connections” and a “Service Bus”. Do I need those? How much of those will my application use now and in the future? They charge for every bit and byte that moves.
So I checked Amazon. Same thing there as with Microsoft’s Azure. It was incredibly complex. So I was excited to see that Amazon offered a nifty tool to help forecast your monthly costs given a certain compute environment. It’s here http://calculator.s3.amazonaws.com/calc5.html. All I needed to do was enter information in 97 fields. Including “Reduced Redundancy Storage” (whatever that is). Basically they have 97 different things they bill for and they were asking me how many of each I was going to use. To boot both Amazon and Microsoft’s Azure required I agree to a 3 year contract to get predictable computing. Where’s the “elastic” in that?
I was immediately taken back to the early 1980s when I was an under graduate in Computer Science at the University of Michigan. We used an Amdahl 370 mainframe. Each student was given a budget we could spend on our computer account each semester. We had to fit all our work into that budget. The Amdahl would charge us for every cpu cycle; page swap; printed word and about a hundred other metrics. We would spend hours manually reviewing our code so we wouldn’t spend money on un-necessary compiles. We were students and our time was basically worthless. It’s not the same today. My time isn’t worthless anymore though some might argue how I spend it. So now I’m not willing to spend dozens of hours trying to forecast how much it will cost to host a single application.
I quit considering a public cloud. I decided the public cloud wasn’t for me. There just was no predictability in costs. I wanted elasticity AND predictability. The public cloud attempts to meet the prior but completely fails on the later. I realized that I want “Predictably-Priced Elastic Computing”. This I found was only available as a Private Clouds combined with public clouds and shared storage. It’s the only way to get some predictable pricing with elastic computing.