In typical cloud computing, you spin-up virtual machines and load a single application on it. It may be a very small application, but you are still running all the OS resources. Now, imagine you have 100 applications all running on individual virtual machines (VM). Now you have a lot of resource hogging going on. Time to introduce Containers as a Service (CaaS).
Instead of running your infrastructure in virtual machines, you leverage containers. Containers are intended to run a single application; they are light-weight and extremely fast to boot and run. Additionally, they can isolate code from container to container and share the resources of your physical machine without needing to run a hypervisor (typical VM deployments). Examples of containers would be to spin up MySQL or Redis.
Why are containers so fast? Virtual machines have full operating systems (OS), drivers and memory management. You have the physical server followed by the Host OS (VM) and then the hypervisor sits on top of it. On top of the hypervisor, sits the Guest OS/Apps running. Containers are isolated but share OS of the host.
For example, you have a container image that is 1GB in size; you may have ZooKeeper or MySQL running in this container image. If you did not use a container, but went for a full virtual machines, you would have 1GB x number of times. With containers, you can share across your host operating system.
If you are building cloud solutions and still using virtual deployments, you should consider researching containers as you continue to grow your cloud infrastructure. We at MaxQ specialize in this area and can help you in the growth of your cloud infrastructure. Please contact us for any questions you may have.