“Containerization” is an approach to packaging and deploying cloud-native applications.
To best understand it, we have to look back at how we used to deploy applications to the cloud before containers. Basically, to run an application, we used to spin-up an entire virtual machine (VM) — i.e., the code of the application and the underlying operating system (OS).
The challenge with the old way is that when you needed to scale-up for more demand, you had to spin-up more VMs. This was very expensive as it ate up a lot of hardware/server resources.
But with containers, our applications only use the specific code they need to run. As a result, you didn’t need to spin-up an entire VM to scale-up, just the specific resources of application.
Because you’ve separated the application from the underlying OS (e.g., ‘put it in a container’), it’s also easier to move containerized applications. You can move them into a different cloud or hosting environment without having to re-code most of it.
The key to fully leveraging the benefits of containers is by using a container orchestration suite such as Kubernetes.