When you’re thinking about building a new community, or migrating your existing community to a new host, there is an almost infinite pool of generic hosting choices available to you. Even as a technology professional these choices can be very difficult to compare, and depending on the size of your community a bad decision here can easily lead to massive problems down the road. At Vanilla Forums, we kept seeing customers with great ideas suffering from hosting that didn’t meet their needs, and the result was a dead or struggling community. That’s why we built the Vanilla Hosted solution.
Built for Vanilla
When we looked at designing our own hosting environment for our customers, we realized that we could take advantage of our deep understanding of Vanilla’s inner workings and use that knowledge to build something amazing. Our hosting environment is completely optimized at every level to make it a perfect fit for Vanilla Forums. We don’t have to include or support anything that doesn’t relate directly to hosting your forum.
Each server in a Vanilla Cluster has a single specific role. These include load balancers, web servers, databases, caches, and search indexers. This allows us to fine tune each server very carefully, making use of every drop of performance available. Together, these servers form a functional hosting cluster that is streamlined and efficient at doing one thing: hosting a Vanilla Forum.
Built to Scale
From the outset, our goal has been to build a system that allows and encourages your community to grow. We’ve worked very hard to consider scalability in every aspect of our infrastructure, from the code all the way down to the systems that run it. We’ve chosen Rackspace Cloud Servers as our infrastructure platform, a decision that enables us to conjure and dismiss server instances as needed to maintain consistently high levels of performance and availability.
One of the benefits of hosting with Rackspace is that we get access to their extremely helpful and knowledgeable team of “Rackers” who are eager to provide “Fanatical Support” wherever possible. We’ve worked very closely with a group of awesome Rackers who have given us tons of advice and assistance, specifically around scalability in the cloud. Last week we were invited to visit Rackspace at their headquarters in San Antonio, TX. We met with key product managers and most of our support team, including Rob Collazo and Jeremy Wasner who have both been there when we needed help and advice.
Every Vanilla Cluster starts with a pair of purpose-built load balancers. These systems work together to receive and distribute incoming traffic to the webservers that do the real work. Only one load balancer is active at a time, while the other one waits in the background in a “hot failover” configuration. It checks the status of the primary load balancer every 2 seconds and can take over full control of the cluster within seconds of detecting a failure. This dramatically reduces the risk that a failure in a load balancer will take down the entire cluster.
Once traffic passes through the load balancer, it reaches one of many actual cloud web servers. Which server handles the request is decided by the active load balancer, based on the number of connections being handled by each web server in the pool. These servers are responsible for running Vanilla’s code, connecting to various backend services like the cache, database, and search systems, and returning the resulting webpage back to the client. If traffic begins to rise we can quickly conjure up new web servers, using the Rackspace Cloud Servers API, which will begin to accept new connections within 3 minutes. This type of rapid response to traffic changes allows us to stay performant even during dramatic spikes in inbound requests.
Our web servers run nginx and a slimmed down version of PHP. They also run an opcode caching subsystem that removes the compile step from PHP execution, reducing response times and CPU load significantly.
Much of the information needed by the web servers during a given request can be accessed quickly via cache servers. These servers sit on top of the database layer and greatly improve response time because they bypass the database for a lot of requests. This reduces the load on the database layer and allow it to be reserved for more complex queries that require multiple lookup conditions. Cache servers are cheap and efficient, and very easy to scale, making them great targets for additional workload. When the current set of cache servers is nearing capacity, we can rapidly provision additional ones to preserve performance.
We’ve built a really clever Content Delivery Network on top of our application. It automatically finds and stores static content from Vanilla and serves it back to end users from highly optimized static delivery servers. These are configured with very large cache timeouts, allowing end users’ browsers to cache these static resources for long periods. This dramatically reduces latency during requests and allows us to transfer much less data to the user’s browser, making us more friendly in bandwidth-limited environments.
Built for Security
All web traffic enters our network through a firewall in front of our load balancers. This allows us to set broad limits on what sort of traffic we allow into the Vanilla Network. But we don’t stop there. Every server within the network has its own software firewall that further limits connectivity to traffic appropriate for its role in the cluster.
Wherever possible, external (or “public”) interfaces are disabled entirely. Not only is it faster and cheaper to use the Rackspace Service Net, but it reduces our exposure to malicious users.
While our hosted product shares the same core code as our open source product, its features, scalability and performance have been able to evolve dramatically thanks to the uniquely designed infrastructure that powers our service. Vanilla has come a long way since its inception and is becoming widely recognized as the most modern community forum platform on the market today.
If you’re looking for a scalable community platform that gets out of your way, Hosted Vanilla is for you.