Migrating to Kubernetes? Advantages Vs. Dis-advantages a CTO must know.

By Anushka Arora, The force behind the content that one sees on Devtron loves sharing her knowledge with people.

Since its version 1.0 release in 2015, Kubernetes has captured the imagination of DevOps. As per the CNCF cloud native survey in 2019, 78% of the respondents used Kubernetes in production. Gartner predicts that by 2023, more than 70 percent of global organizations will be running more than two containerized applications in production, up from less than 20 percent in 2019.

The top three use cases for Kubernetes, as per the survey, are
1. DevOps & CI/ CD Automation
2. Modernizing legacy applications
3. Automating of app operations

I am sure, like many other CTOs, VPs, Head of Technologies, you must be wondering whether Kubernetes is for you or not? What are the costs and advantages of migrating to Kubernetes from your current system, which has taken years to perfect? What kind of tactical and strategic business advantage will you get out of Kubernetes?

In this article, I have collated information from various surveys and reports. By the end of this article, you will have a good grasp of the benefits and challenges of adopting Kubernetes.

TLDR;

Kubernetes can fasten your release cycle and help you lower your cost of infrastructure but it will be a long ride and would require continuous investment in skill upgrade and building devops and SRE tools and practices for kubernetes.

To start, let’s look at some of the benefits you can get out of Kubernetes.

Shorter development cycle

53% of the respondents said Kubernetes has helped them shorten their development life cycle. Kubernetes exposes a powerful set of APIs which can be extended to serve specific use cases.

This has resulted in an explosion of better-defined DevOps products, which enhance the productivity of the DevOps and development team. As per the Accelerate State of DevOps Report 2019, the highest performing engineers are 1.5 more likely to use easy-to-use tools. (Do reach out to our team to know how superior user experience of our product has helped teams triple their productivity)

Modernizing legacy applications

50.4% of those surveyed believe Kubernetes will help them in modernizing their monolithic applications. In a separate survey, 50% of the respondents said they successfully moved their monolithic application to Kubernetes.

Unlike the popular myth that one needs to have a 12-factor application-slash-microservices to take advantage of Kubernetes, as a matter of fact, the pace of converting monolithic applications to microservices increases substantially once on Kubernetes. Kubernetes has inbuilt features like internal dns, pod restart, which are basic requirements for microservices.

Better resource utilization

56% of those surveyed chose improved resource utilization as one of the top benefits of adopting Kubernetes. This improvement is primarily because containers as containers allow fine-grained specification of resources driving better utilization.

33% of the respondents also saw cost reduction as a positive side effect of moving to Kubernetes because of better resource utilization.

Kubernetes provides VPA (Vertical Pod Autoscaler), which can be used for the optimization of resources to a certain degree, but it cannot be used with HPA (Horizontal Pod Autoscaler); therefore,,, it requires manual intervention and technical know-how. ( contact us if you want to test out our beta tool for continuously optimizing resource utilization)

Multi-cloud portability

34.96% of those surveyed cited multi-cloud portability as one of the important use cases for the adoption of Kubernetes. With a uniform set of APIs which work across cloud providers, whether Amazon (AWS), Google (GCP), Azure, Alibaba, or on-prem, Kubernetes makes multi-cloud as real as multi-cloud, hybrid cloud can be.

If we divide different parts of applications, including datastore, cache, queuing systems, application, etc., into stateless and stateful, then with Kubernetes, the multi-cloud strategy for stateless applications has become trivial. Stateful applications still pose substantial challenges to the multi-cloud, hybrid cloud strategy.

Now that we know what benefits we can get out of Kubernetes let me walk you through the common gotchas for using Kubernetes.

Skill gap

Kubernetes is a newer technology and much different from what we have been used to. Instead of working with OS now, we are dealing with microservices with a lot of moving parts. It has a steep learning curve and requires unlearning and relearning how we manage applications.

Kubernetes is a newer technology and much different from what we have been used to. Instead of working with OS now, we are dealing with microservices with a lot of moving parts. It has a steep learning curve and requires unlearning and relearning how we manage applications.

With a continuously growing list of addons, companies must invest in reskilling people continuously. The availability of IT professionals and an acute scarcity of container skills can adversely affect the day 2 operations of your company. Kubernetes' skills are in high demand; a quick search on Indeed.com shows over 9000 Kubernetes jobs!

Operational complexity

Kubernetes is the most popular container orchestration, but it’s only one part of a container platform. In addition to a container scheduler, a complete container platform needs cluster management, deployment, disaster recovery, alerting, monitoring, observability, cost monitoring. This requires deep Kubernetes knowledge.

While it may be relatively easy to deploy Kubernetes initially for experimentation and Proof of Concepts, it’s very different when you have to operate it at scale. 70% of the respondents cited lack of experience and expertise as the biggest challenge to deployment and management of Kubernetes.

Operating Kubernetes clusters at scale in production requires security hardening, right configuration, right policies so that only whitelisted objects run, audit log of every mutable action, monitoring and alerting, maintaining high availability, and achieving non-disruptive upgrades, deployment through canary and blue-green, providing right tools for teams to debug errors and failures and much more… which is enormously challenging.

It can become a multi-year process for large organizations and can also become a divisive internal issue for companies as it requires multiple stakeholders to come together. How you champion it within the organization will decide its benefits.

Security Challenges

The biggest reason for the breach of Kubernetes-based infrastructure is the flaw in the design and architecture of Kubernetes implementation in the organization. Container compromise is the second biggest reason for the breach. Hence it’s important to pay attention to them particularly.

Kubernetes by itself is very robust; even though Kubernetes adoption has grown, so has the hacker's interest, but it is also true for the OS distributions. Kubernetes takes these concerns very seriously and keeps fixing security issues from time to time.

What's next?

Like any other set of technologies, Kubernetes also has its own set of challenges and rewards, but only 5% of the respondents have not realized any benefits of Kubernetes. So what do you think? Are you ready for Kubernete's journey?

Please reach out to our team if you would like to know more about productizing applications on Kubernetes.

Devtron is redefining the paradigm of how #DevOps should be done. It automates #ReleaseOrchestration & Life Cycle Management of Applications on #Kubernetes.