We seems to be in the midst of an undeclared ‘cloud’ arms race. Computing seems to be rapidly moving to the cloud concepts, the odd thing is how that various big players are aligning their strategies.
The clouds seem to fall into the following categories:
- Amazon Elastic Compute Cloud –
- Microsoft Azure
- Google Apps running on the App Engine
- IBM – Cloud running on platform provided by the new Cloud division
- Open provider – Basically a OSS company aiming to break into the emerging market
Outside of the Open provider I’m afraid that these are basically going to be our cloud choices. Purely based off the fact that the benefit of a cloud means that the cloud provider has to have a heck of a lot of processing infrastructure setup. Its really not a world where you can deliver your solution from your garage after from 2am hacking through the code base. We have moved from the inventive ‘anything goes’ era, to the commodity era. Even with VC backing it would be very hard to become a Open provider of cloud resources – I hope I’m wrong, but I dont believe any VC will stump up the vast amount of cash to get into the party this late into the game.
So what cloud offerings are available to us who use C# (CSharpee’s)? I dont see Google promoting C#, their languages of choice seem to be JavaScript and Python (although I see Java starting too wiggle in). So thats 2 out (Google and the Open provider).
I’m not sure I truly follow IBM’s cloud strategy at this time. Rather than providing the infrastructure they appear happy to provide the software to run within the Amazon cloud. So unless they are looking to provide some private cloud infrastructure they appear to be happy to just run within other companies clouds. If that is the case then for this part of the discussion as a cloud vendor they are out as well.
So that leaves us Microsoft and Amazon. Now things definitely get interesting, since Microsoft own the Microsoft platform they are probably (anyone hear anti-trust court hearing coming…) not ‘unofficially’ bound by the same pricing issues as Amazon using the Microsoft platform. Fundamentally Amazon charges 25% more to use a Microsoft platform over a Linux platform. So anyone looking to run a C# application must be reconsidering the language choice if they are hoping to need many servers running a successful software solution
, naturally Microsoft pricing should (and I say should as at the time of writing it hasn’t been released) be competitive.
Doom & Gloom? I don’t think so, if you love C# (like me) I don’t think its as bad as the picture above paints. The savior is something we have all heard about, but not necessarily thought about in this way. The Mono Project actually provides the answer to any cloud cost based dilemmas. For the longest time I knew about Mono, but couldn’t reconcile in my head the compelling reason (any reason actually
) why I would ever have the need to use it. I work in a Microsoft shop, all our tools are Microsoft based (although that is changing with the ‘appliance’ concept) – why would I need my C# to run on anything other than a Microsoft platform? Now Clouds have brought in the compelling reasons – price and scalability.
I’m intentionally skipping past the fact that Azure is positioned to be more than the Amazon ‘virtualization’ cloud and very well beat it in price due to its different approach. However the thing Microsoft cant avoid is running on Linux is ‘on the surface’ cheaper, so any Azure pricing has to beat C# running on a Linux platform. Which really means that as long as Mono is viable you still have a hosting choice where you can run with the same, or hopefully better if Azure is what I think it will be, as the Linux hosted/clouded systems. Predominately because it can run on those systems
.
Mono is certainly interesting, and while it still needs some more hardening (see a upcoming post on Mono garbage collection) I imagine the Cloud race and Mono positioning will make them become the best of friends.
If you are thinking about putting some stuff up in a cloud and where waiting for Azure, perhaps you should have a look at Mono. You may be pleasantly surprised.
Gareth