To understand fully what containers are doing in the enterprise today, you have to understand where they came from. This chapter details the history of containers and other microservices technology, including but by no means limited to Docker.
As we will see, that history stretches back to the early decades of computing. It involves application containers of the type Docker supports, but it has many other strands as well. It entails some practices that have been widespread in the enterprise for years, such as service-oriented architecture (SOA), as well as some very obscure technologies, like jails (see “The Origins of Containers: chroot and FreeBSD Jails”).
A microservice, as the term suggests, is any type of small service that interacts with other services in order to run a software application (“small” in this context is defined subjectively). Docker containers are a building block for microservices architectures because each Docker container can host a single service. In many cases, deploying a complete application via Docker requires the use of multiple containers.
But Docker certainly did not invent microservices, and application containers are just one possible building block for a microservices-based application. Consider the following developments, which predate Docker by decades.
To understand the origins of the microservices concept, you ...