Facts suggest that we are moving toward the broad production adoption of Linux containers. According to Cloud Foundry’s survey, the use of containers in production has grown from 22% in early 2016 to 38% in late 2018. However, with new opportunities come new challenges.
Managing growing container workloads leads companies to adopt container orchestration. For example, the Cloud Native Computing Foundation (CNCF) reports that over 80% of organizations use a container orchestration tool for their containers.
Kubernetes is the first choice among companies who adopt containers, with 83% of respondents citing its use in mid-2018. With Kubernetes now offered as a hosted solution by all major cloud providers (e.g., GKE, Amazon EKS, AKS), the platform has already established itself as the dominant force in container orchestration.
Expertise: The Missing Link
Cultural change within the development team, security, monitoring, storage, and networking are often cited as the main challenges to the widespread Kubernetes adoption in production. The lack of knowledge and expertise is another major challenge, and it is perhaps the most difficult to address.
The complexity of implementation and maintenance are cited as the major inhibition to Kubernetes adoption by 36% of respondents in the New Stack survey. More recently, 40% of respondents in the CNFC survey mentioned the lack of expertise and training as the major barriers to the broad adoption of Kubernetes in production.
It is obvious that these survey results suggest that we are witnessing a considerable knowledge gap that slows down Kubernetes adoption. Why is it the case? Our Supergiant team believes there are several major reasons for that.
“Deploying Kubernetes involves a lot of planning and architectural design”
Efficient deployment and management of the K8s production clusters require complex architectural and strategic decisions that take infrastructure costs, High Availability, security, and scalability into account. Your team must have comprehensive expertise in a broad range of technologies including cloud computing, networking, containers, and DevOps to do the Kubernetes heavy lifting efficiently. Various trade-offs between infrastructure costs and HA or performance must be entered into the equation as well.
“Kubernetes is a complex ecosystem of interconnected tools”
Kubernetes is a platform that provides useful container orchestration primitives but does not always ship with many things you need for production-ready clusters. A person experienced in Kubernetes should also navigate well in the growing ecosystem of cloud native tools for monitoring (e.g., Prometheus), logging (Fluentd), building service meshes (Istio, Linkerd), auto-scaling (e.g., Cluster Autoscaler), auditing, and many more. Think of the Kubernetes expert as the technological polymath who can master numerous cloud-native tools and know how to put them all together.
“Kubernetes is all about customization and intuition”
Many Kubernetes tasks such as designing a custom cluster belong to the unchartered territory where general Kubernetes principles are mixed with the specific business needs. There are few one-size-fits-all solutions when it comes to deploying production-ready Kubernetes clusters. To solve the puzzle, the combination of experience, knowledge, and intuition is needed along with a deep understanding of the company’s inputs and desired outcomes. Thus, knowledge of Kubernetes concepts and APIs is not enough for tackling complex strategic and mission-critical challenges. Kubernetes expertise is required!
If we had to produce a litmus test for a Kubernetes expert, it would be using an undocumented or poorly documented feature of K8s. This could be an alpha feature gate or perhaps a new project like the cluster-api. A Kubernetes expert would be able to make these features work because he/she understands the project’s purpose and how it achieves that purpose in specific detail.
Sounds like a bit difficult to achieve? Indeed, nurturing a Kubernetes expert is a long-term project that must happen from a foundational level up through exposure to hands-on experience.
Expertise is created by knowing which topics and fields on which your occupation depends and fully understanding how and why they do what they do to produce the desired results — from computer administration to containerization to container orchestration, DevOps, and the microservice ideology, all the way to Kubernetes.
If your company is seeking Kubernetes experts, there are three possible options:
- Using an independent Kubernetes consulting firm. Such companies can supply K8s experts who will help you build K8s clusters from scratch, go from development and production, maintain the cluster, and troubleshoot issues. According to the Heptio survey, 42% of companies adopting Kubernetes are seeking the help of independent consulting firms.
- Hiring expert Kubernetes developers and administrators.
- Building in-house Kubernetes expertise.
For many small and medium-size companies, building in-house Kubernetes expertise is the most viable option. This approach provides a number of benefits:
- Long-term investment in your Kubernetes operations.
- In-house K8s experts who are familiar with specific business requirements and all aspects of the company.
- Availability when needed (especially important in case of an emergency and/or security breach).
- Team attitude and dedication (more likely to go the extra mile and provide model service for their company).
Building an in-house Kubernetes expertise sounds like a big challenge, but this is quite a viable option. With good training and committed participants, this is achievable for anyone.