- Reliability: Despite some of the much touted outages around Google and Amazon, a cloud infrastructure may actually prove to be more reliable in the long run than a typical enterprise infrastructure. The leading cloud providers are already building massive redundancy in their systems and are learning from their past mistakes to provide a greater level of visibility around outages. After it becomes a core business, they will be in a better position to learn from mistakes and quickly adapt to providing much better reliability than a given enterprise app.
However, there are also many challenges in the current model:
- Data security and privacy: Given the multi-tenant nature of a cloud infrastructure, vendors typically don’t guarantee that the data of Company X will be physically isolated from that of Company Y. In addition, given the massive scalability requirements, there may be no guarantee on the physical location of data. This can be uncomfortable for enterprises that need to comply with national or international regulations around business transactions and related data. One can argue that over time regulations may catch up to this massively distributed and multi-tenant environment or service providers may come up with certain premium services which provide all the necessary guarantees.
- Data access and storage models: Whether it’s Amazon’s S3 and SimpleDB service or Microsoft Azure’s Data Service the storage models offered today need to account for many diverse usage scenarios. Hence they have deviated towards a simple blob based storage model or a simple hierarchical model. This offers a lot of flexibility but it also puts a lot of burden on application logic to decipher the relationships between different data elements. Many transactional applications that rely on relational database structures will not be suited for such a data storage model.
- Standards and lock-in: Most vendors have defined a standard based mechanism (HTTP, REST, SOAP, etc.) for access to their services. However, standards around how to develop services within a cloud are just evolving and the ability to write once and run anywhere is not there today. The way you would develop an application using Google’s AppEngine will be very different from how you develop something on Microsoft Azure or on Force.com.
It is not easy for an application developed using one vendor’s programming model to be migrated to a different vendor and hence a certain lock-in is built into the model. Consortiums like Open Cloud are just emerging that will encourage open source based software
development in the cloud and also think of interoperating standards.
- Handling failures: Given the massively distributed nature of cloud applications, it may not be easy to understand what kinds of failures are happening and where. Applications have to be built that handle failures as a normal execution path rather than as an exception.
- Economic model: Pay by use model has certain advantages but if the usage is going to be consistently very high, the economics of the model may start breaking down. Vendors need to start thinking about allowing ceilings on the payments if high transaction applications are to start using a cloud paradigm.
As you can see, the whole paradigm is relatively new and the definitions, working model, and services provided by different vendors are still evolving. Before aligning with any given vendor a thorough examination of their service offerings, quality of service, security model and payment models needs to be examined.
Overall, the model may be ready for certain kinds of applications in the enterprise but certainly not for mission critical and highly transactional applications. Applications that may expect certain surges of usage or that need a variable storage capacity would be well suited for cloud computing. It won’t be easy to migrate existing applications to the cloud (without some major rewrites) but new applications can certainly take advantage of cloud-based services to fulfill certain needs. Even for new applications, design patterns, security models, storage models, residence of business/compute logic, handling of failures need to be structured with a cloud infrastructure in mind. As the CIO you should examine the roadmap for new applications and see how they can leverage this evolving paradigm.
Kamran Ozair is executive vice president and CTO of MindTree Ltd.
Ozair oversees technical competence creation, technology direction, building key alliances and the financial planning for MindTree’s Technology Practices for IT Services. Prior to co-founding MindTree, Ozair was a director at