1 Kubernetes for Application Deployment
This chapter covers:
- The benefits of packaging applications in containers
- What makes Kubernetes an ideal platform to deploy containers with
- Deciding when to use Kubernetes
In the past, developers would choose between ease of managing deployments, and the customizability of their environment. If you wanted a self-driving automated platform with easy scaling, you could choose a Platform as a Service (PaaS) like Heroku or AppEngine, enabling easy deployments, but limiting what you could do, such as which languages or libraries could be used. Conversely, you could fully customize your application environment and run whatever you wanted if your target was a raw Linux or Windows box, but then management and scaling was complex.
Enter Containers and Kubernetes. Containers allow you to package up your application and its dependencies into a lightweight package that can be run mostly independently of the host operating system, and Kubernetes helps you manage all those containers, to keep them running and scale as needed, without you needing to manage each minute detail of the underlying hosts.
This combination has proved incredibly powerful, and gained a loyal following among developers looking to gain the most flexibility to deploy whatever software they like, while keeping operations as simple as possible.