Although technically best described as a container orchestration engine, Kubernetes is rapidly becoming the infrastructure platform for cloud native computing, an approach to using public or private clouds in the most flexible way possible.
With this approach, the general idea is to put your applications within containers and then manage them against available resources using Kubernetes. Beyond orchestration itself, Kubernetes as a platform solves a lot of enterprise IT issues, including service discovery, application invocation, logging, monitoring, replicas and backups, and, of course, flexibility.
Containers also allow organizations to streamline the development process, for a seamless, and often automated, transition between the developer and the production deployment. Containers free up developers to use whatever languages and frameworks they prefer, given the ability to package all the dependencies for these specific choices within the container itself.
On the operations side, Kubernetes allows operators to make the best use of available resources, by moving around containers, or having them automatically moved around, to best match the optimal performance and price.
Kubernetes also promises to provide a path forward for multicloud operations. By this time, organizations have acclimated to the fact that, in many cases, cloud computing is the best way to handle IT operations. But each of the cloud providers offers its own unique interfaces, posing a danger that a customer’s operations may be “locked” into that specific provider.
Google first created Kubernetes based on its own software for managing containers, called The Borg. The company had already been using containers in its own operations for well over a decade and so company engineers had plenty of expertise and best practices in hand when designing this new software, which was released as open source in 2014 and is now hosted by the Cloud Native Computing Foundation.
Now offered as a service by all the major cloud providers, Kubernetes provides, through a set of APIs, an abstraction that allows users to potentially mix and match cloud services.