Codecademy Logo

DevOps Processes

Print Cheatsheet

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.

CI Server Requirements

Implementing CI requires that a CI server is set up to monitor the repository, automatically build the project, and run automated tests.

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.

Some of the most popular tools for CI are Jenkins, Github Actions, and CircleCI. CI tools run on a server which automatically builds and tests code once a merge into the code repository is detected.

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.

Continuous Deployment

Continuous deployment is the automatic process of deploying a project to the production environment after it has been tested on testing and staging environments.

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.

Containers in DevOps

Containers provide a standardized way of packaging and running an application across different environments. These containers can be seamlessly used across continuous integration, deployment, and delivery.

Continuous Delivery and Deployment Requirement

Continuous delivery and deployment require that continuous integration practices are already being used in the project.

Dark Launching

Dark launching is a practice of continuous deployment where new features are only accessible to a subset of users before being fully released later on. This is accomplished through the use of feature flags, but with conditions based on the type of user. The group of users able to access the features can be gradually expanded until it is fully released.