What is new about this way of application deployment is: The containers are only deployed at the operating system level and not already at the hardware level like classic virtual machines (VMs). Containers are therefore isolated from each other as well as from the host.
They have their own file systems, cannot "see" the processes of other containers - and they can be strictly limited in resource consumption. This also means that containerization is preferably suitable for new applications that are developed from the outset for this type of infrastructure.
When modernizing legacy applications, on the other hand, which are classically monolithic, scale-up architectures are best used. In the cloud, these could then also be integrated relatively easily with new container applications.
The good thing is: containers are much easier to create than VMs
Due to the decoupling of the underlying infrastructure and the host's file system, containers - unlike VMs - can also be ported across cloud and operating system boundaries.
In both cases, the economic use of resources is difficult. This is the case, for example, when a large number of very small containers have to be managed, each of which produces only a small load.
Even if container virtualization is very clever with the virtualized resources RAM, CPU and mass storage, there is inevitably an overhead that can quickly lead to the many small containers reserving resources without actually being utilized.
Each VM, on the other hand, brings the operating system and the packages as overhead, which can easily lead to an overcommitment of the infrastructure. This is also possible with containers because of the reserved RAM and CPU resources, but the overhead is usually lower here. Vertical autoscaling can be used to dynamically allocate minimum and maximum values for resources. Then administrators no longer have to worry about the values they specify for a container's CPU and memory requirements. Autoscaling can recommend values for CPU and memory requirements, as well as limits, or update the values automatically.