Introduction
This article will cover the following things.
- What is Devops?
- Shortcomings of the traditional way
- Result - Wall of Confusion
- Why is DevOps needed?
- How is DevOps different from Agile?
- DevOps Principles
- DevOps Categories
- One Solution – Azure DevOps
What is DevOps?
DevOps is a “culture which promotes collaboration between Development and Operations Team to deploy code to production faster in an automated & repeatable way”.
Shortcomings of the traditional way
- Development and operation teams used to work in complete isolation.
- Teams used to spend a big amount of their time in deploying instead of development of the project.
- Manual code deployment ~ human errors in production
- Coding & operation teams have their separate timelines and are not in sync and cause the delay.
Result - Wall of Confusion
With all the shortcomings mentioned above, there is always a wall of confusion between dev and operation team which results in “Failure”.
Why is DevOps needed?
- Allows teams to implement Continuous Integration and Continuous Delivery
- Provides Predictability by offering a lower failure rate of releases
- Provides resiliency by keeping the app more stable and secure
- Helps the team to provide quality as it captures infrastructure issues.
How is DevOps different from Agile?
Typical IT Process
It gives us a picture of our typical IT process which consists of three teams – Requirement gathering team, development and testing team along with a separate operation team
Agile Implementation
It gives us a picture of our typical IT process with an agile implementation where there is a clear communication between the requirement gathering team and development and the testing team (where BA is sitting with the team rather than creating a SRS and leave forever) along with a separate operation team
Devops Implementation
It gives us a picture of our typical IT process with an agile implementation where there is a clear communication between a requirement gathering team and a development and operation team (where DevOps / Ops person is sitting with the team rather than sitting on another floor and taking a whole day to get development code to production) along with a separate requirement gathering team
DevOps Principles
- End-To-End Responsibility
- Continuous Delivery
- Automate everything
- Monitor everything
DevOps Categories
- Infrastructure Automation
- Configuration Management
- Deployment Automation
- Performance Management
- Monitoring
Infrastructure Automation
“It’s a capability of providing more servers based on traffic automatically, no hardware cost up-front.”
“It’s a process of scripting environments — from installing an operating system to installing servers on instances; i.e. environment configuration as a script.”
Deployment Automation
“It’s a process of providing continuous integration and testing along with finding issues as soon as a build is deployed”
Performance Management
“It’s a process of offering real-time performance monitoring which eventually helps developers to debug when issues occur."
Monitoring
“It’s a process of being notified when infrastructure and related services go down.”
One Solution – Azure Devops
It gives us an effortlessness of deploying an API into the cloud by using best practices like infrastructure as code using ARM
Happy learning!