Automation is the process of using tools, scripts, and other software to perform aspects of software development and operations.
Common automated tasks include:
- Setting up infrastructure
- Log management
DevOps Automation Benefits
Benefits of automation include:
- Faster speed
- Less human error
- Easier standardization
- Cost effectiveness
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
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 Requirement
Continuous delivery and deployment require that continuous integration practices are already being used in the project.
Sources of Bottlenecks
Common sources of bottlenecks in the deployment process include:
- Merging infrequently
- Testing infrequently
- Manually configuring infrastructure and environments.
Continuous testing is the practice of automatically running tests throughout the CI/CD pipeline.