"DevOps" evokes an agile software development approach in an operational environment. Modern technologies, particularly cloud and big data analytics, often embrace DevOps methods. The term was first used to indicate "agile infrastructure." Recently, it has often referred to quick adoption of emerging technology and subsequent integration into production. This course gathers the latest publications to examine the tools for source code control, automated build, automated test, and automated deployment, some of which will be selected by the students in an operational rhythm of Continuous Integration (CI) and Continuous Deployment (CD). This course discusses the basic concepts of DevOps, including its philosophy, workflow, monitoring methods, and tools. Topics include: concepts and vision for DevOps, release/deployment pipelines, automated testing, monitoring production, task evaluation, skills assessment, and tool selection. Students will apply these concepts to see how they can be best implemented to automate development, test, and release practices. Students will work in teams to build functional working models of realized DevOps.
Prior experience in software development in any language is required. Familiarity with software design, development, and architecture techniques is recommended.