DevOps Institute will host SKILup Festival in Singapore on November 15, 2022.
Remember the browser wars? IE vs. Mozilla vs. Opera? In the early days of Web-based applications, the browser mattered ... until it didn't, because the browser essentially morphed into an operating system. In today's increasingly containerized and cloud-native world, Kubernetes is taking on that operating system role.
No, there is no container orchestration war — Kubernetes won that battle (if there ever was one) handily. But, just as browsers serve as a sort of operating system for Web-based apps, Kubernetes acts as an OS for container-based apps.
Q: How does Kubernetes act as an OS for container-based apps?
A: As an OS, Linux manages the resources needed by applications on a single computer. In Kubernetes, the challenge is managing the resources for many applications across many computers ("a cluster"). Kubernetes is a framework to manage many Linux computers. As time evolves, Kubernetes is also beginning to look at ways to manage many clusters of computers.
Q: What are the similarities/differences from traditional OSs?
A: Both Kubernetes and Linux share the ability to manage Linux containers, as well as the compute resources associated with the container. They were both created by innovative open source communities and both have robust ecosystems that are working to expand the scope of adjacent open source projects. Linux is scoped for a single computer. While Kubernetes is scoped for larger scale management of many computers.
Q: What are the advantages/disadvantages?
A: The advantages or disadvantages are all relative to the types of applications that are being managed. Linux provides great tools and capabilities to manage individual computers and their applications. Kubernetes provides great tools and capabilities to manage many computers. Both are fundamentally built around Linux, so Kubernetes is able to leverage the massive community of Linux professionals to help build and operate Kubernetes environments.
Q: How does security factor in?
A: Since containers are Linux, they are able to leverage all the security capabilities that are inherent in Linux. Beyond securing the Linux host, Kubernetes enables the ability to secure "the platform," which manages the Kubernetes API and the processes that communicate across all the computers that Kubernetes manages. Some of this is beyond the scope of Kubernetes, but is part of the overall security for the lifecycle of software — container content, container registry, container runtimes, container image scanning and digital signing, integrations with CI/CD pipelines, etc.
Q: How does this expand and accelerate development pipelines?
A: Containers provide a consistent way to package applications, allowing them to run the same way from developer laptop, through Dev/Test and into Production. Kubernetes brings the ability to automate the deployment of those containers, and run them in a highly efficient and automated manner. Kubernetes integrates well with a broad set of development pipelines, so developers can now create secure, agile, consistent ways to deploy and update their applications.
Q: What should developers know about this?
A: If the Kubernetes platform and CI/CD pipelines are set up correctly, then developers don’t need to know much (if anything) about containers or Kubernetes. They can just focus on building applications using the tools, languages and frameworks they prefer — the platforms can take care of packaging the code into containers and making sure it runs well. Of course, if developers want to get down into the technical details of containers or Kubernetes, there are plenty of open source tools and tutorials available to help them succeed (e.g. http://kubernetesbyexample.com)
Q: What should system administrators know about this?
A: Containers and Kubernetes will be a direct area of focus for system administrators, since they not only interact with the applications, but also all the areas that support the applications — compute, storage, networking, security, CI/CD pipelines, container registries, hybrid cloud, etc.
Q: Where is this trend headed?
A: Use of Kubernetes continues to grow in every industry vertical and every geography. As companies begin to target Kubernetes with more containerized applications, the need for better and more agile security around these applications will continue to grow. The DevSecOps movement is continuing to grow and become a high priority for many companies.