DevOps is a development strategy that sits in the gap between software development and IT infrastructure. It brings the agile process used in development to the deployment process so that new features and bug fixes go live as soon as possible. A DevOps engineer manages this Continuous Integration(CI) and Continuous Deployment(CD) process. It is their job to design and build the IT infrastructure that takes code from code repositories, tags it for release, builds the project, and deploys it to development, test, production, and any other environments the business may use. One of the key roles of a DevOps engineer is to automate as much of this process as possible so that everything happens behind the scenes with no human intervention. They also set up monitoring tools and create reports to determine when applications need to be refactored or scaled.