Kubernetes, the open source container orchestration tool for automating application deployment, scaling and management, has become the industry standard for enterprises wanting to scale their applications with production-grade containerization. Interestingly, a recent Datadog survey found the adoption rate for Kubernetes increased by 10% in 2018. I strongly anticipate even greater growth in 2019.
In addition to the key benefits Kubernetes ensures, it’s also becoming widely accessible—it is now distributed with Docker and available on major public cloud platforms including AWS, Azure and GCP. However, a recent study from Kubecon + CloudNativeCon 2018 found that a lack of expertise and operational complexity were among the challenges to even greater widespread adoption of Kubernetes. Additionally, a recent survey from Cloud Native Computing Foundation found security, storage and networking to be among the top challenges organizations face with Kubernetes.
What are causing these challenges and how can developers find their way through them?
The Promise and Shortcomings of Containerization
The promise of containers is that they provide a lightweight solution to deliver code more efficiently, but they haven’t been adopted at the rate the industry has expected. Containers enable developers to modularize the functionality of extremely complex application architectures as microservices, with dedicated roles that support digital business for the enterprise. With this in mind, Portworx found about 70% of IT pros are making an investment in containers, showcasing the industry’s interest in adoption.
While investments are made in the technology, most enterprises are evaluating how containerization will impact their workflows and needs more strategically. They’re looking to balance the risk of adopting technology without disrupting what currently works well for them, with the goal of identifying what makes sense to implement for the future. It’s critical the industry doesn’t fall into a position of thinking a tool can solve issues that actually are rooted in processes and operations—namely, continuous integration, monitoring, logging and tracing. As enterprises move forward in implementing containers, setting up new foundational processes that ensure these areas are addressed from a process perspective is critical.
Once new processes are put in place, enterprises also must experiment with supplementary tools that support the next era of their business.
Orchestrating Containers with Kubernetes
With this in mind, organizations leverage Kubernetes to handle the orchestration and management of containers. This enables them to be used in a production environment with the proper set of controls. Developers essentially can describe the desired state of how they want the containers to run and what to do if something goes wrong. Kubernetes does all the work to make sure this desired state is always kept up and running. With automation like this, the days of “set it and forget it” are tantalizingly close.
Kubernetes in production includes monitoring, networking and load balancing, so when demand increases, the application architecture developed with containers scales accordingly to meet the demand. Kubernetes also ensures there’s a seamless way to update container versions in a continuous delivery model and rollback to a previous state when necessary.
The Additional Benefits of Kubernetes
Kubernetes was created by Google and has been used by the company in production for 15 years. Having been a reliable resource in Google’s web-scale environments made it a proven solution for wider enterprise adoption. Over the years, Kubernetes was watched over and built up by top developers at the search giant. It’s now overseen by the Cloud Native Computing Foundation, ensuring it is maintained, bolstered and accessible to everyone.
Additionally, Kubernetes is open source. This promotes innovation and the development of new and existing software tools, which enterprises are increasingly reliant on.
Regardless of deployment hiccups, enterprise adoption of containerization is an example of how organizations are concerned with future-proofing their technologies and processes. While initial implementations are sometimes difficult, the benefits outweigh the challenges, and enterprises find it easier to rely on Kubernetes distributions and support offerings. As more enterprises adopt Kubernetes, it will continue strengthening its position as the currency for migrating, managing and scaling containerization across the hybrid cloud landscape.