Hola, being a software developer, you must be familiar with the term CI/CD, but do you know what does it mean? As defined in Wikipedia, CI/CD is referred to as the combined practices of continuous integration and continuous delivery and/or continuous deployment.
Today most of the organizations are adopting Agile and follow sprints. Sprint includes tickets and developer are required to write codes to resolve the issue of those tickets. Sometimes we need to HotFix some bugs on production which are not part of tickets for that we also need to write codes and deploy them as well. You will be surprised to know that Amazon’s software engineers are deploying code every 11.7 seconds on average with almost zero downtime, on the other hand, Netflix developers are deploying code thousands of times a day.
CI stands for Continuous Integration and CD stands for Continuous Deployment. Let’s have a look in detail.
1.Continuous Integration (CI):
As word describe CI integrate code into a shared repository several times a day. With each branch push on shared repository branches, i.e., “git push…. “this will check and verify by an automated Test and build, allowing development teams to identify problems early before code is going to deploy on the production server.
Let assume what if we are performing code integration regularly, by doing this, we can detect errors/bugs more quickly, and It’s too easy to find the code which causes issue/error.
CI work-flow consists of three different stages:
2.Continuous Deployment (CD):
Deployment plays a major role in SDLC; word “deployment” hurts because every time we perform deployment, the stability of the application is at risk, that’s the reason we are keeping distance between deployments.
Generally the issue we face on the above case is if we deploy 10 changes on production and out of 10, 9 is working fine and 1 is having some minor bug, so in this case, we need to rollback all the 10 changes, and after fixing it, we are required to deploy again. Even if the changes are made by a dev team of 50 members then troubleshooting for bug code is also a headache.
As a solution of the above approach is Continuous Delivery, the CD is having the ability to get all types of changes such as new features, configuration changes and fix bugs into production, without affecting application stability and live users operations. That’s cool, isn’t it! CD ensures that your code is always production-ready!
There are lots of tools available to CI/CD, so far hopefully now you have a better idea of these terms and their role as well. What you need to take care of is, ensure your existing development workflow is modernized and take this consideration in mind when it comes to working on upcoming projects. I would like to recommend you to pick up a CI/CD tool and introduce it to one of your existing projects or create a sample project with CI/CD. Many of the above tools are free for trial, and you can take advantage of those tools.