Today we will be covering the fundamentals of DevOps
what is DevOps?
why DevOps?
DevOps: So if you look up the textbook definition what is DevOps, there are 100 definitions ok. So if you go to amazon.com they have a definition of DevOps, and if you go to Redhat they have a different definition of DevOps But in general, what is DevOps we will try to understand that one.
Now if you ask me DevOps is basically cultural means it's culture, DevOps is basically a practice or culture that you are adopting in your organization you can not call it a specific term but in general, you can say "DevOps is a culture that you are going to follow that would increase your organization ability to deliver applications." so that's the end goal of DevOps. So if you have to put in a single line
DevOps is a culture that improves the organization's ability to deliver applications. so the end of the day what any organization will do the organization would deliver the application so that delivery is the key factor.
so whether is example.com wether is amazon.com what is the end goal of any organization the end goal of any organization is delivery.
so let's say there is an organization called example.com, so if example.com is taking 10 days to deliver their version of applications from v1 to v2 let say they are taking 10 days let's consider pubg so pubg one of the wide play games so let say there is an issue in the pubg and they want to introduce a new feature of the pubg version so if they taking to introduce this version everything is done let say development is done and everything else apart from the delivery point of view
If it just holds their application for 10 days just to deliver to the unit staging environment and final to the production then that's not a good practice so what should happen ideally is whenever their is a security issue and whenever their is a bug in the software.
so what is DevOps?
"DevOps is the process of improving the application delivery by ensuring there is proper automation with application quality that is maintained and ensuring that is continuous monitoring and continuous testing in place.
Why DevOps?
Before we get deep into what DevOps is and all the revolutions it brought with us, first understand why DevOps is in the first place. and Before DevOps, there were two development models: Waterfall and Agile Method.
1. Waterfall Model
The waterfall model is the first model to be introduced in software development. It is a sequential process and very easy to understand. In this approach, software development is divided into several phases, and the output of one phase becomes the input for the next phase. This model is similar to a waterfall when the water flows off from the cliff; it cannot go back to its previous state.
The phases are; Requirements, Design, Implementation, Verification, and Maintenance.
Drawbacks of the waterfall model:
It’s difficult to make changes to the previous stage
Not recommended for large-sized projects
Developers and testers don’t work together (which can result in a lot of bugs at the end)
Not recommended for projects that will likely have changing requirements
From the figure below, we can see the issues with the waterfall model:
The developer took a very long time to deploy the code
On the operations side, the tester found it challenging to identify problems and give useful feedback
2. Agile Model
Agile is an approach in software development where each project splits into multiple iterations. As a result, at the end of each iteration, a software product is delivered. Each iteration lasts about one to three weeks. Every iteration involves functional teams working simultaneously on various areas, such as:
Requirements
Design
Development
Release
The figure below indicates that there can be a number of iterations needed to deliver a final product in the agile method.
Using the agile method, the code that works for the developer may not work for the operations team.
So how can this issue be solved?
With DevOps, there is continuous integration between the deployment of code and the testing of it. Near real-time monitoring and immediate feedback through a DevOps continuous monitoring tool enables both the developer and operations team to work together.
The figure below shows how well the software is handled using DevOps.
Thanks for reading my blog for more such type of content follow me.