CSE 403 Topic: DevOps

DevOps is a software development methodology that emphasizes short iteration cycles and frequently deploying code. Some core technologies that enable DevOps are continuous integration (CI) and continuous delivery (CD). DevOps also emphasizes that software engineers should be responsible for their code throughout its lifecycle — not just writing the code, but deploying, bug fixing, and maintenance, too.

Continuous integration - automated tests that run on each commit to a software project - and continuous deployment/delivery - releasing software based on automated processes gated by CI - are common practice in industry and open-source development.

There are a number of CI/CD tools that integrate with code repositories like GitHub. Here are a few examples:

CI testing is nearly universally considered to be a best practice in software engineering today - even if tests are expensive, running them on a server somewhere after code is checked in only costs machine time, and developers will eventually be alerted if their code broke the tests.

Interesting resources:

Project ideas: