Chapter 9. The Future of Containers: What’s Next?

Chris Hickman

Deciding which technology to use for running your cloud native applications is a question of trade-offs.1 Virtual machines provide great security and workload isolation but require significant computing resources. Containers offer better performance and resource efficiency but are less secure because they share a single operating system kernel.

What if we didn’t have to make these trade-offs? Let’s explore two of the most promising technologies that combine the best of virtual machines and containers: microVMs and unikernels.

MicroVMs

MicroVMs are a fresh approach to virtual machines. Rather than being general-purpose and providing all the functionality an operating system may require, microVMs specialize for specific use cases.

For example, a cloud native application needs only a few hardware devices, such as for networking and storage. There’s no need for devices like full keyboards, mice, and video displays.

By implementing a minimal set of features and emulated devices, microVM hypervisors can be extremely fast with low overhead. Boot times can be measured in milliseconds (as opposed to minutes for traditional virtual machines). Memory overhead can be as little as 5 MB of RAM, making it possible to run thousands of microVMs on a single server.

A big advantage of containers is that they ...

Get 97 Things Every Cloud Engineer Should Know now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.