What is DevOps and Why is DevOps important !
DevOps is a mixture of two things i.e., Dev and Ops. Many people confuse DevOps with some tools that you can use of or some sort of a role or a position. DevOps is not a tool, role, or position but it's a mindset. A mindset that defines how exactly we can work on our project development.
- By definition, DevOps is a set of practices, tools, and a cultural philosophy that automates the integration of the software development teams and the operational teams.
- Its main focus is predominantly team bonding, in-between team communication and collaboration, and yes automation.
- DevOps is a cultural shift in the software development cycle (SDLC)
Let's imagine a scenario here.
In the software development process, we have a developer who writes the code and compiles it, and then sends it off to the Testing team. The code that the dev gave to the Testing team doesn't work, that's quite normal, right? The testing guy can simply say that hey dev buddy this piece of software doesn't work on our system, it's defective and you need to fix it. But the code works fine on the dev's system, and he says no it's not my problem. Well, you can imagine what kind of chaos and blame game it can result in right. And imagine the total amount of time it takes for them to package the software and just play this passing-the-parcel game between them.
The problem here is that the developer and the operations guy both work in silos, they don't communicate well enough about the system configurations, dependencies, and cross-kt.
Well, DevOps over here comes here as a superhero.
DevOps plays a very significant role in modern-day application development which includes something called "Cross-team collaboration", "automation", Continuous Integration, Continuous Delivery, and much more. DevOps focuses on making every manual task automated so that we have a certain standard while working in SDLC, and to communicate the real goal so that all team members (DEV, TEST, OPS) are on the same page.
There are a few things that come along when we talk about DevOps. It's quite important to understand them as they are the basic practices that DevOps comprises-
- Continuous Integration
Refers to build and unit test stages of the software release process. It says whenever a new commit happens in a code, triggers should be automatically fired to build and test new code. This kind of helps the developers to maintain the code in the ready-to-deploy stage. This means that the code doesn't have any bugs and it passes all the tests while building. At any point in time, it can be deployed in production. - Continuous Deployment
Refers to the process to make the entire process of SDLC automated. This makes the flow of software development go from the build stage to the test stage and finally to production. - Situational Awareness
This term solves one of the problems that was faced by the developers initially. DevOps brings the team members out of their silos and help them collaborate and make everyone aware of the condition they are currently in. - Automation
DevOps focuses on making the manual task automated to make the pipeline flow more and more manual intervention free. This saves time and effort and is easy to debug. - Cloud
This is now the keenest topic of today's world, everything is moving towards the cloud, whether it's software development, deployment, or infrastructure. It is impossible to define the whole working of the cloud in just a line, we'll have a different blog for this as a whole. We can take into account that for now, the cloud here stands for AWS, Azure, or GCP. - Continuous monitoring
Well, it's quite a task to build an application and deploy it into production environments. The next task is to maintain an application in the upstate so that it has zero downtime. This factor is important as this can result in loss of business, and the application should be monitored every time. - Infrastructure as a code
It is a new tool stack that gives us the ability to spin up our infrastructure according to our needs, again this is an example of automation. Infrastructure depends on a certain set of codes. Imagine this, you want to create a VM, you write a code and you run it, and Voila! The infra is up. Now imagine you need to do this for 50 Vm, you tell the system I want 50 instances, and again voila! Is it just me or even you can feel much effort is being reduced here. - Microservices
Breaking the application into small independent services, so that the efforts are saved in time of bugs and issues, or even in updates.
No comments:
Post a Comment