CI/CD Delivery
INFORMATION
CI/CD stands for Continuous Integration (CI) and Continuous Deployment or Continuous Delivery (CD). The basics are quite similar, however, there are fundamental differences that define the key recipients and the results to achieve. Of primary importance here is the automation of engineers’ repetitive work and reducing the need to handle tedious and detailed processes. It is a huge important aspect for DevOps, and is essential to software development using Agile methodologies.
CI/CD is essential to software development using Agile methodologies, which recommends the use of automated testing to get working software into the hands of real users as quickly as possible. This allows stakeholders and users to access newly created features and provide feedback as soon as possible, so features can be iteratively improved upon.
Overview
Within this section you will find information about what CI/CD is all about, the difference between CD being 'Continuous Delivery' and 'Continuous Deployment', and how it can be applied within your organisation.
Continuous Integration (CI).
When assessing CI there is a need to ensure that quality assurance is built into the process, theefore this can be greatly helped by embedding the following decision steps into your CI process:
Version Management
Development Stategy
Delivery Strategy
Application Version Strategy
Build an Automation Tool
Create and implement unit tests
Automatically build a test environment
Automatically test your business-critical software functions/features
Create an acceptance environment
Backup process for you environments.
Continuous Deployment or Continuous Delivery (CD)
The main steps that you get within CD are:
Development
Application Test
Integration Test
Acceptance Test
Production release.
The only real difference between Continuous Deployment and Continuous Delivery is that with Continuous Deployment is that the process of releasing from Acceptance Test to Production is a manual process, whereas, with Continuous Deployment it is an automated process.
Benefits of Implementing a CI/CD
The benefits of implementing CI/CD within your organisation are:
Applications potentially reach the customer earlier
Able to obtain quicker feedback through CI tools
Greater visibility
Earlier bug/defect detection.
Tools for Your CI/CD Process
To help ensure a faster software delivery, the thing to help the successful implementation of a CI/CD Pipeline are:
Open-Source or Proprietary tools (i.e. Jenkins)
Cloud or Self-Hosting Services.
Implementing a CI/CD
The process of implementing a successful CI/CD are:
Assess an accurate picture of your baseline
Structure the implementation into measurable phases
Define roles and responsibilities for each phase.
Challenges of Implementing a CI/CD
The process of setting up a successful CI/CD does not come without its challenges, especially with existing developments and release environments in a large enterprise, which are:
When making lots of small changes on huge applications
Automating things for the sake of automation
Access to limited environment
Release Management
Managing multiple custom pipelines
Onership
Security.
Downloadable reference material being added in due course.
Downloadable reference material being added in due course.
Downloadable reference material being added in due course.