09 January 2012

Cloud computing's concealed complexity

Cloud gears cropped

James Urquhart claims Cloud is complex—deal with it, adding that "If you are looking to cloud computing to simplify your IT environment, I’m afraid I have bad news for you" and citing his earlier CNET post drawing analogies to a recent flash crash.

Cloud computing systems are complex, in the same way that nuclear power stations are complex — they also have catastrophic failure modes, but given cloud providers rely heavily on their reputations they go to great lengths to ensure continuity of service (I was previously the technical program manager for Google's global tape backup program so I appreciate this first hand). The best analogies to flash crashes are autoscaling systems making too many (or too few) resources available and spot price spikes, but these are isolated and there are simple ways to mitigate the risk (DDoS protection, market limits, etc.)

Fortunately this complexity is concealed behind well defined interfaces — indeed the term "cloud" itself comes from network diagrams in which complex interconnecting networks became the responsibility of service providers and were concealed by a cloud outline. Cloud computing is, simply, the delivery of information technology as a service rather than a product, and like other utility services there is a clear demarcation point (the first socket for telephones, the meter for electricity and the user or machine interface for computing).

Everything on the far side of the demarcation point is the responsibility of the provider, and users often don't even know (nor do they need to know) how the services actually work — it could be an army of monkeys at typewriters for all they care. Granted it's often beneficial to have some visibility into how the services are provided (in the same way that we want to know our phone lines are secure and power is clean), but we've developed specifications like CloudAudit to improve transparency.

Making simple topics complex is easy — what's hard is making complex topics simple. We should be working to make cloud computing as approachable as possible, and drawing attention to its complexity does not further that aim. Sure there are communities of practitioners who need to know how it all works (and James is addressing that community via GigaOm), but consumers of cloud services should finally be enabled to apply information technology to business problems, without unnecessary complexity.

If you find yourself using complex terminology or unnecessary acronyms (e.g. anything ending with *aaS) then ask yourself if you're not part of the problem rather than part of the solution.

3 comments:

  1. Intriguing post Sam. Do you believe most PaaS environments satisfactorily simplify the DevOps experience today?


    http://blog.cobia.net/cobiacomm/2012/01/11/how-to-simplify-platform-as-a-service-complexity/

    ReplyDelete
  2. Nice post.

    However much I agree that certain levels of technical complexity can be masked by a good interface (e.g. service catalog), there are just some issues that one still has to deal with. Consider the dynamics of large systems, or the physical limitations of latency or moving lots of bits. And, many sources of complexity are indeed non-technical... Legal. Privacy. IP protection.

    Ultimately though, I do believe that Cloud ultimately simplifies a great number of issues for the majority of users, though others remain. And, as you point out, *someone* *Somewhere* behind the cloud still has to deal with the techy issues too. Hopefully, however, it's not an Army of Monkeys :)

    ReplyDelete
  3. It's all a bit academic really, those who complain about complexity probably thing the idea of a single computer system as simple, regardless of the millions of transistors in the CPU alone.

    ReplyDelete

Note: only a member of this blog may post a comment.