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
- Example of tools:
- Automatically trigger CI/CD pipelines based on code check in.
- Build & Test Automation
- Start automated build and test, including functional, security and performance tests.
- Example of tools:
- Jenkins
- Circle CI
- Docker
- Selenium
- GitLab
- Maven
- Example of tools:
- Start automated build and test, including functional, security and performance tests.
- 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
- Example of tools:
- Update artifact repository with the latest successful code artifacts or containers for record-keeping and accessibility.
- 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
- Example of tools:
- Deploy application to staging and migrate to production using either a blue/green or canary process.
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:
Data Flow
- Change application source code
- Commit Application Code and Azure Resource Manger(ARM) Template
- Continuous integration triggers application build and unit tests
- Continuous deployment trigger orchestrates deployment of application artifacts with environment-specifics parameters
- Deployment to QA environment
- Deployment to staging environment
- Deployment to production environment
- Application Insights collects and analyses health, performance, and usage data
- Review health, performance and usage information
- 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.