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:
- Search Engine Optimization
- Time to release (almost 6 S’s in a row!)
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.
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).
- 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.
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.
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.