Gartner Blog Network

Why Adopting Kubernetes for Application Portability Is Not a Good Idea

by Marco Meinardi  |  September 4, 2020  |  3 Comments

I often discuss with clients in infrastructure and operations on whether their organizations should adopt Kubernetes to make their applications portable. If you also have this question, the answer is: no.

Actually, the full story: adopt Kubernetes for the many benefits it provides to application development and architecture and get portability as a side effect. But do not make portability your primary driver for adopting the technology. This thesis is well expanded in the document that Richard Watson, Alan Waite and I have crafted during lockdown this spring: “Assessing Kubernetes for Hybrid and Multicloud Application Portability” (paywall).

Kubernetes or not, application portability always comes at a price that you must be willing to pay – the “portability tax”. Gartner’s advice is to make this decision application by application, based on the likelihood that it will be moved in the future, and how fast that needs to happen. In fact, non-portable applications may still be moved, it will just require more time to execute the transformation.

What is the likelihood that applications change infrastructure provider through their lifespan?

Inquiries show that this likelihood is actually very low. Once deployed in a provider, applications tend to stay there. This is due to data lakes being hard – and expensive – to port and, therefore, end up acting as centers of gravity. Figure 1 below shows the Gartner pyramid of portability, which illustrates basic motivations (at the bottom) and more strategic ones (at the top) for designing portable applications.

For each of your application, ask yourself why portability is important to you. Is it to guarantee survivability? To increase your negotiation leverage with the cloud provider? To mitigate vendor lock-in? The higher you are in the pyramid, the least likely it is that you’ll have those needs.

Kubernetes facilitates portability because it helps standardize our software development life cycle and, most importantly, our operating model. However, it also adds management overhead to our organization, it forces us to engage with commercial vendors and to completely rearchitect our applications. Implementing portability with Kubernetes also requires avoiding any dependency that ties the application to the infrastructure provider, such as the use of cloud provider’s native services. Often, these services provide the capabilities that drove us to the cloud in the first place.

In conclusion, the portability tax is high. Make sure to pay it only for applications that truly need it and that are likely to switch infrastructure provider at some point. For all the others, don’t choose Kubernetes on the basis of a universal portability principle, just because it “sounds right”. On the contrary, adopt Kubernetes for agility, scalability and for modernizing your application architectures.

More on this topic in “Assessing Kubernetes for Hybrid and Multicloud Application Portability” (paywall). Should you want to discuss more, feel free to schedule an inquiry call with myself or Alan Waite by emailing or through your Gartner representative.

Follow me on Twitter (@meinardi) or connect with me on LinkedIn for further updates on my research. Looking forward to talking to you!

Additional Resources

View Free, Relevant Gartner Research

Gartner's research helps you cut through the complexity and deliver the knowledge you need to make the right decisions quickly, and with confidence.

Read Free Gartner Research

Category: infrastructure-operations-and-cloud-management-for-technical-professionals  

Tags: architecture  containers  hybidcloud  kubernetes  multicloud  

Marco Meinardi
Sr. Director Analyst
4 years at Gartner
21 years IT Industry

Marco Meinardi is a Research Director within Gartner for Technical Professionals (GTP). Mr. Meinardi focuses on public cloud, cloud management, cloud adoption strategy and IaaS provider comparison and selection. Read Full Bio

Thoughts on Why Adopting Kubernetes for Application Portability Is Not a Good Idea

  1. You are right that Kubernetes enables modern, scalable applications and agile ways of working. It would be interesting to see data if you have gathered it from clients, quantifying these effects which are widely reported but sometimes anecdotal.

    Portability is really important. The point is “skills portability” due to using a standard operating model and tool chain. Large organisations want developers to use standard ways of working because this reduces training costs, and removes obstacles to staff moving from project to project. It also makes it easier and cheaper to apply policy if your “platform” (or platforms) are based on the same core set of cloud native tools.

    So: portability is flexibility.

    And yes you may want to move your app if GCP or AWS launches some great new chipset, but indeed, this is less common.

    Alexis Richardson, CEO Weaveworks

  2. Anonymous says:

    What a weird article. It seems to try to argue choosing kubernetes for probability is a bad idea and then proceeds to list all the reasons why going they route is the right choice and all the benefits it can bring.

    Portability allows state replication where the docker file and database can bring a disaster back online instead of a full backup. It ties in with scalability as mentioned. High availability is closely related. Not to mention kubernetes itself is an ecosystem with a community sitting atop all the crowning goals of the enterprise industry.

    Like sure if you’re still growing an idea go with whatever is simplest. The value is in proving a product. But if you’ve already proved you have a product it just feels like the right direction to me.

  3. Bert Laverman says:

    So: Kubernetes facilitates portability, but be aware you now have to manage a Kubernetes cluster?

    Quote: “it forces us to engage with commercial vendors and to completely rearchitect our applications”. This is kind of belaboring the obvious. If I _don’t_ go for k8s and host myself, I have to deal with vendors of hardware, operating systems, and virtualization software”. Completely re-architecting the application depends on your current architecture. If you have good Software Architects, it’ll be a very easy migration!

    I guess this article only makes sense for those with outdated architectures.

Leave a Reply

Your email address will not be published. Required fields are marked *

Comments or opinions expressed on this blog are those of the individual contributors only, and do not necessarily represent the views of Gartner, Inc. or its management. Readers may copy and redistribute blog postings on other blogs, or otherwise for private, non-commercial or journalistic purposes, with attribution to Gartner. This content may not be used for any other purposes in any other formats or media. The content on this blog is provided on an "as-is" basis. Gartner shall not be liable for any damages whatsoever arising out of the content or use of this blog.