This will be the first post in a multi-part series, each of the following installations will detail the technologies and implementations of the upcoming CitySquares revision. I hope to cover the entire page generation process, starting with the user’s first request to the resulting dynamically generated HTML, CSS, JS, etc. Before I dive too deep into the technical aspect of things I would like to give a brief overview of what is to come.

For starters, CitySquares currently owns and operates its own servers in a co-location not far from our headquarters. This will be the first thing to go as we switch to Amazon’s EC2 and S3 in conjunction with RightScale. By switching off of our own hardware we will absolve ourselves of this oft troublesome and physically limiting layer. By using RightScale’s server templates and management scripts we can control the precise number of servers in operation. Coping with increased or decreased load will be handled autonomously throught the RightScale interface, no more DoS by SlashDot and more more wasted cycles during off peak hours. Our server deployment will contain a few different types, each one specially tuned and selected for its specific purpose. Without getting into too much detail here, our deployment will consist of the following:

  • HA Proxy for load balancing

  • Apache with PHP and XCache

  • Memcached

  • MySQL master/slave configuration

  • File server with automated revisioning, concatenation and minimization of css, js, etc

  • Tomcat with SOLR search engine

Once setup, most of the overhead associated with operating our own IT infrastructure will be removed from the equation.

Not only will our IT situation improve but our coding environment will change dramatically as we move away from Drupal’s more primitive procedural style coding practice and towards Symfony’s OOP style. Symfony is a PHP based MVC (Model, View Controller) framework. It is loosely based on RoR’s (Ruby on Rails) best practices for codability and maintainability. We will be using it with the Doctrine ORM (Object Relational Mapping) and Smarty templating engine. These architectural and IT changes will work to promote a cleaner, more efficient and maintainable coding practice. In the end all these disruptive changes will be justified, allowing us to focus on what we do best, provide users with hyper-local search results.

2 Responses to “Part 1: A Technology Overview”

  1. web proxy Says:

    How do I add this to my RSS reader? Sorry I’m a newbie :(

  2. Resellers Says:

    That’s an interesting article. I just wondered if you could tell me where to find more info on this topic ?


Leave a Reply