Behind RWT 3.0

Our previous website was a fully custom Cold Fusion application that incorporated both a primitive Content Management System (CMS) and a very active threaded forum. As with most Cold Fusion applications, the back-end was Microsoft SQL Server.

One of the biggest challenges with our old website was adapting to the rapid pace of change on the internet and new phenomena such as Twitter or Facebook. Each new feature required significant time and development work. Customized development is very powerful, but does not scale well without full time staff. When RWT started in 1996, the web was an entirely custom affair. However, over time a number of standardized platforms have emerged. These web platforms have large communities which enable a site to leverage the aggregate resources of the community. Cold Fusion is still an excellent language for web development, but has a limited ecosystem and relatively few developers compared to languages such as PHP, Python or Ruby.

One of our first decisions was to eliminate custom development where possible. We recognized that our excellent articles and our forums are the distinguishing features of RWT. A custom website does nothing to enhance our articles, and in fact is a significant burden. In contrast, the custom forums are integral to the success of the community and are necessary to retain. Our goal was to leverage a standard platform to the greatest extent possible, while continuing to maintain the unique nature of our forums.

WordPress

The new website is built on WordPress, which is one of the most popular web frameworks. WordPress is tied to MySQL and PHP and available on both Windows and Linux. While our previous hosting used Windows, we had no strong OS preferences. MySQL on Linux is a natural fit, but it certainly functions on Windows as well. However, WordPress on the LAMP (Linux, Apache, MySQL, and PHP) stack is a far more common approach. As an extension of our goal to use a standard solution, it made sense to pick the most popular platform for WordPress to reduce any potential compatibility issues.

As a CMS, WordPress has dozens of features which make publishing articles faster and easier. Crucially, WordPress has an incredibly vibrant ecosystem with off-the-shelf plug-ins for nearly every purpose. Our site uses the Genesis Framework and nearly a dozen plug-ins for tracking popular articles, Twitter and Facebook integration, SEO optimization, and our membership system. Many of these plug-ins provided functionality that we could never even begin to contemplate on our old site. Moving our existing articles to WordPress was fairly easy and took roughly a week or two, with help from Dean and Chris Wedgwood.

Forum Integration

The RWT forums were far more challenging. The forums are threaded, which is not an a common choice, but neither is it particularly rare. Uniquely though, our forums are designed for anonymous posting. Our audience contains an unusually high percentage of people who work in the industry and many prefer to keep their contributions anonymous.

Unfortunately comment spammers have automated tools to target popular forum software, which makes anonymous posting nearly impossible. There were several rather expensive forum packages that might have met our needs, but the cost was generally prohibitive and anonymous posting support was questionable and usually discouraged by vendors.

Based on this assessment, we decided that anonymous posting was necessary for the community and worth the effort of developing custom forums that could integrate with the site on WordPress. Our excellent developers Jason Hamilton and Peter Arreman wrote the forums as a custom plug-in for WordPress. We decided that for the first version, we should focus on simply preserving existing functionality and only add a few features. Generally, the rewriting was simple, except for some of the techniques and custom variables our earlier forums used to maintain the tree-like structure of forum threads.

Moving to the Cloud

One of the benefits of using WordPress is much more reliable hosting infrastructure and greater choice in vendors. Adobe’s Cold Fusion application server is fairly expensive, although as of recently, there are several excellent open source alternatives such as Railo or OpenBD. Still, dedicated Windows hosting with SQL Server comes at a premium that was difficult to justify. Unfortunately, shared hosting with Cold Fusion is not common and can be rather unpleasant. Cold Fusion was not designed for multiple tenants and has no isolation. Consequently, it must be restarted periodically and some of the bugs are very difficult to diagnose. Simply moving away from shared Cold Fusion guaranteed better uptime and reliability.

In contrast to Cold Fusion, the LAMP stack is the most common web platform and available with pretty much any hosting company in any flavor. Shared, virtualized, dedicated, co-located or cloud servers are all viable options. Shared hosting is largely a service where the goal is to make customers so miserable that they upgrade to more expensive solutions. After over 10 years of shoddy experience, we were uninterested in any shared hosting. Dedicated or co-located servers were generally overkill for our purposes, but we wanted flexibility to deal with bursts of traffic from larger sites like Slashdot, Reddit or Digg. Moreover, we were not particularly interested in maintaining our own hardware.

Chris Wedgwood strongly recommend Nephoscale, a cloud hosting company that is local to the Bay Area. While most cloud hosting is extraordinarily expensive compared to conventional hosting, Nephoscale’s offerings were very reasonable. Perhaps more importantly, Nephoscale is a very responsive company. One of our first calls to the company was over the weekend, and we ended up talking with Telemachus Luu, the CTO. That was a particularly pleasant surprise that made our decision a lot easier.

So far we have been very happy with the performance, support and convenience at Nephoscale. The performance is significantly better than our previous hosting, as we have a dedicated pool of memory and CPU cycles and our entire software stack resides on a single server (previously our application and database server were physically separate). While we have not taken advantage of any of the performance scaling features of Nephoscale’s cloud, it is nice knowing that the capacity is there in case of an influx of traffic.

Our experience with the support has also been superb. We ran into a peculiar bug with storage performance while testing the new site. One of Nephoscale’s engineers quickly diagnosed an issue that was causing our VM to load an outdated OS image that contained a known bug in the I/O drivers. He fixed the VM and in a short time, we were back to full performance using the most recent OS image. Aside from this one issue, Nephoscale’s infrastructure has been flawless; a stark contrast to our previous hosts where problems cropped up at least once a month.

Acknowledgments

Last and most importantly, we’d like to acknowledge and thank a number of people for volunteering and helping migrate RWT to a new site. Chris Wedgwood’s hosting recommendation was excellent and did a splendid job of helping to migrate over our existing articles. Dean Kent also helped with the articles and getting many of the administrative details straight (e.g. moving DNS providers, billing, etc.). Jason Hamilton wrote our new forums and forum administration tools from scratch and tirelessly worked to perfect his code. Peter Arreman has been the technical quarterback for this whole process and helped us administer the server, integrate the forums into the site and tweak everything with his PHP skills. Without everyone’s contributions, the new site would not have been possible. Thanks again!


Discuss (4 comments)