In the previous block, we have seen the DevOps need and its advantages. Now its time to move on to its DevOps life cycles
DevOps life cycle
DevOps life cycles consist of 8 phases as shown below.
In this DevOps life cycle, some phases were combined together and finally formed 5 phases. So now let us see one by one in detailed
Continuous development:
This phase is a combination of software planning and coding. The planning phase is responsible for project vision. And the developers start coding to develop the application. The planning phase doesn't require any tools, but we have 'n' tools for project maintenance
In the development phase, developers can develop the application using any programming language. And the version control tools maintain this code. Basically, code maintenance is known as source code management. The most popular tools in this phase are Git, SVN, CVS, JIRA. In addition, to pack the code into the executable file, this phase using the tools like Ant, Maven, Gradle
We will discuss the functioning of these tools in the next sessions
Continuous Testing:
This is the stage where the code is tested for detecting the bugs continuously. For continuous integration DevOps uses various tools like Selenium, TestNG, JUnit etc are used. Moreover, these tools allow QA's to test the multiple code bases in parallel. This ensures there are no flaws in the functionality. Moreover, Testers prefer Docker containers to simulate the test environment. And while selenium is responsible for automation testing, TestNG suits best for report generation.
Furthermore Continuous Testing tool names Jenkins is responsible for the entire testing automation. For instance, if you have written the code in JAVA to test the application, You can even test this code using Ant (or) Maven. And once if the code is built, it is tested for User Acceptance Testing (UAT). When compared with Manual testing, Automation testing saves time, effort as well as labor. Moreover, test case evaluation is simpler. Furthermore, we can also schedule the test case execution at predefined times. Soon after the testing, the code is continuously integrated with the existing code.
Click the link to know about the DevOps testing and virtualization
Continuous Integration:
It is a software development practice where the developers require to commit the changes to source code frequently. These frequent changes can be done daily (or) on a weekly basis. After every change, the commit is built and allows early problem detection if any. Furthermore, code building not only involves the compilation but also involves the code review, unit testing, integration testing, and packaging.
Do you how Anaxi delivers project management apps for DevOps?
Here, in this phase, a new code will always be adding to the existing code. Since the previous phases involve continuous development, always the fresh code integrates with the existing code to reflect the changes to the end-users. In this Phase, Jenkins is a very popular tool. So whenever there is a change in the GIT repository Jenkins fetches the updated code and prepares the updated code builds in an executable file in the form of Jar (or) war. And the Integration team forwards this build to the test server (or) the production server.
Continuous Deployment:
This phase is responsible to deploy the code in the production servers. So it is important to ensure that code is deployed correctly on the production server. And before proceeding further, we will now discuss
Configuration Management:
It is an act of establishing and maintaining consistency in an application's functional requirements and performance. In simple words, it is an act of releasing deployments to the server, scheduling updates on all servers, and finally maintaining the configurations consistent across all the servers. The most commonly used tools in this phase are puppet, Chef, Ansible.
Containerization tools:
These tools play a major role in the deployment stage. Today Docker and vagrant are the most popular tools in this phase. Besides, these tools produce consistency across the developing, testing, staging as well as the production environments. In addition, these tools also responsible for instances to scale up as well as the scale down. Moreover, containerization tools also responsible to maintain the consistency across the application environment like development, testing as well as deployment. So with these tools, there is no scope of error/ failure in the production environment. So these tools make your application easy to run on different computers. Some of the containers tools are shown below
Continuous Monitoring:
This the crucial stage of the DevOps life cycle. This stage is responsible to monitor the application performance. Moreover, this phase detects the issues. In addition, this phase is responsible to maintain security and service availability. Moreover, this phase also resolves the network issues if any. And this phase also helps to automatically fix the problems as soon as they detected.
Here the operations team usually involves in this phase. These teams usually monitor the user activity to find the bugs (or) the improper bugs in the system. The most popular tools in this phase are Splunk, ETL Stack, Nagios, and Sensu. These tools help you monitor the application performance and servers closely. This finally enables you to check the system health. And throughout the training, you will be getting the knowledge of following tools
These DevOps stages are carried out on a loop continuously to achieve the desired product quality. So almost all the IT companies have shifted to DevOps to build their products.