Workflow automation
Continuous Integration
The term "Continuous Integration", frequently abbreviated as "CI", refers to the practice of automatically and frequently integrating code changes into a shared repository. It has become the common term for all kinds of workflow automation, somewhat similar to people calling all off-road vehicles "Jeeps". Often it's being referred to as "CI/CD", a contraction of Continuous Integration and "Continuous Delivery".
There are different degrees of workflow automation, which all have their own official term, as specified below. The most common tasks of automation consist of building, testing and deploying one's application.
Continuous Delivery
The term Continuous Delivery involves the practice of automatically testing new code features and deploying the new code to an environment where operations or business people can check the new version of the product. It can be considered one step further than Continuous Integration. When new code is pushed to Git tests will run automatically, the application will be built and then it will be deployed to a server or cluster.
Continuous Delivery allows the developer to test the application on an actual server environment instead of their local machine. It also allows colleagues like other developers, testers and Product Owners to check what's being developed.
Continuous Deployment
The superlative degree of workflow automation is Continuous Deployment. Compared to Continuous Delivery it doesn't only deploy an application to testing and or acceptance environments, the deployment to the production environment is also automated. No build script or manual operations are required, it just deploys once the new feature has been merged.
The big advantage of Continuous Deployment is the minimal overhead. New features will see the light of day very quickly, while the quality isn't compromised. Continuous Deployment workflows can be combined with smart features like a mechanism that triggers a rollback if an exception occurs in the newly created code.