An Introductory Guide to DevOps LifeCycle

Jatin Mittal
DevOps Dudes
Published in
6 min readAug 28, 2020

What is DevOps?

DevOps is not a programming language, it’s not a tool, it’s not a technology…….then what DevOps is?

It is a combination of Development and Operations or It’s a collective responsibility of the developers and operators.

In other words: It’s a concept to use in an application life cycle management so that the development and operation team can sync and get things to production very smoothy.
And, In a different way, I would say it’s a mindset, the way how you take the product to production so that millions of people can use it.
As an organization, It’s a process to build the product from an initial stage to a production level.

Before jumping to lifecycle, let’s have a look at the different responsibilities of developers and operators:

Developers:

1- Write code
2- Design features
3- Build code
4- Test application

Operators:

1- Deployment
2- Maintain Servers
3- Scale infrastructure
4- Monitoring
5- Security
6- Backups

Why do we need DevOps?

Developer | Operator

As I’ve told you, the Developer is responsible only for the code and the operator is for deployment. Here, In the diagram developer has shared the code to the operator to deploy on the production environment but after deployment, it didn’t work out because of some dependency error or maybe some server misconfiguration. And, that same code was tested on the Dev environment and working fine. how to avoid such errors???

Now, DevOps comes into the picture!!

As I’ve already explained, it’s a union of effort from Developers and Operators. It integrates development and operation teams in order to improve collaboration and productivity by automating the infrastructure and workflows.

How does DevOps LifeCycle work?

The DevOps lifecycle comprises different stages. Every stage has its own responsibility.

These are the 5 continuous phases that complete the Cycle.

1- Development
2- Testing
3- Integration
4- Deployment
5- Monitoring

DevOps LifeCycle Flow

As you’re clear with the diagram that explains the flow of DevOps LifeCycle Phases, each phase has been further divided into multiple steps.

Let me explain all the steps of this lifeCycle!

DevOps LifeCycle Steps

As you see in the diagram, all the steps are connected to each other in a loop that’s why it’s called a lifeCycle.

Plan: This is the first step of the Development phase. In this phase, the first thing is to make a plan about what type of application or feature you’re going to build. Make the flow chart, sequence diagram, and rough architecture. Divide the requirements into multiple sub-tasks. Write a document about the languages or frameworks you’re going to use in the application. There are a couple of popular tools that are used in this phase for documentation like Confluence, JIRA, Trello, etc.

Code: Coding is also a part of the Development phase. Once you’re sure about the planning then you can start writing the code. You can maintain different versions of your code by using any version control tool like Git, Mercurial, etc.

Build: It’s a part of the Continous Testing phase and it comes when you’re done with the development. In this phase, you make a build of the application codebase according to the framework which is used. You can use tools like Apache Maven for java based application, Gradle for other languages, or any other tools you prefer. Once the code is built successfully, you can move to the next part of this phase.

Test: This is the heart of your application. In this phase, people do continuous testing of your application and report bugs. You then reiterate over your application multiple times to make it bug-free. There are a couple of automation testing tools like selenium, JUnit, etc. Automation testing can save you a lot of time.

Integrate: Integration is the key to a DevOps LifeCycle. In this phase, your build is ready for deployment into the production environment. This can be a short Script that contains a set of rules you define to make changes in your application frequently. This may be on a daily or weekly basis.
It includes the way of making builds of your application codebase and it can be different for Front-End, Back-End, Dockers, etc. It also allows checking the guidelines of languages or frameworks so that you can maintain the standard of code quality. Also, You can define steps in order to deploy the same codebase on multiple servers.

Deploy: This is a part of the Deployment phase. Once you get the green signal from Integration, you deploy the application codebase to the production environment.

Note: Make sure you deploy in such a way that high traffic on the website should not be affected by the deployment.

There are a couple of tools that help in achieving Continous Deployment like Ansible, Puppet, Chef, AWS CodeDeploy. These types of tools help with the consistency of deployments to all environments like development, staging, and production. It reduces the chances of errors and makes your application easy to run on different servers.

Operate: This also comes in the Deployment phase. You do the operations on your application that was deployed.
Operations can be related to the configuration of the hosted website, Infra scaling up automatically or not with the traffic loads, etc.

As I’ve explained about Build, Deploy, and Operate phases are part of Continuous Integration and Continuous Deployment. Now let’s talk more about these two Continuous things.

Continuous integration is a bridge of Code and Build phases of the DevOps LifeCycle. It’s an automated process to build and deploy changes on development or staging environment. By this, developers can test their changes regularly and merge at a centralized place so that you could avoid the conflicts and deploy it on production in one go.

Continuous Deployment is the next version of Continous integration. Once your code changes pass all the checks (test cases, code guidelines, etc.), the build will be deployed automatically on the production environment.

Jenkins is one of the most popular CI/CD tools people use. It can be integrated from any version control tools like Git, Mercurial, Maven, etc. It provides services like Code Build Management, Software Testing, and Continuous Integration as well as Continuous Delivery, or Deployment.

Monitor: This is the last and the important phase of DevOps Lifecycle. In this phase, you monitor the performance of your application. You check the server configuration of the application as per the client’s requirements and resolve errors like low memory, less CPU, server crashing, less throughput, etc. This helps you to monitor the health checks of your servers or the services that are used in the applications.
There are a couple of tools that are used to check the performance of the application like Splunk, Nagios, etc. These tools help you to reduce the IT costs, increase the durability of the application, make more reliable products. All the errors or bugs are reported by this phase to the Development phase.

These stages help you to achieve the desired products in a short time. That’s how DevOps Lifecycle works!

All the big companies or startups follow this cycle to achieve their goals or develop their product in a short time and in an efficient way. They do have a sperate DevOps team that is responsible for this.

Now, let’s look at the benefits of following this Life Cycle:

1- Automation
2- Better delivery
3- Faster time to production
4- Better Collaboration
5- More focus on business
6- Increase deployment frequency
7- Increase productivity
8- Less maintenance

Thanks for reading!
If you enjoyed this blog, follow on Medium for more content. If you’ve any feedback or suggestions, leave it in the comments section and I’ll definitely try to reach you.

--

--

Jatin Mittal
DevOps Dudes

Cloud Software Architect | Engineer | Fascinated by reading and writing technical blogs