As more businesses begin using Cloud computing, the concern over “lock-in” is increasing. For example, if a business chooses to use Amazon Web Services (AWS), the chance is that it will stay with Amazon Cloud for a while, since moving to another Cloud is expensive. If your company is using Office 365, the chance is that you are locked in with the Windows Azure. Your company’s emails and documents are stored in the Microsoft Cloud. This is how Microsoft obtains additional enterprise market with its integrated solution.
A friend told me that if he moved his product from AWS to Azure, it would cost him over $200,000. I replied, “Maybe you should have looked into RightScale, but then you would end up with a dependency on RightScale”. There are tools like RightScale addressing the lock-in issues, and ultimately you will be locked in with a specific technology or vendor with these tools.
Last week, I attended a Cloud Talk Meetup session. Aja Hammerly, a developer advocate from Google Cloud platform was elaborating on the power of Kubernetes. AppOrbit, a Silicon Valley based start-up, demonstrated their platform that used Kubernetes. Kubernetes is an open source container orchestration tool. It builds an abstract layer that can be used on top of different Cloud infrastructures. This presents a promising approach to solving the lock-in concerns.
The Kubernetes project was started by Google in 2014 and is now maturing. It is a platform for automating deployment, scaling, and operations of application containers across clusters of hosts. According to Google, Kubernetes provides the following benefits:
- Microservices: Having a cluster manager enables the management and scalability of smaller parts of an application.
- Self healing: Auto-placement, auto start, auto-replication and auto-scaling can be performed in the face of failures.
- Low friction horizontal scaling: Adding more capacity can be achieved easily.
- High utilization and efficiency rates: Google was able to dramatically increase resource utilization and efficiency after moving to containers. Developers are able to focus more on the service they are building instead of on the underlying infrastructure.
- Portable: It can be used on top of public, private, hybrid, and multi-cloud.
It seems to me that Kubernetes has the true potential to make Cloud infrastructure interoperable. The key is to design an agnostic data base so that portability can be achieved for various Cloud infrastructures. I invite your comments about this type of database design. What are your experiences with Kubernetes?
[This was originally posted on Linkedin on 6-5-2016]