3 ms·
It's not cheap, and you don't have to be Google for it to matter. Most of the time, the costs are just non-obvious to engineering. Here are some rough numbers.
by ankp 17y ago
It's not cheap, and you don't have to be Google for it to matter. Most of the time, the costs are just non-obvious to engineering.
Here are some rough numbers.
Power for a single 48U rack usually runs $200-$300/month for two 20amp circuits (possibly +2 for redundancy). A modern 1U server draws anywhere from (roughly) 1.66 to 2.5 amps, and you can only use 80% of a circuit's maximum supported load due to safety regulations, resulting in a total supported count of between 12 to 19 mid-range servers per rack. Higher-end servers have a significantly increased power draw, but potentially higher efficiency, and there can be a significant advantage to leveraging multi-core systems.
In addition to rackspace and power, each server must obviously be connected to the network. The switches draw enough power to potentially decrease the number of supported servers.
Each rack costs roughly $500/month (plus power), and often requires advanced provisioning to ensure that rackspace is available, and if possible, located in the same area. It's not unusual to buy an entire block of space well ahead of actual use to ensure that the business' growth can be accommodated.
Additionally, one requires an operations staff to maintain the servers. Hard drives fail, backups must be done, hardware must be ordered, tested, and finally, deployed. Simple deployment of a single server, including the networking configuration, travel time, and physical work can easily consume 4-8 hours of operations staff time.
When you add together the operational and capital expenditures, I'm not really convinced that the idea is so simple as "servers are cheap, programmers are expensive". Servers, electricity, physical space, and the labor necessary to install and maintain them are not particularly cheap.
I'd propose a new mantra: programmers are expensive, and so are servers and IT, and so let's try to not be monomaniacally flippant about it. Software can be easy to write AND perform reasonably well, and to say otherwise simply appears to be a false dichotomy fronted by those who benefit from it most.
- j_baker 17y agoYou're still talking about a minimum of 12-19 servers though. I'd imagine that the average website doesn't use even that. I think that SO in particular is at 3 servers. Maybe if SO explodes, this will become an issue, but an optimization would likely have to make a difference of a few racks before it it's even worth considering making an optimization based soley on power concerns.
- ankp 17y agoWhether an optimization is worth pursuing depends on the business requirements, how much the it costs to implement, and whether there are any additional gains beyond avoiding power, space, and personnel costs. Simply picking an efficient (both for the developer, and in terms of implementation) language/platform can be enough to start with, and will help you avoid being boxed in later.
- lightcrest 17y agoYou forgot to mention bandwidth as part of the fundamental datacenter cost structure. Some datacenter operators are charging up to $200/month to drop dark fiber into your cage/rack/cabinet. It is then up to you to negotiate a primary and secondary connectivity provider. At non-bulk rates (meaning around 10-100Mbps) this can be up to $50/megabit. Bulk rates look better - but only because if you're pushing that much traffic, you must be rich. This is part of the reason cloud computing should be taken with a grain of salt. There can be fantastic economies of scale when applied correctly (say, on a properly built CDN solution) - but be wary whenever "cheap" and "computing" are mentioned in the same sentence. Someone has to be paying for all of that power, space, and bandwidth.