Stack Exchange’s Colocation Move: Lessons Learned
blog.serverfault.com
blog.serverfault.com
> It might make us weirdoes, but when cabling looks this neat it is a sexy and sleek piece of art.
I always tell people that server cabling is as much art is it science. When I was early in my career, I had some great mentors in this respect, and now when I see a well cabled rack, it really speaks to me.
Here is the reddit server rack just before we tore it down: http://imgur.com/DlaX4
- 2 Ethernet for Redis/Web/Other traffic - 2 Ethernet for DB traffic - 1 Ethernet for our KVM - 1 Ethernet for our drac - 2 Power cables for A/B Power
Getting all the neatly into 1U cable arms was ... fun :-P
However, when physically at a facility, DRACs are not very handy. They also don't allow you to easily switch back forth over multiple servers.
The two also in part act as a back up for each other.
http://news.ycombinator.com/item?id=4472312
One of these days... my home theatre...
I too was about to post /r/cableporn.
As someone who is responsible for data enter design and deployment - if anyone on my team was not acutely OCD over how the cabling looked, well they would not be a member of the team very long!
If you cant do the simple things, how can you do the complex.
blades that self-interconnect wirelessly at short distances
Why are we still cabling (it's def. cheap, but man-hour time to cable is expensive)?With heartbeating etc. you want the minimal number of moving parts required (minimal chance of failuer).
The heartbeat is not high traffic and can be picked up by all servers in a cluster without worring about network faults.
Seems like a win-win, but then I am not a data-center expert.
I look forward to a time when a colo facility says something like "We can lease you 50 OpenCompute 2.0 slots for $3,000 a month" and know that I can just populate the hardware, plug my switches into the structured wiring solution and be done.
Not sure if Colos will last that long though :-)
On lesson 6, when the hosting provider does own the building, chances are there will be less bandwidth options available within the building unless the provider specifically offers bandwidth neutral services. May not be a concern if you're happy just using the provider's own bandwidth mix, but if you're pushing a significant amount of traffic, or need higher quality transit, you are much better off shopping around for different bandwidth options.
On 6: That is a very good point. We ended up going to the Google building which has a lot of transit options. Transit if definitely a factor
While I get a kick out of a well wired rack, I think its a waste of time to do work you shouldn't be doing in the first place. And how much time did it take to do all the experimentation with different rack combinations? Purchasing the components, installing them, and then sending back when they don't fit. Those things don't matter and don't move your company forward, unless you're in the rack management business (like Rackspace or AWS).
Basically you have pain regardless of what you do, one just abstracts a very specific piece of the equation away from you. Frankly I see it as they have the talent in-house to manage their own equipment, and thus they can realize a tremendous cost savings for their monthly bills by not running everything on top of AWS... and no matter which way you shake it, five racks of equipment on a cloud service is going to be more expensive.
http://blog.serverfault.com/2011/03/23/performance-tuning-in... is my go to "we couldn't do things like this in the cloud" example.
Not to say the cloud is never the right choice, it's just never made sense for us.
That said, buying servers, especially a gen or two older and refurb, can be a major cost win, so it wouldn't surprise me. Running the actual racks, meh, I'd rather have the colo people handle that unless there's so many racks that it's simply not feasible. For a couple dozen servers, I can't see the point in running it all yourself; it's pretty straightforward plugging stuff in, ain't it?
I think S.O. would be a great service to move off of real hardware. They don't seem to be doing things where dedicated hardware would give you an advantage (big data, video transcoding, 3D graphics, etc.) so why go through the trouble of managing it yourself. Plus, if the system were designed correctly, you get fail-over for "free".
Plus I find, the whole myth about able to scale faster.. somewhat misleading. I use EngineYard, and you need to ALLOCATE a certain amt of space. Sure you can increase it in the future, but you'd need to shut down the instance, and create a new one with the extra space... not exactly fast nor convenient. And it's not like you can't add an extra hard drive if you hosted your own servers...
Your example of moving your instance to a bigger one is a classic example of doing it wrong (so to speak). In the cloud you don't scale up, you scale out; many machines doing the work. And bringing those machines on-line takes minutes, that is certainly faster than shutting down and rebuilding. I've played with EngineYard & Heroku and while I really like their services, they tend to re-enforce the "old world" way of doing something. Break out and play with "raw" AWS and I think you'll find a lot to like.
e.g. SoftLayer dedicated servers, or a quality local/smaller/industry-specific provider. IIRC hackernews runs on a SoftLayer dedicated server.
At just one rack, if you want to own hardware you would usually just rent a single cabinet (Can be pretty cheap depending on location).
The number of servers in a rack is variable depending on the power. We got 208v / 30A , so we can pretty much fill up a rack with redundant power.
In our main facility, we currently have 4 racks in use which are not full yet and a 5th already provisioned for growth.
Addendum: I should say though that be aware the C8000 servers are hungry beasts for power. I believe they are nearly 9A at full draw.
That doesn't just apply to server room design. It applies to just about ANY design. Including software.