Why CI/CD? How was a life without CI/CD & how is it now?
Published: 2022-05-16 14:58:10

## Introduction:
I'm planning to publish a series of article on CI/CD including the CI/CD basics, life with CI/CD, why CI/CD is important, how to implement CI/CD, and a guided tutorial to help you create your own pipeline. In this write-up, I will cover CI/CD basics, life with CI/CD and how is it now. 

## An overview to CI/CD
**As a software developer what would you like to achieve with your development?** Obviously a `timely delivery of your product` or put simply, `early time to market.`


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/je3arspnfas92mjn42z6.png)
 
**Speed** is the key to modern software development. All traditional **waterfall** software development has largely been replaced by rapid **iterative** techniques that support development and release. These techniques go by several names, including `continuous integration, continuous delivery, and continuous deployment.`

Even though each technique has slight differences, the importance placed on continuous iteration has drastically altered the way software is developed. By reducing risk and cost, businesses can `quickly get products to market` and refine them over time in a cost-effective manner.

In addition, such iterations require well-designed and active development pipelines that support multiple staged iterations simultaneously and keep entire development teams busy.
Once a build is deployed, the next build undergoes testing, while the very latest build is being coded.

## Life Without Devops/CICD:

Let's take an example and look at a life of developers who aren't using CI/CD as SDLC.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yi7hun17amw6i2o3tgg7.png)

e.g., There's a team comprise of **10 members** and each is given a model to work on for app development. After development they generate a zip file and upload to aws environment **manually** and then while testing the environment they detect a bug and to address it they decide to write a test case. They wrote a test case and then executed it manually. It's done and again they generate a zip file and upload to aws environment **manually** and again while testing the environment they detect a bug and cycle keep on continue. You can see it's such a `manual and slow process `which a developer feel and some of them what they do, they **skip** writing test cases and test cases never get executed to. so, the developers feeling helpless, productivity also reduces so, see how the life has become for developer. 

## Life With Devops/CICD:
Now let's switch to the life of developer with DevOps. Developer push the code to source control service and there are automated build and test phases and then deployment also happen very easily. Now the life of developer is eased up right.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jncgrx3tyvaswt6mhw2e.png)

## Why CI/CD?
Both `CI and CD` form the backbone of the modern DevOps environment. You can think of `CI/CD` processes as like a **software development lifecycle.**


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hsha59w1t1o37o1eq6qh.png)

The concept of CI/CD enables enterprises to ship software quickly and effectively. By implementing CI/CD, products can reach the market faster than ever before, releasing code continuously into production, and ensuring bugfixes and new features are released using the most effective delivery system. 

> **Extends beyond test automation.**
A quality assurance engineer writes, executes and automates various sorts of tests to inform development teams whether a software build succeeds or fails using automated testing frameworks. During each sprint, functionality tests are created and combined into an application-wide regression test. I am sure you can see that this goes far beyond the above mentioned testing, but as a fast and convenient solution of automated processes.

> **Allows deploying code frequently.**
For enterprises that `wish to upgrade` their apps on a regular basis and demand a reliable delivery method, CI/CD pipelines are the best option. Production is the process of organizing builds, performing tests, and automating deployments in order to distribute code changes. As soon as it is established, a team can focus more on improving apps rather than the technical details of transporting them to computing environments. The result may be that developers are now more likely to push updates.

> **Enables to get the continuous improvement.**
Continuous integration and continuous delivery is a `never-ending cycle` of development, testing, and deployment. When code is tested, developers can respond quickly to feedback and upgrade the code as needed. Each member of the team is capable of changing code and solving any issues that may arise. Due to the fact that this cycle can continue infinitely, developers can improve the original code in the most efficient manner possible.

> **Reduces time to deployment.**
CI/CD pipelines allow for substantially faster time to market for new product features, which leads to happier customers and less burden on development.

## DevOps service providers:
Among the most used and popular DevOps services, namely `Amazon Web Services, Azure DevOps services, and Google Cloud services`, there is a battle going on in the market. Based on Statista analytics, **Amazon Web Services**, `the most prominent provider in the cloud computing industry`, held 32% of the total market in the 3rd quarter of 2021. Microsoft Azure comes in 2nd place with a 21% market share, followed by Google Cloud with an 8%. Therefore, in the 3rd quarter of 2021, these three cloud suppliers are undoubtedly leading within the statistics.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n40xy1n0yypbjz33wl15.png)

**Wanna hear more? Just wait for my next write up on this topic... Till then Happy learning & Clouding!**

## Connect with me:
[LinkedIn](https://www.linkedin.com/in/warda-liaqat/)
[Instagram](instagram.com/warda_Liaqat01)
[Twitter](https://twitter.com/CreativityWarda)