A recent analyst report suggests public clouds are prone to failure because they are inherently complex. However, just because there are multiple interacting objects in a particular environment, this doesn’t necessarily imply complexity.
Cloud computing is all the rage for business users and technology buyers. And why not, especially because it provides a fast and flexible option for delivering information technology services. In addition,cloud computing also drives value through higher utilization of IT assets, elasticity for unplanned demand, and scalability to meet business needs today and tomorrow.
However, there are risks in the cloud, especially in the public cloud where business and news media regale with case studies of data loss, security issues, failed backups and more. Perhaps one reason that public clouds are prone to failure—and perhaps always will be—is that some analysts consider these environments to be complex and tightly coupled. And if indeed this is the case, then IT buyers must consider that failure isn’t only possible, it’s inevitable.
Yet, first we must ask, are public clouds really complex environments?
To understand if a particular system is complex, we must understand if it has characteristics such as connected objects (nodes and links with interdependencies), multiple messages and transactions, hierarchies, and behavioral rules (instructions).
Public cloud services available from companies such as Microsoft, Google, Amazon Web Services (AWS) etc., often consist of various components such as applications (front end and backend such as billing), controllers and message passing mechanisms, hardware configurations (disk, CPU, memory), databases (relational and NoSQL), Hadoop clusters and more. In addition there are various management options (dashboards, performance monitoring, identity and access) and these environments typically operate with multiple users, multiple tenants (compute environments shared with more than one application and/or company), and sometimes span multiple geographies. And from a complexity standpoint we haven’t even yet discussed processes in building cloud environments much less operating them.
In summary, in a cloud environment there’s lots of moving pieces and parts interacting with each other (not necessarily in a linear fashion) within any given timeframe.
Multiple interacting agents can help define whether a particular environment is complex or not, however another key determinant is also very important—whether processes are tightly or loosely coupled. Richard Bookstaber, author of Demon of Our Own Design, writes that tightly coupled systems have components critically interdependent with little to no margin for error. “When things go wrong, (an error) propagates linked from start to finish with no emergency stop button to hit,” Bookstaber says. So a tightly coupled system is one where linkages (dependencies) are so “tight” that errors or failures cascade and eventually cause the entire system to fail.
This discussion is important from a risk management perspective for cloud computing. If we believe that data is one of the most valuable assets of a corporation and if we believe public clouds are complex environments with tightly coupled components that have little to no slack (buffers) to stop failures, then there should be a set of practices and processes set in place to manage the potential risk of data breach, theft, loss or corruption.
So what say you, should public clouds be considered “complex” environments? Are they “high risk” systems prone to failure?