What is CI/CD?
CI and CD are some of the most common abbreviations with hundreds of different meanings. Notwithstanding, CI/CD in software development refers to specific DevOps practices that are becoming very popular in the systems development life cycle (SDLC).
Continuous Integration (CI) refers to building, updating, testing, and merging code into an application codebase seamlessly. CI is heavily reliant on automation. However, the CI system ensures that code from different sources is largely free of errors.
In the case of CD, there are two terms that fit the abbreviation.
In Continuous Delivery (CD), code is released more frequently. Developers’ code changes are put through CI and automated testing pipelines. Once automated testing is successfully completed, the build is validated and ready for release.
Continuous Deployment (the other CD!) also follows the same pattern. Every code change/update that passes testing and becomes a validated build is deployed to production for customers/consumers.
These practices have a high dependency on test automation and process automation. Ideally, there is very little manual intervention.
What is Delivery Automation?
Delivery automation refers to the total encapsulation of CI/CD practices.
Continuous Integration, Delivery & Deployment make up the fundamental pillars of delivery automation.
CI/CD is almost a completely automated process from code to customer.
In delivery automation’s truest sense, the only manual steps in the development lifecycle are writing and debugging code.
Some benefits of Delivery Automation.
A lot of the benefits of CI/CD are not just for businesses that implement these DevOps practices.
Customers also get good value from early release testing. And they get the option to sample/preview the latest tech offerings.
Several industries where customers have realized notable
benefits of CI/CD
Entertainment → CI/CD practices have made this field highly competitive. Amazon, Netflix, Hulu, and Disney are all vying for market share by providing cutting edge streaming services.
Their customers win big because of the competition. Fees for top streaming services can be as low as £5.99 per month.
Retail Amazon, eBay, and the online retail industry have revamped retail. They arguably made the adjustment to the craziness of 2020 even more convenient during a pandemic.
You can get anything from foodstuff to car parts delivered to your home without a hitch and the wait between order and delivery keeps getting reduced.
In the telecoms industry, mobile phones have become supercomputers. They have even blurred the lines between amateur or professional photo and videography.
More than a dozen screen features including TV shows and cinematic movies have been shot
entirely on a phone.
The latest Samsung Galaxy S20 camera technology can retroactively optimize photographs. Customers are finding that their old photos are automatically sharpened when viewed from their new phones.
Banking/Fintech has been revolutionized in the ways that financial activity can be conducted.
For example, Curve is a banking/fintech offering that allows customers to access all their cards via a single card and pin combination. You can switch payment options after the fact and move past purchases from one card to another.
At the time of writing, 1.4M people have swapped their once bulky wallets for Curve.
Customers now also benefit from access to a vast array of digital financial services from their bank’s app.
All these niceties of daily life feature new and updated tech services that are deployed to the customer with increasing regularity. It’s all available thanks to a CI/CD DevOps model.
Key best practices to follow for delivering CI/CD benefits to customers.
How do you ensure your customers benefit if you implement CI/CD and Delivery automation?
There are two key aspects of CI/CD practices that will always be of great benefit to customers.
First, prioritize continuous deployment.
It has already been said that this allows customers to have the first samplings of exciting new tech. This also benefits the business and DevOps because of the feedback from customers.
Second, bind customer feedback loops into CI/CD processes.
One of the great advantages of continuous deployment is that you quickly gather customer feedback on new releases.
This will quickly alert you if the release has done well or should get rolled back.
Technologies that make CI/CD work well
There is a great variety of tools available to build a robust CI/CD practice.
Tools like Jenkins, Bamboo, CircleCI, and TeamCity are top choices when it comes to CI.
For automated testing, there’s Selenium, Soap UI & PyTest.
For release management, there’s JIRA, Trello, Basecamp.
For continuous deployment, XL Deploy, Octopus Deploy & Juju.
A lot of the tools involved are plug & play, for example, Business Intelligence (BI) tools for logging and monitoring like Dynatrace, or integration tools like Cyclr.
There are more considerations that have a bearing on CI/CD practices. For example, depending on the product or service being built, database management or business intelligence tools might be required.
Here are some typical SDLC tool considerations:
- Software build tools
- Version control tools
- Continuous integration tools
- Application lifecycle management tools
- Automated Testing tools
- Deployment tools
- Configuration management tools
- Artifact management tools
- Communication & ChatOps tools
- Knowledge management tools
- Orchestration & Scheduling tools
- IaaS tools/Cloud tools
Delivering the right thing consistently
Continuous deployment enables constant customer feedback loops. It makes sense to employ customer feedback to improve software delivery.
This is important because the customer is the ultimate end user. They have the final say on whether the software delivery was useful or not.
As Brian Dawson of CloudBees says,
“We’re finding out from the business that even when we get the software out the door faster we haven’t necessarily ensured that we’ve delivered the right thing and delivered value.”
The customer is the final stakeholder. Integrating their feedback is invaluable. And it’s one of CI/CD’s best ways of consistently delivering the right thing to end-users.