Choosing your cloud
The pointy haired boss at your company will inevitably want you to look at cloud. But what most bosses don’t realize is that it’s not a simple “forklift operation” of moving existing code to a new platform. Choosing the right cloud can be a challenge with factors such as cost, platform selection, language availability, scalability and automation coming into play. Below is a quick primer to help you choose between the leading cloud providers:
Google is a great choice for startups and in many ways they are building a cloud that can run the next Facebook or Twitter on their dedicated platform. Their business model highlights this. They offer 500 MB of cloud storage and up to 5 million page views per month for free. They also geared AppEngine towards the hacker’s choice of Java and Python, run code on an abstracted platform layer (real developers don’t want to touch the underlying OS) and provide automated scaling controls.
Historically Google has excelled at targeting their products at individuals and SMBs, and it seems they are heading in a similar direction with AppEngine. If you are a small company with smart developers then you will likely want the low-cost, hacker-oriented and highly-automated (whew!) solution offered by AppEngine. If you’re an Enterprise then you will more than likely be concerned about lock-in, skills availability (.NET is the most readily available dev platform in large enterprises today) and lack of fine grained control.
Microsoft is offering a similar product to Google AppEngine, obviously geared towards the Microsoft community of Visual Studio developers. Web applications that currently run on the .NET/IIS7/SQL Server stack can be easily migrated to the Azure cloud, which comprises solely of a cluster of virtualized Windows 2008 servers. Developers familiar with the Microsoft development stack should have no problem moving to the cloud. As with AppEngine, the Microsoft solution offers scalability automation and abstraction from the underlying platform.
While Microsoft Azure can be tweaked to run non-Microsoft technologies (such as PHP), it is still very much oriented towards the Microsoft technology stack. Google AppEngine and Microsoft Azure may not end up as direct competitors — they can likely carve out a market that splits users into “hacker startups and SMBs” for Google AppEngine and “enterprise users” for Microsoft Azure.
Amazon is the granddaddy of cloud computing, offering a mature and stable cloud solution that has been active for almost 5 years. The Amazon solution differs greatly from that provides by Google and Microsoft. They selling on-demand, virtual slices of a computing infrastructure (Infrastructure as a Service), rather than an underlying development platform (Platform as a Service). That makes Amazon EC2 very similar to running an application within your own datacenter. You can use any operating system and development language that you like, with full console access to configure and manage your box.
The Amazon EC2 cloud is the easiest to get started with and probably the closest to how your company currently runs its environment. There’s very little lock-in, as Amazon is only selling you computing time on a box and some peripheral technologies to aid in scalability and monitoring of the environment.
By Simon Ellis