This week outbrain launched the second Data Center in the US west coast.
Staying in one cozy Datacener is always more comfortable but there are lot's of reasons also to open another one as you grow.
I will name a few:
- Disaster recovery - you want to be able to still server your clients even if a 'plane crushed into your datacenter building' (not that such things happen :).
- Global load balancing and users proximity - you want to serve your clients from places that are close to them.
- Data replication - you always have your data replicated to more then one physical location so it is harder to lose it.
I can probably name some more reasons but I want to write now about another interesting reason which is the scalability step function. usually when a web business scales, there are 2 ways to handle it. Scaling UP and Scaling OUT. By Scaling UP you always buy bigger, faster and more expensive machines that can handle your load and size of data. By Scaling OUT you build your application in such way that you can always add more machines to handle coming load. The big problem of Scaling UP it the "Step function" in cost. If your system top capacity is X and it cost Y, when you need to grow your system to 1.1X the next jump in cost is probably to 2 (or 4)Y. When scaling OUT, when the demand grow to 1.1X you only add 0.1Y to the cost and there is no need to put redundant cost.
What does this have to do with multiple Data Centers? Actually... A lot.
If you have the ability to manage more then one datacenter, you have the ability to scale your system OUT in much lower costs.
Let's see what happens in datacenters. you start with a single rack, then you expand to 2 then after the 3rd there is no rack in proximity and you start wiring all around. Before the 5th rack you want all of your racks to be in proximity so you get a "cage" which is a leased area to put all your racks in proximity. (ooops - a step in the cost). then on the 30th rack you need a bigger space and you do a "migration project to space 4 times bigger (another big step).
Apart from the space you allocate for the servers, keeping them on the same LAN turns to be very costly in the bigger numbers. Connecting 100 servers to a LAN demands more then 1 switch and if you want ports redundancy it becomes even harder. then you jump to higher level switches that complicates the administration and when you get really big the next "Step" is core switches that makes Cisco's salesman smile and your CFO cry.
Instead of that, when you have the ability to manage multiple datacenters, when your setup hits it's limit - you just open another datacenter, can be even next door to your current one and you start racking this one with servers as you grow. Your step functions become smaller and most important, linear to your growth.
You can even shrink your business if you like. Lost some clients, did a business change or optimized your system? one datacenter became redundant? leave it. this is something you can't do when committing to one big space an after doing the network investment.
I guess you've got my point.
Lastly - I wan to thank 2 of our service providers that enabled this ability:
- Atlantic Metro Communication - our CoLocation provider in both sites.
- Cotendo - our global DNS provider.
They are both highly recommended.