# Introduction to DevOps

This is an _all-in-one_ guide and walkthrough about DevOps, the responsibility, the technology behind it and the tools in use.

## What is DevOps?

Mostly, people define DevOps as something really alien to us.

But DevOps is nothing but just a way of working between the Development and Operations Team to make the process of software release and maintenance easier and more efficient. 


![image](https://user-images.githubusercontent.com/91361382/178313704-98898ca0-b16a-4ab4-8b89-60ae927d02a0.png)


**This is what DevOps means to everyone, no rocket science!**

 - And here comes the Definition, if you want to note down :

  DevOps is the combination of cultural philosophies, practices, and tools that increases an organization’s ability to deliver applications and services at high velocity: evolving and improving products at a faster pace than organizations using traditional software development and infrastructure management processes. This speed enables organizations to better serve their customers and compete more effectively in the market.

## Origination

 - Actually, when there was no concept of DevOps in the industry, Companies had two teams. 
  - ```Development```
  - ```Operations```
 
 In Layman terms,
  - **Developers** are those who basically did the programming and software development stuffs.
  - **Operators** are those people who deployed those applications on large scale manually.
 
 - So there was a communication barrier between the two teams and companies faced _down-times_ while deployment. Apart from that, this was not really efficient for the industry standards.
 - Hence, the ```DevOps``` was born.

## Evolving Phase

 ### Phase - I
 - The first version of DevOps was coined as ```Waterfall```.
 - But it had few loopholes like,
 
  - Ineffective process
  - Over time new requirements may arise
  - Many points of failure and miscommunication
  - No fast feedback
 
 - Here is the visual representation :
 
![image](https://user-images.githubusercontent.com/91361382/178306962-eba7f6d8-109b-4aef-87d9-0c59688b8ce8.png)

 ### Phase - II
 - The ```Waterfall``` was later replaced by a new practice which was coined as ```Agile```.
 - It was proved to be much more advanced and efficient way to deliver a software in the market.
 - The Benefits are,
 
  - Fast speeds of Development, Testing and Deployment Cycles
  - Immediate Feedback
  - **Scrum** and **Kanban** specific Implementations

- Here is the visual representation :

![image](https://user-images.githubusercontent.com/91361382/178312927-cc827121-adec-4d1c-8d0b-de69e43d4d51.png)


## Relation Between Agile and DevOps

 - **AGILE Process:** Product Requirement --> Development Team building the Product.
 - **DevOps Process:** Developed Product -->  Operations Team releasing the Product.

![image](https://user-images.githubusercontent.com/91361382/178313503-0e50ed18-14c8-4c73-bbc6-4a8920ee8243.png)

## The Culture

 - Nowadays, DevOps is so widely accepted by every company that a new role known as ```DevOps Engineer``` has come into existance.
 - It's a medium of communication between the teams of the company.
 - As a result, many tools are emerging on a daily basis which makes the life of a DevOps engineer much more easier.

![image](https://user-images.githubusercontent.com/91361382/178315711-9f98de55-b5cd-43cc-9555-af211f247581.png)

## Popular Tools Involved

 - [AWS](https://aws.amazon.com/)
 - [Docker](https://www.docker.com/)
 - [Kubernetes](https://kubernetes.io/)
 - [GitHub](https://github.com/)
 - [Terraform](https://www.terraform.io/)
 - [Ansible](https://www.ansible.com/)
 - [Jenkins](https://www.jenkins.io/)
 - [Prometheus](https://prometheus.io/)
 - [Linux](https://www.linux.org/)
 - Programming with [Go](https://go.dev/) / [Python](https://www.python.org/)


## Conclusion

So here we are, with a clear in-depth understanding about DevOps. I hope this was insightful and created a strong concept regarding the whole background.

![image](https://user-images.githubusercontent.com/91361382/178318678-34c639bc-c8b9-4d71-8e8c-4a0f386b3d3b.png)

For further study materials, you can follow [Kunal Kushwaha](https://www.youtube.com/c/KunalKushwaha), [TechWorld with Nana](https://www.youtube.com/c/TechWorldwithNana) and [Hitesh Choudhary](https://www.youtube.com/c/HiteshChoudharydotcom).

Thanks for reading till the very end.

Follow me on [Twitter](https://twitter.com/ronitblenz), [LinkedIn](https://www.linkedin.com/in/ronitbanerjee/) and [GitHub](https://github.com/ronitblenz) for more amazing blogs about Cloud, DevOps and More !
