IT Focus Area: digital
September 27, 2018
Continuous Integration and Continuous Delivery: Beyond the Conveyor Belt Mentality
Before we get into the nitty-gritty workings of the coined conveyor-belt-like concept of Continuous Integration and Continuous Delivery (CI/CD), it’s important to understand what they are and what they can offer.
CI/CD are fundamentals of a DevOps workflow. InfoWorld defines CI as a set of practices that drive development teams to implement small changes and check in code to version control repositories frequently. This practice helps development teams integrate and validate code changes.
InfoWorld outlines continuous delivery (CD) that automates the delivery of applications to selected infrastructure environments. It picks up where continuous integration leaves off and performs the necessary service calls to web servers, databases, and the like that may need to perform an action in order for the application to deploy properly.
Organizations that are implementing CI/CD methodologies on cloud environments are increasing their use of containers ― another buzzword these days. Why? High-performing organizations are adopting containerization solutions to address bottlenecks and inefficiencies in their product development and maintenance pipeline. To ensure long-term success, containerization implementation must be developed within the context of an organization’s technology, operational, and organizational ecosystem.
Some key advantages of containerization include:
- Efficiency: Improves scalability and lowers costs to make more effective use of your data center investments
- Portability: Lets you develop, deploy, move and test on almost any architecture, without tedious reconfiguration
- Cost: Reduces your reliance on traditional hypervisors and virtual machines
- Cloud-native: Encourages micro services-based architecture development, which is increasingly characteristic of cloud-native applications
- Agility: Accelerates development cycles and decreases deployment time
Many DevOps practitioners are using the conveyor belt analogy when explaining continuous integration and continuous deployment methodologies. However, to implement effectively, developers must fine-tune the deployment methods to ensure a seamless, automated strategy.
Compared to a conveyor belt, CI/CD is actually more flexible. Consider a case where a developer needs to change a process to improve efficiency or reduce error. It wouldn’t be as difficult to deploy the change compared to the roadblocks that you’d run into when trying to implement a change to an assembly line. Just imagine the reengineering that you’d have to do to make one small change, like speeding up the belt speed. It becomes a little more challenging, but in the CI/CD case, it’s much easier.
Have you ever counted how many software applications your company has?
According to a recent report by SkyHigh, a medium-sized company has over 85 software applications to keep the business running. Even more alarming, they found that a company with 50,000+ employees have roughly 788 software applications running. Can you image being responsible for managing and deploying code and ensuring that the code from one app talks to the 787 remaining apps?
Management and developers are feeling the pressure. What if one of those apps drives 90 percent of your sales and there’s a code malfunction and the app keeps crashing? It’s as if the conveyor belt has a jam and production came to a complete halt.
Real-world Use Case
Many companies have custom applications specific to their audience. For instance, a retailer might have an application specific to their customers, where users could view inventory, make purchases and even ask questions about sizing or product specifications via a chatbot. But they might also have an internal application that’s used by folks on the floor selling or supply managers. And, wait, they might also have an application that their human resources department heads up that acts as a portal for all things employee relations ― such as requesting time off, viewing a work schedule, a benefits manager, and the list goes on.
With CI/CD, the brains behind the app architecture can easily perform code updates, when (not if) there’s a need. This might save you from a million frustrated customers, if for example, they were mid-checkout for an expiring coupon code and the app crashed. Or, it could save you from a few hundred upset employees if say their PTO requests didn’t process due to an integration mishap.
3 Benefits of CI/CD
There are three universal benefits of CI/CD that span the enterprise:
- Improves time-to-market while reducing downtime: Organizations of all industries and sizes find that continuous integration and continuous deployments allow them to build/update custom applications much faster. Developers can split tests and build processes over various machines.
Your continuous integration and version control systems can communicate with one another and can even identify code variation, dramatically reducing the time it takes to review and approve changes before deployment.
- Improves quality: There’s far less room for error because CI/CD is a methodology that allows developers to work on smaller amounts of code at a time. Not only that, but they are less likely updating the same code, meaning they won’t have to perform a code merge.
- Find what works and repeat: With pressures to stay ahead of the competition through engaging digital experiences, when you find a suit that fits, rinse, wash and repeat. With CI/CD, your developers can sleep soundly knowing that once they build a repeatable process, it’s tested before it’s deployed.
Things to Avoid
Before you implement a CI/CD strategy, there are a couple things to bear in mind. First, work forward not backward. Automating processes in the wrong order will only cause more issues ― and work ― down the road.
Just as important, have metrics in place so you can keep track of progress and success of an implementation. This ties back to the third benefit above because without a measurement to see what’s working, you can’t implement the repeat process to other areas.
There’s no surprise that C-level executives are turning their focus to the heavy-hitting benefits of CI/CD because it improves time-to-market, reduces downtime, improves quality and can be easily replicated for other application projects.
Find out where to start by checking out our Virtual Panel Discussion.