CI/CD Pipeline Continuous Integration & Continuous Delivery/ Deployment
Wanna know about CI/CD principles? Then you’re at the right place!
Before getting to know about the CI/CD principles we should understand why it came to the field.
Do you know DevOps?
DevOps is an evolution of the Agile Model of software development. It addressed the gap between the developers and the operations team. In DevOps, the development team will submit the application to the operations team for implementation. The operation team will monitor the application and provide relevant feedback to the developers.?
DevOps has 08 phases and for each phase, they are using some specific tools to continue the work. I will list down the phases and the tools they are using in each phase.?
The companies which follow DevOps, release more products and features within a short period. Google, Netflix, Microsoft, Sony, Adobe, Nvidia, and PayPal are some of the examples for that. DevOps reduces the time taken to create and deliver software and it improves the collaboration between the developers and operations team. Also, it reduces the complexity of maintaining the application.?
But, along with all these advantages DevOps had its disadvantages as well. When developers and the operations team are working in a shared repository let's assume one developer developed his code for one month and pushed it to the repository and then all the developers shared their code when they developed their part and the shared repository could be a disaster. Not could be, it WILL be.?
Because of this matter, the operations team cannot see a fully working application because there can be dependency issues and some bugs. So they cannot proceed with their work because at this stage these issues should be fixed by the developers. To solve this issue, CI/CD pipelines came into the stage.
Now you have an idea why CI/CD pipelines came into the picture. So now we can learn the concept of CI/CD Principles.
First, let me introduce you to what is meant by CI/CD.?
CI stands for Continuous Integration and CD stands for Continuous Delivery/Deployment.?
Continuous Integration
Continuous Integration is a development practice of code integration into a shared repository. Each integration is verified by an automated process.? We can see some steps in the CI as follows.?
We have different tools which are designed specifically to complete each stage. Those tools are listed down below.
领英推荐
And we have a special tool that can work together with all the above-mentioned tools which is called Jenkins. So Jenkin will be doing all the above CI processes as an automated process.
So, simply CI means that when the developer commits a change to GitHub, Jenkins will get triggered and it will automatically start doing all the above phases. Let's assume that there was a build error when Jenkins built the application, then it will pass a notification to the relevant developer who committed the change and he should fix the issue to continue the process. If the build stage is completed successfully then only Jenkins moves into the next phase. Likewise, Jenkins will move forward with the CI phases while fixing all the issues and once we complete the last phase there won’t be any issues left with the changes they have made. Because all the issues will be resolved through the CI process.?
Since you have got an idea about the CI, let me tell you about the CD.?
Continuous Delivery/ Deployment
CD is like an extension of CI. CD contains several stages as follows.
Development Environment is responsible about code updating and commits. Testing Environment, identify and fix bugs. Staging environment is an exact replica of the production environment because it is almost 99% similar to the product in the production environment because almost all issues have been identified and fixed when its at the staging environment. When the application pushed to the production environment, that means the code on live. These are the stages you can see in the CD.?
Now you may wonder what is the difference between Continuous Delivery and Continuous Deployment. Yeah those two are almost similar but has a small difference.?
In the CD stage there are lot of tasks to complete. If we assume a part from that there will be some phases as follows.
In Continuous Delivery, the process of deploying to production from the staging phase can be done manually. It could depend on the company’s business goals. It could be a simple button-click task, which they have scheduled to perform whenever they want.?
But in Continuous Deployment, there will be no manual tasks going on. It has the same stages as in the continuous delivery but the only difference is its fully automated.?
CD process also could be done by the Jenkins tool. As a summary, I could say that, when a developer pushes their source code to the main branch the Jenkins tool will get triggered and it will automatically do these CI/CD processes. This is known as a CI/CD Pipeline. Normally a pure CI/CD concept will be fully automated but when it comes to Continuous Delivery it will be different from the normal flow.?
I think you all might have gotten a clear understanding of the CI/CD principles. Until I come up with a new topic, Stay curious!
Authored By: Chamali Wedage
Student at University of Moratuwa
1 个月Thanks for your CLEAR Explanation! ??
--
1 个月Insightful?
Computer Science Undergraduate | University Of Jaffna | IEEEian | IEEE CIS Chapter Vice Chair | IEEE Sri Lanka Section Student Activity Committee Member | IEEE Student Branch ExCom Member | Technical Support Officer
1 个月Good to know!
Attended University of Kelaniya Sri Lanka
1 个月Insightful