Server Deployment & Scaling Plan

Magnify.net is in the process of scaling up its server infrastructure to handle increases in traffic.

Scalable Architecture

Our application architecture was selected to reflect the requirements of cluster operation so as to facilitate infrastructure growth. The system is built in several tiers, each of which will eventually be distributed over a load-balanced and fault-tolerant cluster of servers:

Current Configuration

In August we migrated from our initial development environment to a dedicated server with dual Opteron CPUs running Gentoo Linux.

Initial load-testing suggests that this server can handle somewhere approaching 1,000 page views per minute without a significant slowdown.

Current Expansion

In October, we are scaling up to a four server configuration to support anticipated traffic growth. This mini-cluster will include one web and file server, two application and caching servers, and one database server.

In November we will be provisioning additional servers as required by traffic and performance.

Scaling Plan

As we grow over the coming months, we'll cluster the services onto machines as follows:

  • One set of machines in a load balanced pool of web and file servers.
  • One set of machines in a load balanced pool of application servers.
  • A distributed set of cache servers, running on same machines as web and app servers.
  • One or more failover pairs of database servers, with growth through vertical partitioning.
  • One set of machines for user content uploads, video encoding, and thumbnail generation.
  • One or a pair of machines for development, staging, backups, and testing.