DevOps is an agile relationship between development and operations. It is a process practiced by the development as well as operations engineers right from the starting of the design to production support. Understanding DevOps is incomplete without understanding Devops lifecycle.
Here is a brief depict of the Continuous DevOps lifecycle:
#1 Non-Stop Development:
Development is a stage in the DevOps lifecycle where the development of software takes place with no halt. Here the entire software development process is divided into smaller development cycles, developed simultaneously which take lesser time and so that the software can be completely developed and delivered at the earliest. Continuous development encompasses coding then creating different forms of the code using SVN, Git and then wrapping the code into an executable folder to forward it to the quality analysts for testing the codes.
#2 Non-Stop Testing:
Quality Analysts use tools like Selenium, Junit, etc. to remove the bugs while testing the developed software and to ensure that there are no flaws in the functionality of the software. Testing multiple parts of the code takes place continuously and once each part is tested, it is integrated with the main prevailing code.
#3 Non-Stop Integration:
Any code providing a new functionality is integrated with the prevailing code in the integration stage. Since continuous development and testing of codes take place, hence to update the new code, integration must be unified. The updated code should ensure zero failure, so that once the new code is added, no error occur in the runtime. Hence testing plays an important role making sure that the new code does not bring negative reaction during the runtime. Jenkins is a tool used in the integration purpose that triggers any change made in the code automatically or even manually.
#4 Non-Stop Deployment:
This is the particular phase where the software is deployed to the production house. All the codes developed are deployed to the servers ensuring 100 percent accuracy. As the deployment process takes place in a nonstop process, so the automation tools like the SaltStack, Puppet, Chef etc. plays an important role. Deployment should be such that any changes made any time on the code, should not affect the runtime of the code even in high traffic of the website. Hence, during the deployment process, the system administrator should keep on scaling up the servers in order to welcome higher number of host users.
#5 Non-Stop Monitoring:
Monitoring is a vital phase in the DevOps lifecycle. It determines the quality of the entire DevOps lifecycle. The operations team take care of the inappropriate system behaviour or if any bugs that may arise during the user activity. To maintain proper system health, bugs need to be highlighted frequently so that the degrading performance of the system can be avoided. For this, the operations team uses popular tools like Sensu, NewRelic, and Nagios. These improves the efficiency and dependency of the system resulting in lower support rate. Any chief matter that gets highlighted during the monitoring phase, could be informed to the developers who solve the issue in the continuous development stage.
All the above stages in the DevOps lifecycle are performed continuously on the loop, until and unless the quality of the product that is looked for is obtained.