Codecademy Logo

CI/CD/CD Pipelines

DevOps Automation

Automation is the process of using tools, scripts, and other software to perform aspects of software development and operations.

Common automated tasks include:

  1. Setting up infrastructure
  2. CI/CD
  3. Testing
  4. Monitoring
  5. Log management

DevOps Automation Benefits

Benefits of automation include:

  1. Faster speed
  2. Less human error
  3. Easier standardization
  4. Flexibility
  5. Cost effectiveness

Continuous Integration

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

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

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.

Trunk-based Development

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

Continuous testing is the practice of automatically running tests throughout the CI/CD pipeline.

Learn more on Codecademy