What is CI-CD Pipeline in an easy way?
If you are a developer or from an operational team, You are heard of the CI-CD pipeline nowadays, It’s not only saving time for your team But also very important economically.
What is CI-CD Pipeline?
Traditional way
CI-CD Pipeline provides you an automated workflow of your releases. When your developer just created a feature Or fixes some bugs or anything he pushes, So traditionally what happens developer ping your operational team so they deploy the new feature on Dev and if you don’t have automated tests then operational team tell QA team to test and check the Quality of code and If everything is fine then QA will give signoff then it is deployed to your next server which may be your stage and this things will happen again and next to its lived on your production servers.
As you can see there various task happens while just deploying new code to live site. It takes time to deploy which is not good as everyone using CI/CD Pipeline and you are just stuck at traditional methods. Also, One thing is that For automation deployments or follow this workflow you don’t need to be a DevOps Engineer, You just need a little info on how to automate things and boom! you are ready to go.
Modern way
You can just use automation here with help of Jenkins or any other tools like CircleCI, Gitlab CI, etc.
Now, get a quick look at Jenkins as it’s a very popular and open source easy to use for beginners. If you don’t know about Jenkins its framework provides automation capabilities with its powerful plugins.
So after lots of talks let’s start!
Continuous Integration
In CI we just discuss the workflow first developer push to git repo then an automated job or pipeline is triggered. In the job we provide steps to follow, First thing is that just build your code(you can use Plugin like maven, node, etc.) then just deploy your artifacts (nothing but a bundle of code like a jar, war, or a zip package) into an artifact repo, So you can keep track of versions of codes and all that. Then we need an automated test case that will check the quality of our code. If things go wrong it will notify the developer to check, Also you can set required attendees, Else everything is fine It will deploy to your staging servers. Or else we can use docker here to provide a temporary container and provide an URL to this container remember this is ephemerals i.e. it’s temporary.
Continuous Delivery/Deployment
This is not a very long process, but it is a crucial process as it deploys our fresh code to live production environments. Which can be very dangerous if something goes wrong with the prod.
So to be careful we have Two types of CD.
- Continuous Delivery
- Continuous Deployment
So what is the difference between these two right!
The difference is simply in Continuous Delivery we just deploy our artifact to artifact to a repo and stop there and wait for manual intervention before going to live servers.
But in Continuous Deployment we go one step further we also deploy to live servers automatically, In here Once the developer push to git then it’s just got live to servers. So we need to very cautious about this before using Continuous Deployment.
In the nutshell, It is like a factory of a Jam, which has a Conveyor belt on which our ingredient is placed, Then multiple machines will Package and properly documented our Jamjar and it is directly available in the Shops which is our live site.
I hope you like my article and clear your thoughts on the CI-CD path. I have explained its simplest form.
You can follow me for more interesting topics and leave a clap if you like it.
Goodbye have a nice day!