What expectations about remote web-site availability are reasonable?
Background
My software is fetching status i开发者_如何学JAVAnformation from a few commercial (i.e. we pay them) third-party web-sites, situated an ocean away from the server - generally a simple http fetch of an XML file.
I have, of course, developed the code to handle outages (such as time-outs) and degrade gracefully. I also record the frequency, and alert the administrators only if there is a more than just a once off network glitch (e.g. 4 failures in a row, or 5 failures in a 5 minute period).
What I don't have is any form of Service-Level Agreement from the data suppliers or (unsurprisingly) for the Internet between us.
Despite the alerts being throttled, I am still receiving them many times a day, which I find surprising. I am not finding that there are hour-long outages, but merely periods or around 30-60 minutes where the number of failed http requests becomes higher - until it accounts for 5-8% of all requests. I don't know whether to complain to my data supplier, my internet provider, or to suck it up because that is what the living in the cloud is about.
I need to calibrate my expectations.
The Question
For a typical http connection travelling over a typical Internet connection from one data-center to another on the other side of the world, what sort of availability should I expect?
If you only consider the temporary outages (e.g. fixed by the time you retry) and not major outages (e.g. no connection for 10+ minutes) and you remember are talking about TCP connections, so most random packet loss is hidden, is it reasonable to expect "three nines", rather than merely approaching two?
(I appreciate that the answer will vary between two machines on the same subnet versus a modem versus a 3G connection - I am trying to get typical off-the-shelf but commercial-grade figurers.)
For a typical http connection traveling over a typical Internet connection from one data-center to another on the other side of the world, what sort of availability should I expect?
Your computer is connected to the Internet through an Internet service provider.
The web site you're trying to access is connected to the Internet through a web hosting service or is self hosted.
So, for an HTTP request to get to the web site server, it has to go through:
- Your Internet service provider's network.
- One or more routers that make up the Internet.
- The web hosting service or web company network.
The only one of these services that you have some control over is your Internet service provider. I'm guessing that you don't have a service level agreement with them.
Your availability will probably depend most on the web hosting service network. The less than an hour periods of failed HTTP requests that you're hitting probably indicate the times that the web hosting service network is down for ongoing maintenance.
精彩评论