All you need to know about DevOps...

Dipanshu Torawane - Mar 9 '22 - - Dev Community

Software Development Life Cycle

Introduction to DevOps

DevOps is a pretty hot topic since the evolution of the Software Development Life Cycle from just running one app per server to virtualization to containerised applications. Most people confuse it and assume this is a new field as ML, SDE, or others but it is a set of practices that help organizations innovate faster by automating and streamlining the software development and infrastructure management processes. Most of these practices are accomplished with proper tooling.


WATERFALL methodology

Traditionally, the WATERFALL method was a practice for developing new software which was a linear process and took more time to implement the idea.

Waterflow Methodology

Let's say a team had an idea of making a new social media platform like Facebook, or Instagram. The team will first have to plan everything about how the app should work, and the features it should have, and make a list of features, pages, events, etc.

Then the documentation of how the business team envisioned the app and the whole list of features, events, etc are given to the development team. This team will then develop one feature per time, and this will take some months to code features, pages, etc., and develop the complete app.

The next step is testing the developed app *(*Testing will be done only after everything has been developed) which is a very crucial process to implement a complex app like Facebook or Instagram. This is then hand-over to the testing department which will test every feature, app performance, load testing, etc. They might find some bugs or compatibility issues and it will send it back to the developer team to fix it, and then it will get tested again. This cycle would continue back & forth till everything is ready with no issues. This will take some months depending upon the complexity.

After development and testing it will be passed on to the Operations Team. They will require some preparations to set up the app on the server. There they will have to resolve dependencies, or some things wouldn't run or break, they will again send it to the developer's team to fix it, then to the testing team to test again and this cycle again would take a couple of months.

Maybe after a couple of years, the app is ready, deployed, and running.

This method sounds like a long and ineffective process. Over time new requirements may arise, and then they need to be resolved. There will be many places of failure and miscommunication as there is no fast feedback.


Agile methodology

A very effective method alternative to the WATERFALL method was developed called Agile. It is very popular among organizations and companies.

Agile methodology allows for a more dynamic, fast, and easily changeable development and deployment process. And it is just a methodology or framework that says what are the good practices and efficient ways to do things. It has specific implementations like Scrum and Kanban. Depending on company requirements they will use one of them.

Agile Methodology

Problems solved that were lacking in the WATERFALL method :

  • It increases the speed of development, testing, and deployment cycles. Instead of waiting for the whole application to get developed.

  • Here each feature gets tested and deployed.

  • There is immediate feedback if there are bugs or deployment doesn't work and so on.

The main takeaway is Agile at the core is the heart of the Continuous Integration and Continuous Delivery process which has become so popular that the company strives towards making its software development and delivery processes much more efficient.


DevOps

The introduction or adoption of Agile methodology introduction or adoption by companies has supported the need for DevOps tasks. Because DevOps is implementing the best practices or most of the practices that the Agile framework introduces.

Agile Implementation

DevOps is an approach or practice that combines the development team and the IT team to collaborate throughout the entire software development cycle so that all the teams will be on the same page. It helps in shortening the Software Development Life Cycle and ensures the delivery of high-quality software.

In simple words, DevOps is just a way of working between Developers & Operations.

Dev + Ops Roles

The main aim of DevOps is CI/CD*(Continuous Integration & Continuous Delivery)* to develop and deploy applications/features as fast as possible and automate tasks.


Thanks for reading and hope you would have now understood the need for DevOps and what gained it so much popularity.

Please do share your thoughts in the comments and like the blog so that it reaches everyone who is stumbling across this topic and want to understand the idea behind it.

You can find my all socials at => https://bio.link/dipanshutorawane

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .