In the last couple years Docker and other container technologies have seen a lot of interest and adoption. They provide a simple interface and API for creating self contained applications that once built run pretty much anywhere. Conceptually, a container isn’t much different from a static binary or a super jar. It’s a bundle of files and configurations necessary to run one or more processes, though as implemented today does provide a fair bit of isolation necessary to prevent accidental interference between applications. With this ease of packaging and running applications has come an increase in the speed with which developers expect to move both when creating software and deploying it. This desire to move faster in production has led to a number of cluster management systems focused on deploying Docker containers.
Continue reading