Cloud Services – A Comparative Analysis

All of my reading and rough experimenting may actually come to some use.  I need to architecture a global website. The question is, where to start?

Here is the situation: We need to release a globally targeted audience connected to a centrally housed Oracle based data center.  A content management system is required.  Platform, language, architecture– anything goes.

Main things to consider:

  • Speed
  • Security
  • Scalability
  • Search Engine Optimization
  • Simplicity
  • Time to release (almost 6 S’s in a row!)
  • Cost

One of the obvious starting points may not be entirely apparent at first.  What the heck is the site going to do? Deciding anything before carving out the site requirements could seriously steer you in the wrong direction.

I’ll tell you what conclutions I came to and you can be the judge on whether I’m right or wrong.

Language

I am primarily a .NET developer, but I’ve always wanted to dip my toes into some other technologies.  I tried to be unbiased, and chose PHP.

  • PHP is a tried and tested language, used by the largest of corporations.
  • Tons of support and user groups.
  • Lots of choice for open sourced CMS solutions (more on that below).
  • Free.
  • I considered Python as well, but even though it has a solid CMS contribution, PHP was stronger.

I decided not to stick with my .NET roots.  Cost was an issue for the company and I’ve become increasingly frustrated with their AJAX solutions.  Substituting ease of programming with performance is becoming a issue with me.  I’ve also tried a few CMS options, which are generally well written but just didn’t suite our needs.  .NET feels spoon fed and bloated.

Platform

The most difficult decision to make was narrowing down our hosting needs.  Although we aren’t a high traffic site currently, its our goal to become one (and if you don’t plan to meet your goals why bother making them at all?).

A php app obviously needs to be hosted on a Linux box, but where do we host it?  Our requirements require a very country specific orientation, for example our Japan site should be xxx.jp.  IP’s should also be local for SEO purposes.  Sticking boxes all over the world was the first suggestion.  However, it did not seem like the ideal choice, not only because of cost, but also for code management.  Also we have a main database server in Europe that the websites will need to access, and even an ajax post-load webservice call loaded slowly.  Also scaling using the approach is difficult and costly.

We were excited to see that the Azure service was just released, and I might have gone back on my php decision if we didn’t have all our data in Oracle.  Azure currently only has servers in the US (Dublin is planned), so traffic will still be travelling too far.

I then looked at the Google app engine, which seems very interesting, but still had the pitfalls of Azure.  Also GAE currently only programs in Python, which wasn’t as appealing (see above).  Also if you ever decide to take your application off of GAE you will need to do some serious reprogramming. It is, however, the cheapest solution.

Then I looked at Amazon services and liked what I saw.  EC2 will give you a virtual machine of your choice and supports Oracle.  More choice, easy decision.  It has the longest track record of any of the cloud services, and already has a host of high-profile clients.  Although AWS still only operates in 1 region, they are planning on opening more sites, and by the time development is completed and traffic is high, I’m confident this will be resolved.  Oracle was a big sell for me since our data does not need to travel across a couple of oceans.

CMS

The CMS choice really came down to 2 options: Droopal and Joomla.  We decided to go with Droopal because of its already popular consumer use and research of the product made more sense for our website.  Both seem like good solutions however.

Anything thoughts?

Good news from Microsoft

Returning from my vacation I caught up on my news and saw that Microsoft finally released thier Cloud network, “Azure”. I’m not entirely a fan of the name, but the concept looks fantastic.  I watched a few video’s on the product, and I was really impressed to see how simple it was to create and upload a project.

I tried to download the SDK from work to give it a ol’ college try, but was met but a surprising install error: I was not running vista.  I obviously didn’t read the system requirements.  So, a little dishearted, I had to wait until I got home.  Once again I downloaded the SDK and I was again met the install error, this time telling me I needed SP1 installed.  Long story short, I don’t have the Azure SDK.