Learn About Continuous Integration and Continuous Delivery
After completing this unit, you’ll be able to:
- Explain and compare continuous integration and continuous delivery.
- Name some benefits of continuous delivery.
If you haven’t taken the Heroku Enterprise Basics module, we highly recommend completing it before you start this module.
How Are Apps Developed Continuously?
Modern development practices enable teams to build and deploy the most sophisticated, engaging apps on the market. These practices include continuous integration and continuous deployment. These methods allow for short release cycles, automation, and a direct connection to the source code repository. They enable teams to push incremental code updates to production quickly and safely. When these methods are used correctly, bugs and issues show up earlier in the app lifecycle, which results in faster, higher-quality product releases.
Continuous integration allows teams to detect problems early. In complex products, changes that seem simple and self-contained can produce unintended consequences. If developers are working in parallel on multiple, isolated code branches, merging changes to a common
main branch can have unpredictable results. These results often lead to multiple rounds of regression testing and bug fixes.
Continuous integration (CI) allows developers to integrate every code change on every commit into the
main branch regularly. With CI, tests run against disposable apps, validating that there are no bugs with the merged code.
Continuous delivery ensures that you can rapidly and safely deploy code to production by manually pushing every change to a production-like environment (staging). Because every change is delivered to staging, you can deploy the application to production with a push of a button when the time is right.
The additional step of pushing code to staging is what makes continuous integration different from continuous delivery. Having a green (successful) build with CI doesn't mean your code is production ready. Your code is ready only after you’ve pushed and tested in a staging app that matches production.
Now that you know more about these concepts, let’s learn about the features available on the Heroku platform that support them.