Wait a minute, but I hate the sun!! Actually, I was referring to the recurring phrase “the cloud” in reference to “cloud computing.” These last few days of the year, I’ve been looking for a cloud platform to host an application I’m developing. After reviewing Google App Engine and Windows Azure, I ended up choosing an intermediate model with Rackspace.
Why did I choose a semi-cloud platform?
It’s possible that I haven’t yet gotten used to the cloud for application development, or that these platforms simply don’t meet some of my requirements. Here’s a summary of my evaluation of both platforms:
Google App Engine:
This was my first choice because it allows up to 1 million visits per month for free, supports Python, and includes Django. I couldn’t ask for more, except that it doesn’t include a relational database, and connecting to a database in another data center degrades application performance. Google App Engine includes its own proprietary data engine, so I would have to write the application connected to Google’s database, limiting my ability to migrate to another platform.
Google promises that a relational data engine will be available very soon, but only for its Enterprise version, which somewhat diminishes its appeal for me. It’s possible to write a data abstraction layer, but that would add extra work to the project, and I would also need my own daemon to perform some tasks for the application.
Windows Azure:
I remembered that I had a Windows Azure account and that I’m a Microsoft partner (I don’t know how that happened…), so I decided to take a closer look at this platform. Initially, the main attraction for me was that it supports C# (sorry, Java…). Furthermore, it supports ASP.NET MVC, which would make development much simpler. It also supports SQL Server, which is a relational database. It has two roles called Web Role and Worker Role. The first is basically an application that runs on IIS 7.0, and the second is a special type of application that runs as a constantly running service.
Microsoft support, always very helpful, guided me through the configuration and the necessary steps to load my first test application. But it’s not all perfect, and once again I found myself locked into this platform regarding the Worker Role, because it doesn’t have a counterpart outside the Windows Azure platform. Therefore, a migration would require creating a service that functions similarly.
Why is migration capability so important?
It’s true, if you choose one of these platforms for your application, it’s very likely you won’t migrate it because it’s much more convenient to run it in that environment. However, if at some point you require greater control or additional services that aren’t supported, you’ll have no choice but to adapt to the limitations. Additionally, it’s important to consider that the pool of qualified personnel to develop applications for these platforms is limited.
What options remain?
Some companies are creating services to address this problem, which they call “Private Cloud.” This involves providing a flexible, highly scalable platform that allows you to create your own server network in minutes and use the technologies you deem appropriate with all the necessary privileges. Rackspace Cloud and Amazon EC2 are some of the leading examples.
Leave a Reply