SDLC DevOps Model, Ideology And Phases
Introduction:
- DevOps is a union of people, product, and process to enable the value of continuous delivery to end users.
- DevOps is a new culture approach to manage a SDLC Project
- DevOps is all about the people following a process enable by products to deliver value to end users
- It follows continuous integration method unlike Agile which follows iteration method
History:
- Devops concept was initiated by Patrick Debois, a software development consultant in the year 2007.
- Patrick was always bothered about the difference between the Dev and Ops work.
- He advocated for use cases of Automation, Cloud, and work together models.
Ideology of DevOps:
Continuous Development:
The first phase in devops is continuous development. It includes planning, outlining, and introducing new code. Once these objectives are finalized, you carry out the project from development. This includes activities like generating the required code of the project, and then putting it to the upcoming phase.
Continuous Testing:
The goal of the continuous testing is to speed up the code delivery to production. Testing is a process that involves the actual use of the application in the DevOps. The testing provides upcoming information about different aspects of the application, errors are again sent to the development process to improve the application.
Continuous Integration:
The continuous integration is a process that occurs after the development. It also involves the integration of code in the repository where configuration management tools are integrated with the test and development tools to track the status of the project. It also gets quick feedback between testing and development to be able to identify the issues and resolve various issues during the process.
Continuous Deployment:
The continuous development automatically releases the new or changed code into production, similar to continuous delivery. The use of various continuous deployment tools such as Docker and Kubernetes allows continuous deployment as they play a key role in maintaining code consistency across the different environments.
Continuous Monitoring:
Continuous Monitoring involves ongoing monitoring of the operational code and the infrastructure supporting it. Changes or applications deployed in the production environment are continuously monitored to ensure the best performance of the application.
Phases of devops:
Plan:
Production metrics objects and feedback
Requirements
Business metrics
Update release metrics
Release plan, timing, and business care
Security policy and requirement
Create:
Design of the software and configuration
Coding including code quality and performance
Software build and build performance
Release candidate
Verify
Acceptance testing
regression testing
Security and vulnerability analysis
Performance
Configuration testing
Package:
approval/ pre-approvals
Package configuration
Triggered releases
Release staging and holding
Release:
Release coordination
Deploying and promoting applications
Fall-backs and recovery
scheduled and timed release
Configure:
Infrastructure storage, database and network provisioning and configuring
application provisioning and configuring
Monitoring:
Performance of IT infrastructure
End-users response and experience
Production metrics and statics
Advantages of DevOps:
- Speedy and better product delivery
- It is open source
- Scalability and greater automation
- High clarity into system outcomes
- Stable operating environments
- Better utilization of resources
- High clarity into system outcomes
Disadvantages of DevOps:
- Lack of domain knowledge. This could be a problem if integration work will be involved in the automation.
- Devops challenge on multiple fronts
- Complexity in messaging and front end
- Most container technologies still new
- You have no control over the evolution of the products that your service depends
- You don’t have access to the logs of some instances
Conclusion:
DevOps is an excellent way of carrying out application development. It also improves the performance of an application and allows the end users to directly contribute the application, By sharing the feedback from the all phase. It is a method we will continue to see in the future as a top option for developing dynamic applications that constantly evolve to meet new challenges.