A Service Level Agreement (SLA) is an excellent expectations-managing mechanism, but it’s important to manage your own expectations of what an SLA can realistically accomplish. Just those three words “Service” “Level” and “Agreement” is often an attention turn-off I know: SLAs are to infrastructure bods what documentation is to developers. Yet, when considering taking up cloud and utility services many consider that the SLAs offered aren’t reliable, if they exist at all. So the SLA becomes the blocker – ‘If I move services out of my data centre, how will I guarantee availability and performance’.
Amazon’s Service Level Agreement (SLA) is so narrowly-drawn that it could easily be argued that the recent Elastic Block Store (EBS) outage wasn’t a failure of Amazon Web Services at all. Anyone using EBS in a production environment was, arguably, reaping the fruits of their own folly. Of course they don’t tell you when you read the hype that architecting for resilience in the Cloud is actually very complicated, particularly if you want to take the sensible step of not relying on a single provider like Amazon, no-matter how dominant their hype may be.