In the technology industry, there is much talk of containerization and its benefits for the data center. Containers were present in the form of LXC components in Linux. Docker boosted the concept, enabling its easy (and widespread) adoption for routine data center and application deployment usage.
Kubernetes, a container orchestration engine, was launched by Google in 2015, right after Docker initiated its penetration. Until Kubernetes suddenly took off in 2017, other container orchestration engines dominated the market.
However, due to the significant contribution of Kubernetes engineers, along with its much-needed support of a wide variety of workloads and infrastructure resources, Kubernetes has taken over other container orchestration engines. Moreover, it has now become the leading open source project under CNCF.
What can Kubernetes do for an enterprise data center?
Kubernetes (K8S) simplifies container workflows and enables high-level automation of container operations. High-level automation involves deployment, scale, and management of containerized applications on a group (cluster) of (bare metal or virtual) servers. Kubernetes can automatically handle basic server-side configurations related to networking and storage, providing data for analysis (logs, alerts, etc.) for all containers.
At its core, K8S consists of a master node, which manages the entire K8S cluster and multiple worker nodes, in which containerized applications are grouped and run using “pods.” All containers within a pod share the same context, resources (such as storage and networking) and lifecycle.
Types of enterprise workloads that Kubernetes can handle
In the last two to three years, enterprises have had to deal with a huge amount of streaming and transactional data, which is generated by a growing number of devices. They've also faced the challenges associated with managing different types of modern applications (AI/ML, Big data, and analytics) to process that data at several nodes. Having a top-level network/security policies and gaining better control has become paramount for enterprises.
At this point, Kubernetes comes to rescue for enterprises, with its unique set of features. Enterprise Kubernetes can handle a wide range of IT workloads, while the data processing and orchestration can be done with a single interface.
Artificial Intelligence (AI) and Machine Learning (ML)
Kubernetes can provide policy-based control on thousands of pods (having containers) in an automated
and agile manner. Such dynamic access to pods provides a greater end-to-end platform for AI/ML related workloads. AI/ML systems consist of different complex software frameworks that need to be brought together. Kubernetes, with its flexibility, isolation, and elasticity, enable AI/ML systems to host the entire ecosystem required for executing model training and analysis tasks.
Kubernetes offers KubeFlow project, which connects and manages all infrastructure resources for AI/ML application. In addition, it allows the AI/ML systems to share AI and data models in whole bundled Kubernetes hosted platform.
One of the key examples is booking.com, where ML systems powered with Kubernetes enabled booking.com to enhance the customer experience by quickly showing recommendations, implementing image understanding and tagging, translation, and ad optimization.
Sahil Dua, a software engineer at booking.com, explained how the features of Kubernetes could help leverage machine learning to offer recommendations for server predictions to their customers at a massive scale of more than 400 million visitors a month.
As Kubernetes has become a mature open source orchestration framework, improving with every release, it has been able to function as a single source for managing applications as well as data. Kubernetes has become more suitable for running high-performance data platforms.
Hadoop, previously used for batch processing of structured and unstructured data to generate analysis, is being replaced with Kubernetes. The reason is, that using Kubernetes, data can be shared, and analysis results can be accessed in real-time within an overall cluster than spanned across multiple clouds.
In addition, Kubernetes can be used to host big data applications like Apache Spark, Kafka, Cassandra, Presto, TensorFlow, PyTorch, and Jupyter in the same cluster. This, it serves as a single platform that couples all big data components so they can easily be shares, scales, and provide real-time access for random requests from applications.
Benefits of Kubernetes for workloads deployed for enterprises
According to The State of Kubernetes 2018 report based on a survey conducted by Heptio, a leading Kubernetes solution firm recently acquired by VMware, 60% respondents out of 400 participants are already using Kubernetes in data centers.
This is because Kubernetes has become the go-to framework for multi-cloud deployments, which are used by 2 out of 3 enterprises. Kubernetes represents the cloud-native dynamism for data centers in enterprises. There are several reasons that most enterprises use Kubernetes for multi-cloud environments.
1) Kubernetes makes it easy to run the same application on public cloud services. Leading cloud providers like AWS, Google, and Azure offer Kubernetes-as-a-Service. This is a major benefit to enterprises, who can use Kubernetes on a pay-as-you-go basis.
2) Isolating and sharing containers in Kubernetes allows you to deploy the right workloads in the right cloud and prevents vendor lock-in.
3) Kubernetes acts as a stand-alone tool, a common orchestrator within different clouds (if utilized) to sync up operational and transactional data within workloads in an agile and automated way.
The overall efficiency of enterprise IT teams depends on how efficiently they manage large applications, typically deployed in the form of microservices and connected using APIs. With such interconnection, Kubernetes allows containers to communicate with each other, enabling service discovery and simultaneous access to storage from different public cloud providers.
Adoption of Kubernetes can bring down CAPEX and OPEX significantly for enterprises, as it is open source and community-driven. Enterprises just need to pick an option to integrate Kubernetes into the data center from the ground up, hiring service providers, or purchasing a Kubernetes solution from available vendors.
Kubernetes, as a leading cloud-native and DevOps, provides enterprises with the power of automation, which helps bridge the gap between developers and IT teams. It also helps accelerate the application development lifecycle, from strategy, planning, coding, building and testing through release, deployment, operations, and monitoring.
Enterprises are constantly searching for innovative solutions and alternative platforms for managing their existing workloads while helping them tackle challenges imposed by diversified digital workloads. Open source projects offer an expedient solution to enterprises, in terms of cost savings, along with immense support from the community.
The proliferation and impact of Kubernetes adoption by enterprises are evident with the crowd that gathered for the last two KubeCon events (the ones held in December 2018 in the US and in May in Barcelona, Spain).
As Kubernetes evolves, we will witness how it becomes even more intelligent. It will become even more powerful when it comes to helping enterprises manage their data center, not just at the cloud but also at the edge.