Where I might build a datacenter is a pretty vague question depending on a ton of factors. A much easier question to answer is "where would I not want to build a datacenter?"
1. I would not build a datacenter anywhere that I couldn't get to and physically set foot in the datacenter within a few hours. I don't care how cheap it is, how do I know if I'm getting a good value if I can't drop in unexpectedly and see if it's being run as planned?
2. I would not build a datacenter in a zone known to experience frequent or severe natural disasters. Again, what's the point of saving a few bucks up front if a disaster (tornado, earthquake, hurricane, etc.) can wipe me out? Furthermore, how stupid am I if I put my datacenter in a place known to experience those things? The Earth is quite large, I can just put it somewhere else.
3. I would not build a datacenter anywhere that had a single point of failure on a necessary utility. I am not comfortable having my datacenter services all fail because a single provider failed. Having a more expensive location that allows 2+ providers adds to my overhead, but having a backup provider creates peace of mind that any cost savings due to only one provider will not.
4. Building security is important, but not as important as sourcing trustworthy talent to be inside the datacenter. I would not put a datacenter anywhere that I could not get local, independent sources of talent that all are from a similar cultural background to myself. This is not xenophobia, it's just being able to relate on a direct level with the people in charge of my business' most critical assets. For example, if I insult an admin one day just based on a cultural misunderstanding, then I may inadvertently cause my own security issues.
All other conditions can be summarized like this: take what you think is your ideal location and then take a random warehouse building inside a 50 mile radius of where you are right now. If you can't answer why you should take the ideal location over the random building with all of the reasons above, then you should seriously consider that random building as a candidate. After all, if it doesn't fail at the above, then exactly why would you not use that as a datacenter?
2 Comments | Leave a Comment..
I have great concerns about whether or not mission-critical applications are having their SLA's met in datacenters, whether they are hosted in-house, third-party supported, or any other form of datacenter-based hosting. First, consider the alternative: the server sits in a room next to your expert developers. Sure, it's probably a SOX violation, but I can tell you this much: that server will not go down often, and if it does, you can be sure that it will be restored as fast as humanly possible. That's the advantage to having an expert babysit your system. If you have two experts in different geographic locations and each babysits a server in case one goes down, then you have about the best support possible. However, for large systems, this may not be convenient, etc.
But how do you know that a datacenter-hosted app has this type of support? First, you need to know for sure what the SLA spells out in terms of support and monitoring. Look for this in your SLA:
"If your app encounters event W, person X will do Y about that specific event within Z amount of time"
I guarantee that anything less specific than that, or anything as specific that's not in writing in the SLA to that effect, will not be honored. Vague responses equal no responses, because why would the datacenter host open themselves up to liabilities by initiating a response that wasn't specified in writing? Specific, measurable responses with noted responsible parties are required to be honored for the SLA or the datacenter host can be held accountable for any failure to respond as specified.
So assume you have an acceptable SLA in place, and you know what they're supposed to do. How can you be sure they'll actually do the things they say they'll do? Well, you obviously need to know before you can count on your apps for something mission-critical, so while the mission-critical app is still running somewhere else (i.e. being babysat by an expert), you set out to prove that the support can respond -- by staging various types of failures. You could tell the host about the staged failure attempts, but then they'll know and will definitely staff and respond appropriately. I would stage failures and not tell the host that the failures are a test. After all, from the host's perspective, any failure is a failure. Be sure to measure closely the response and check if the SLA was honored as expected. Any failure to honor it, for any reason, should be a strong indication that the host is not prepared to honor the SLA, thus potentially costing you your mission-critical app.
Do not allow a complicated roll-over or automated monitoring to imply that the datacenter can respond to any event with seamless mission-critical app coverage. An inexperienced datacenter admin simply hitting the wrong button can send any app to Davy Jones' locker in a big hurry. If you truly want mission-critical backup performance, ask yourself what would happen if the datacenter was completely unresponsive? For example, what if it were hit by a hurricane and completely wiped out? How soon could you be back up and running, and at what capacity? If you can't answer that, you better find an answer before some unpredictable event knocks out your one server running everything.
3 Comments | Leave a Comment..