Microservices must be packaged as a self-contained artifact that can be replicated and deployed using a single command. The services should also be lightweight with shorter start times to make sure that they are up and running within seconds. It is recommended to package microservices within a container (https://en.wikipedia.org/wiki/LXC) that can then be deployed faster due to its inherent implementation as compared to setting up a bare metal machine with a host operating system and required dependencies. Packaging microservices within containers also makes it possible to move from development to production faster and in an automated fashion.
Deploying microservices at scale
Introducing Containers and Docker
Linux Containers...