A case study in enabling DevOps using Docker
There are varying definitions for DevOps, but at its core, it is a software engineering methodology. The concept of DevOps was born from the need to create synergy between the people who develop software (Dev), and the operations people who manage production systems (Ops). The result is a methodology that strives to create a streamlined approach to the full lifecycle of software-from development to production support and maintenance. DevOps methodologies do so by implementing automation that enables a repeatable process for building, testing, deploying and managing software components. Docker is a platform that allows for the packaging of these software components, as well as any dependencies, into isolated virtual containers. These Docker containers are portable across any Linux based infrastructure that has Docker installed. DevOps processes that are supported with Docker enable developers to produce self- contained applications that are delivered in a fast, repeatable way. Docker is relatively new within the technology community and is gaining wide support. In this report I evaluate features available within Docker. I also implement and describe a system to build and deploy Docker containers. These containers could be used for deployment to any Linux based server or public cloud offering that supports Docker. Finally, I identify issues that would need to be considered when using Docker, as well as provide topics for future work.