Building a container in AWS ECR
Containers are compartmentalized systems for storing code and associated dependencies. With a container, we can set up just the bioinformatics code and libraries we need to run a particular module. This allows us to make our pipelines very modular and reproducible. They are lightweight because they do not contain an entire OS and can be spun up quickly. This happens because they share the underlying resources of the machine they run on, as compared to virtual machines, which contain an entire OS of their own. They are highly portable and help to eliminate system-specific issues. Once built, a container does not change. In this way, you can keep track of different versions of a module by making multiple containers, tagging them with the version, and then storing them in a container repository.
Using containers, you can build a bioinformatics pipeline or workflow system, which stores different pipeline definitions as sets of versioned containers. This...