Learn about Continuous Integration and Continuous Deployment/Delivery pipelines.
CI/CD is a cornerstone of modern DevOps and is central to automating the software delivery lifecycle. It's made up of two related but distinct concepts. 'Continuous Integration (CI)' is a development practice where developers regularly merge their code changes into a central repository, after which automated builds and tests are run. The primary goals of CI are to find and address bugs quicker, improve software quality, and reduce the time it takes to validate and release new software updates. Every time a developer commits code, a CI server (like Jenkins, GitLab CI, or AWS CodeBuild) automatically builds the application and runs a suite of automated tests (unit tests, integration tests) to ensure the new code doesn't break anything. 'Continuous Delivery/Deployment (CD)' is the next step. Continuous Delivery is the practice of automatically releasing the successfully built and tested code to a repository or a staging environment. It ensures that you can release new changes to your customers quickly and sustainably. Continuous Deployment goes one step further by automatically deploying every change that passes all stages of your production pipeline to the production environment. This automated pipeline removes manual gatekeeping, reduces release risk, and allows for a much faster feedback loop with users.