Table of contents
What is DevOps?
DevOps is the combination of practices and tools that integrates and automate the work of software development and IT operations as a means to increase the organization’s ability to deliver services faster than the traditional software development processes.
DevOps is a methodology to increase efficiency and improve delivery time.
DevOps removes the barrier between the traditional development team and IT operations.
**DevOps Life Cycle
**
Continuous Development
Continuous Integration
Continuous Testing
Continuous Deployment
Continuous Monitoring
Continuous Development
This phase involves the planning and coding of the software.
There are no DevOps tools that are required for planning, but there are several tools for maintaining the code.
Maintaining the code is referred to as Source Code Management. The most popular tools used are Git, SVN, Mercurial, CVS, and JIRA.
Moreover, there are different tools for packaging the codes into executable files, such as Ant, Gradle, and Maven.
Continuous Integration
Continuous integration (CI) is an agile and DevOps best practice that enables multiple stakeholders (developers) to contribute and collaborate in a shared code base.
Due to continuous development, the updated code seamlessly integrates within the entire system.
Popular tools which are used for continuous integration are Bitbucket Pipeline, Jenkins, AWS CodePipeline, CircleCI, Azure Pipeline, Gitlab etc.
Continuous Testing
Continuous testing in DevOps helps teams explore critical issues in the initial stages of development, mitigating the risk of bugs beforehand, and saving companies the cost of fixing errors further down the line.
Find errors: Ensure as many errors are found before being released to production.
Test early and often: Tested throughout the development, delivery, testing, and deployment cycles
Popular continuous testing tools are Selenium, JUnit, TestNG etc.
Continuous Deployment
This process eliminates the need for scheduled releases and accelerates the feedback mechanism
The new code is deployed continuously, and configuration management tools play an essential role in executing tasks frequently and quickly.
Popular configuration management tools are Ansible, Chef, Puppet, Terraform, TeamCity, SaltStack etc.
Containerization tools help in maintaining consistency across the environments where the application is developed, tested and deployed.
Popular Containerization tools are Docker and Vagrant.
Continuous Monitoring
This is a very crucial stage of the DevOps life cycle where you continuously monitor the performance of your application.
The system errors such as server not reachable, low memory, etc are resolved in this phase.
This practice involves the participation of the Operations team who will monitor the user activity for bugs or any improper behavior of the system.
The popular tools used for this are Splunk, ELK Stack, Nagios, NewRelic, Grafana, and Prometheus.