DevOps Introduction

DevOps and CD&CI

rahul kashyap
3 min readApr 12, 2021

Traditional Software Development Lifecycle.

Before we had CI (continues integration) and CD (continues deployment), companies used to publish their products though traditional cycles without CI and CD. This cycle worked as the following:

Programmers write code and maintain it in a repository (GitLab, Bitbucket etc.). Then the code gets distributed to a Integration team where they put all the programmer’s code into one main repository(usually called master) for deployment. This code then goes to a operations team. The operations team, gets the code to deploy it in a test environment. Then the quality control team will test the code within the test environment. If they find any bugs or problems, they report back to the programmers to repeat all the steps again. If the quality is up to standard then the Operations team deploys it to production. This whole process can be called a cycle.

Visual Representation of the cycle:

Programmers -> Integration Team -> Operations Team -> Quality Control -> Operations Team -> Deployed

Cons of the traditional deployment cycle.

  • The integration team had to manually merge all the code that the programmers wrote.
  • There is a long feedback process cycle and the programmers would have moved to writing new features by then.
  • Minor features may take just as long as major features.
  • Long production cycle.

Modern Software Development Lifecycle.

Now that we know the cons regarding the traditional cycle we can introduce CI and CD to see how the modern deployment cycles changed the traditional cycles and made it easier for everyone.

Introducing CI to the cycle

Instead of the programmers working in different repositories. Now programmers work in the same repository in different branched. Here they are able to merge their branch to the main brand several times a day. This takes always the integration team. The developers integrate the code themselves because they know it better than anyone. Next, we can introduce a build server. The build server combines and builds the code frequently wherever the programmers merger their code to the main branch. This is all done automatically. If there is an error the server will notify the developer who wrote that piece of code. The server will also have automated tests which checks for common errors certain scenarios and things such as browser support. This is all done in a test environment (test environment within the build server) first which then goes to the operations team.

Introducing CD to the cycle

The operations team gets the complied and packaged code form the server and tests it further though automated scripts which then is deployed to a test environment (test environment for deployment). Within the test environment. The quality control team tests the code and lets the programmers know if there are any changes needed to be made. Note that there will be minor bugs as the code has already been tested though the build server. The programmers can fix the bug and commit to the master branch. Since everything is automatic now it directly goes to the testing environment (test environment for deployment) and the quality control team can see if the bug was fixed as soon as the programmers commit changes. This saves us a lot of time. Once everything is stable, the code is pushed for the public to try.

Note: The testing phase in CD can also be automatic. It all depends on what the company is doing or what you personally want to do. As CD evolves, the more automated the process gets.

How does everything connect to DevOps?

When we introduced CI into the cycle we were basically working in a development scenario where the code written by the programmers was integrated and managed. When we introduced CD into the cycle, we basically worked as a operations person to help test and deploy the code written. Instead of having a development and operations personnel we have DevOps. This new way of merging development and operations is called DevOps. DevOps main objective is to shorten the development and deployment cycles though CI and CD.

--

--