Automation is the process of using tools, scripts, and other software to perform aspects of software development and operations.
Common automated tasks include:
Benefits of automation include:
Continuous Integration is the practice of frequently merging changes into a single code repository. Before being merged, the code is automatically built and tested by automated tools.
Continuous delivery is the process of automatically preparing a project to be deployed to a production environment. It usually involves the code being tested and built on an intermediary environment.
Feature Flags are a practice of using conditional statements to prevent users from accessing certain features. Once the feature is complete, the condition can be changed and the feature enabled.
CI uses Trunk-based Development where small changes are frequently merged to a main source repository.
Feature Branch Development uses long-lived branches which contain many changes for an entire new feature in a project. The “feature branch” is only merged once the development of the feature is complete.
Continuous delivery and deployment require that continuous integration practices are already being used in the project.
Common sources of bottlenecks in the deployment process include:
Continuous testing is the practice of automatically running tests throughout the CI/CD pipeline.