Archi's Academy

GetStarted

GetStarted
Get in touch

Software Development

Technology

Computer Science

Testing

DevOps

What is CI-CD Pipeline?

Traditional Way

  • CI-CD Pipeline provides you an automated workflow of your releases. Assume your developer just created a new feature or fixes few bugs or he pushes some changes. In traditional way, what happens is, your developer will inform your operational team about the changes or the new feature that he created so that they can deploy the new feature on Dev. In case, if you don't have automated tests, then operational team will first tell QA team to test and check the Quality of Code. If everything is fine with code, QA team will give signoff. Then, it is deployed to your next server which may be your stage. The above steps will be repeated again to deploy the next live version on the production servers.

  • As you can see there are various tasks that happen while just deploying the new code to live site. It takes time to deploy which is not good as everyone is using CI/CD Pipeline and you are just stuck at traditional methods. Also, one thing is that for automation deployments or following 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 the help of Jenkins or any other tools like CircleCI, GitLab CI, etc. Now, let's get quick short info about Jenkins as it’s very popular and open source which is also easy to use for beginners.

  • Jenkins is a popular framework that provides automation capabilities with its powerful plugins.

Continuous Integration

  • In CI, we initially discuss the workflow, then the developer pushes it to git repo, and then an automated job or pipeline is triggered. Below steps should be followed:

  • Initially, just build your code (you can use a 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. You can also set required attendees. If 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, that is, it’s temporary.

ci-cd-1.jfif

Continuous Delivery/Deployment

  • This is not a very long process, but it is crucial as it deploys our fresh code to live production environments, which can be very dangerous if something goes wrong with the production.

  • So, to be careful we have 2 types of CD:

1. Continuous Delivery

2. Continuous Deployment

What is the difference between these two?

  • The difference is simple. In Continuous Delivery, we just deploy our artifact to a repo and stop there and wait for a manual intervention before going to live servers.

  • However, in Continuous Deployment, we go one step further, that is, we also deploy our artifact to live servers automatically. Once the developer pushes it to git, then it just goes live to servers. So, we need to be very cautious about this before using Continuous Deployment.

ci-cd-2.png

In a 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 document our Jam Jar and it is directly available in the Shops which is our live site.

I hope my blog was informative and helped you in clearing the thoughts on the CI-CD path.

You can follow me for more interesting topics and leave a like if you like it.

Goodbye have a nice day!

archis-trainee

Lokendar Rathod

Monday, Jul 5, 2021