All you need to know about DevOps...
Tags: beginners, devops
Published: 2022-03-09 16:45:26

![Software Development Life Cycle](https://blog.gitguardian.com/content/images/2022/05/SDLC2.png)

### 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](https://cdn.hashnode.com/res/hashnode/image/upload/v1646726763313/j-_kTRUW2.png)

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](https://sp-ao.shortpixel.ai/client/to_auto,q_lossless,ret_img,w_1120,h_520/https://www.soldevelo.com/blog/wp-content/uploads/Agile-software-dev-1.jpeg)

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](https://cdn.hashnode.com/res/hashnode/image/upload/v1646727239593/wp-j7zHH5.png)

**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](https://cdn.hashnode.com/res/hashnode/image/upload/v1646727302556/gscBFkHTi.png)

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 =&gt; https://bio.link/dipanshutorawane