Integrating, delivering, and deploying
In this chapter, we've been looking at using deployment systems that encourage agile development, generally facilitating safe delivery into production environments of code updates in near real time. Variations in how deployments can be structured and/or understood, which usually depend on factors such as team size and management structure, are common. A brief summary of each of the three typical categories, continuous integration, continuous delivery, and continuous deployment, will be provided in the following sections. Finally, we'll set up a build/deploy system for a Node application using Jenkins, a CI server, configured to automatically deploy changes to a Heroku server.
Continuous integration
Continuous integration is the process of merging changes into a master branch continuously (typically, several times a day). The goal of CI is to make errors impatient and noisy, arriving early and failing loudly, rather than emerging later from much larger...