Kubernetes plays a critical role in digital transformation for many organizations. As companies continue to invest in cloud native technologies to upgrade their application landscapes, they are running into a problem: the available pool of experienced Kubernetes employees is smaller than the market demand. So what are companies to do when the people responsible for migrating, managing, and scaling Kubernetes environments efficiently become the bottlenecks?
In my countless conversations with DevOps and Kubernetes practitioners and thought leaders, I have come across these 5 strategies that have proven to help companies successfully combat the challenges associated with the lack of skilled K8s professionals.
The rise of Kubernetes adoption
One of the main goals of any company's digital transformation efforts is to enable its dev teams to deploy new and innovative products and capabilities at a rapid pace. To accomplish this, they are building more modern applications with infrastructures based on microservices and containers.
According to Gartner, by 2027, more than 90% of global organizations will be running containerized applications in production, which is a significant increase from the 40% reported in 2021. And when we are talking about containers, we are basically talking about Kubernetes (K8s) which control more than 80% of the container’s orchestration market.
The people aspect of Kubernetes
As companies have rushed to adopt microservices, containers, and Kubernetes, they are quickly discovering that they are lacking the experienced personnel needed to build and operate this system properly.
However, filling this gap is easier said than done. Across the globe, we are experiencing a shortage of skilled K8s personnel, especially in the DevOps and SRE (Site Reliability Engineering) space.
This is becoming a major bottleneck for enterprises looking to modernize their applications. A simple search on LinkedIn will show well over 100K+ openings for people with Kubernetes backgrounds. Also, a recent Cloud Native Computing Foundation (CNCF) survey of over 2,000 participants, marks the number one challenge of using and deploying containers is the lack of training and skilled personnel.
These trends were also found in the Evaluator Group survey (Oct 2022) of Kubernetes adoption. They found that more than half of the companies surveyed lacked the experience level needed to adopt new technology with their current staff, and 35% were having difficulty acquiring talent from outside the organization.
So why is it so hard to find skilled Kubernetes personnel? The main reason is that Kubernetes is a relatively new, yet extremely complex technology. It requires a steep learning curve to understand how to effectively manage and scale environments, which requires a significant amount of hands-on experience to master. Although more people are building their Kubernetes skills, the current talent pool falls far behind the demand of the market.
How to bridge the gaps
What can IT leaders do to ensure they have the proper people and resources needed to successfully deploy and operate Kubernetes? This will call for some creative thinking, but here are a few strategies that you can embrace:
#1: Invest in your people
You may not have qualified personnel right now, but I guarantee you have people on your staff that are eager to expand their roles and learn Kubernetes. And with the rise in its popularity, getting your team trained and qualified has never been easier.
There are several vendors like VMware Academy, IBM Skill Network, Google Cloud, etc. that are providing free training—not just on their own products, but on the general concepts.
Organizations like the Cloud-Native Computing Foundation (CNCF) and LearnK8s offer a variety of training programs from foundational to advanced courses.
The CNCF also provides certification programs for interested developers and DevOps engineers who want to become certified Kubernetes application developers or administrators.
You can even send your people to dedicated courses or bring these courses and instructors in-house, depending on your budget, time, and your team's educational preferences.
Lastly, Kubernetes is supported by a large network, so there are numerous public resources your team can utilize to improve their skills, including public documentation, Youtube videos, Reddit discussions, and more.
Investing in your team should be a top priority for any organization as Kubernetes is not going anywhere; on the contrary, it will only become a more strategic piece in your technology stack in the future.
#2: Bring outsourced experts to build in-house expertise
Many enterprises start their Kubernetes adoption with the help of global systems integrators (GSIs) or service providers that are experts in the DevOps and K8s space.
Since this is a core competence that the enterprise doesn’t want to lose, instead of outsourcing the entire project, most companies will bring in outsourced contractors to be part of their own staff, working shoulder to shoulder with their people on the project.
This “dual-badged” personnel is usually charged with delivering project and individual objectives, as well as knowledge transfer to the rest of the team.
By that companies can both progress faster, while training and bringing up to speed the in-house team.
#3: Use tools and automation to increase efficiency
Choosing the right toolset for your team is critical in improving your team's efficiency and helping to fill skill gaps. The right tooling can help teams make quicker decisions, prioritize their actions, and reduce manual work.
When it comes to Kubernetes, there is a large variety of tools available to help you across the various different aspects of the system. You have the foundational components that help you set up things like your CI/CD pipeline and networking and storage capacity. You also have the operational components that help you monitor system performance and security. Lastly, there are continuous optimization and governance solutions that help you maximize system efficiency and availability while lowering costs.
When evaluating tools, it is important to understand what they can automate. Automation is a key way to maximize the efficiency of your current team, by eliminating repetitive tasks. This in itself could help you reduce the need for additional headcounts, however, and more importantly, it can reduce burnout of your existing team which could reduce the need for you to have to backfill more positions due to attrition.
#4: Reduce the complexity by using Managed K8s
Many companies are leveraging Managed Kubernetes Services to simplify the operational aspect of managing a large-scale environment. “Managed” is a broad term that can refer to anything from dedicated support, to hosting with pre-configured environments, to full hosting and operation.
These services are often provided by RedHat (Openshift), AWS (EKS), Microsoft Azure (AKS), Google Cloud (GKE), and SUSE (Rancher). Using a managed cloud service lessens the need to build in-house expertise, particularly in operations, and can deliver embedded automation and governance to help newer application developers become productive faster.
For some application types, using a Platform-as-a-Service (PaaS) solution may also make sense as they further reduce the amount of decision-making and work needed for the K8s infrastructure operations.
#5: Embrace DevOps best practices
One thing that is often overlooked, but can be critical to the success of your digital transformation, is the cultural changes that come with embracing DevOps practices. Concepts like the agile methodology, Infrastructure-as-a-Code (IaaC), configuration management, continuous integration, and automated deployments -- cannot be turned on like a light switch, and need to be properly introduced throughout your teams.
Additionally, it is important to have defined processes to help reduce risks. When no processes are defined, people tend to cut corners. This inconsistency often leads to more work for your DevOps and SRE teams that could have easily been avoided, which is not good for morale and causes burnout.
Now, embracing a DevOps culture will not necessarily help you hire new Kubernetes talent, but it can help maximize the effectiveness of your current team and set a solid foundation for when you do hire new team members.
Don’t forget to think about the future
The decisions you make today will have implications in the future. This is why it’s best to think about the team and design systems that will support hybrid and multi-cluster architecture from the early days, as this will save you time and energy in the future.
Additionally, hiring the right DevOps and SREs people, and making sure your teams have access to the proper training and tools is critical to your company’s future success.
The shortage of skilled people in the Kubernetes space will be a short-lived problem as more and more people are getting into this part of the industry. Following the above steps will help you get through this temporary drought, while you are building an application infrastructure that will support the future of your business.