Docker: Multi-arch All The Things
True multi-platform workload portability has long been the holy grail of enterprise computing. All kinds of virtualization strategies have been used over the years to approximate this dream to varying levels of acceptable performance or usability. On the one hand, virtual machines and hardware virtualization are flexible enough that you can mix and match operating systems (and even CPU architectures) on the same host—but they come with a lot of overhead. However, language-based virtual runtimes don’t have packaging formats that encapsulate all system-level app dependencies, and that makes them unsuitable for general-purpose deployment and configuration management.
Docker came along as a unique type of virtualization that only virtualizes the operating system for container processes. Docker uses existing Linux kernel features to offer isolation characteristics that are similar to what is available with virtual machines. The analogy of a “standard shipping container,” combined with these isolation primitives, caught developer interest immediately. With this new shipping metaphor came speed and agility that blew the doors off virtual machine size and speed constraints that impacted developer workflow, not to mention developer happiness! The containerization craze has grown like wildfire since then, but left us back in a Henry Ford-esque conundrum: “you can run a container anywhere you want, as long as it is the x86_64 CPU architecture on Linux.”
As Docker and container interest grew, many other UNIX and Linux user communities—including Raspberry Pi enthusiasts, FreeBSD, Solaris, ARM microservers, OpenPOWER and z/Linux communities—wanted in on the container craze and jumped in to port the Docker container engine and other required components to their UNIX and/or CPU specific architectures. Microsoft joined in as well, and added containerization features in the Windows Server kernel, working with Dockerto port the Docker engine to Windows. At DockerCon in Copenhagen, Michael Friis and I shared this multi-platform journey in their talk “Docker: Multi-arch All The Things.”
Read the entire article here, Multi-arch All The Things – Docker Blog
Via the fine folks at Docker.