Table of Contents
Almost all surveys, including the open source survey conducted by Ashnik in August 2020, show that Multi-cloud strategy is on top of every enterprise customer’s mind. They have either started putting in place its approach or are planning to execute it by mid-2021. There is undoubtedly an enormous momentum to implement a hybrid or multi-cloud infrastructure. There are multiple considerations for this approach, and one of those is to ‘avoid vendor lock-in’.
In this article, I plan to share some thoughts on this topic and assess if you can achieve the vendor independence in a multi-cloud world. If yes, how can you achieve it?
Let’s look at the context
Technology-wise, public cloud as a platform – in various ways – SaaS, PaaS, IaaS etc., has gone deep roots in the industry. But vendor-wise, the choice is limited, and that is a matter of concern for the customers.
Ease of deployment, the convenience of billing, high availability of the platform, and an open-source environment are the primary reasons why cloud platform took leaps.
Most customers gained confidence in the cloud platform because open source software powers it. However, customers soon faced a new set of challenges:
- The absence of one true open-source software – instead, they were getting the vendor tweaked versions—for example, AWS’s RDS for PostgreSQL. Thus, customers could not maintain uniformity across its usages of community software and cloud vendor’s variant. And we all know the challenges created by such a scenario.
- Initially, customers liked the ease of deploying many functional parts as-a-service—for example, load balancer as-a-service. But soon they realized a lock-in is created if you want to move to another cloud vendor.
- Raw storage at a cheaper rate was another point of attraction due to its convenience. But it also turned out to be another way of getting locked with a cloud vendor platform.
The Vendor Lock-in issue
In 2021, cloud platforms from at least three large tech companies are giving customers certain choices. Now, customers are putting in place a multi-cloud approach to overcome the vendor dependence to some degree. Also, it gives them a leverage in commercial negotiations. However, customers also realize that merely having multiple vendors does not take them out of the vendor lock-in situation.
The Containerization of applications and using Kubernetes orchestration aids as a critical and popular choice in creating a vendor-agnostic deployment platform. However, cloud vendors soon developed their own variant of Kubernetes-as-a-service such as EKS, AKS, GKE. Use of these cloud vendor services creates another lock-in. You cannot get out of one vendor’s Kubernetes services without having to do a lot of rework, and hence you have to remain on the same cloud vendor platform to use their Kubernetes services.
But having realized that customers are firm on implementing a multi-cloud-vendor approach, these cloud vendors are appealing to the customers with a multi-cloud-deployment of their own version of Kubernetes services as ‘EKS Anywhere’ or ‘Anthos’. Thus, cloud vendors insist, ‘even if you use other cloud platforms, use my version of Kubernetes to run your containers’. One way or the other cloud vendors want you to be locked-in. They are indeed not in the business of offering vendor-agnostic software nor services.
As a customer, when you consider the above examples, you would realize that your dream of vendor independence is far from possible through a multi-cloud strategy. But there is a way out for you.
What can you do to create true vendor independence?
For true vendor independence, you need to plan and choose your software correctly. I am sharing some of the high-level approaches that you need to consider:
- When designing the architecture using only the community open-source software and not a variant provided by the cloud vendor, use cloud platform primarily as infrastructure-as-a-service only
- Avoid using software-as-a-service from cloud vendors or the technology vendor. Instead, implement that software on the cloud as IaaS, for example, use PostgreSQL on cloud platform instead of Postgres as a service from a cloud vendor
- Containerization and using Kubernetes platform is an excellent strategy for a multi-cloud approach. However, make sure to use a dedicated open-source Kubernetes platform like Mirantis (erstwhile Docker Enterprise Engine). It would help you dodge the above mentioned trap.
Implementing a truly cloud-vendor-independent architecture may not be easy. It requires careful planning, and the devil is in the details. But, if you do it well, it gives you consistent and dependable control in your hands. Our team has been helping several enterprise customers in this journey of theirs. We would be happy to share our experiences and help you with yours. Talk to us.