What are CI/CD pipelines?

In relation to software engineering, a CI/CD pipeline is a continuous integration and continuous deployment chain of processes designed to avoid waste and streamline the development process. It includes everything from development to testing to releasing the software.


There are various tools and methodologies that can be used in a CI/CD pipeline. For example a pipeline can include the following:

  • Source Code Control
    • Automatically trigger CI/CD pipelines based on code check in.
      • Example of tools:
        • git
        • GitLab
        • GitHub
  • Build & Test Automation
    • Start automated build and test, including functional, security and performance tests.
      • Example of tools:
        • Jenkins
        • Circle CI
        • Docker
        • Selenium
        • GitLab
        • Maven
  • Release Automation
    • Update artifact repository with the latest successful code artifacts or containers for record-keeping and accessibility.
      • Example of tools:
        • Docker
        • Puppet
        • Chef
        • Ansible
  • Deploy to staging & Production
    • Deploy application to staging and migrate to production using either a blue/green or canary process.
      • Example of tools:
        • Microsoft Azure
        • Amazon AWS
        • Google Cloud
        • Physical datacenter
        • Virtual
        • OpenStack

There’s many more different tools and ways to set up a particular CI/CD pipeline. It depends on which tools an organization is already using or if setting up a new pipeline which every tools fit your use case.


For example a CI/CD pipeline for Azure VMs according to Microsoft:

Architecture

Data Flow

  1. Change application source code
  2. Commit Application Code and Azure Resource Manger(ARM) Template
  3. Continuous integration triggers application build and unit tests
  4. Continuous deployment trigger orchestrates deployment of application artifacts with environment-specifics parameters
  5. Deployment to QA environment
  6. Deployment to staging environment
  7. Deployment to production environment
  8. Application Insights collects and analyses health, performance, and usage data
  9. Review health, performance and usage information
  10. Update backlog item

Image galleries

Here’s a really neat custom feature we added – galleries:


Image carousels

Here’s another gallery with only one column, which creates a carousel slide-show instead.