Open source softwares - DevOps

Back to Course

Lesson Description

Lession - #1500 DevOps Life Cycle

the various phases such as continuous development, continuous integration, continuous testing, continuous deployment, and continuous monitoring constitute DevOps Life cycle. Now let us have a look at each of the phases of DevOps life cycle one by one.

Continuous Development –

This is the phase that involves ‘ planning ‘ and ‘ coding ‘ of the software. The vision of the project is decided during the planning phase and the developers begin developing the code for the application. There are no DevOps tools that are required for planning, but there are a number of tools for maintaining the code.

The code can be written in any language, but it's maintained by using Version Control tools. Maintaining the code is appertained to as Source Code Management. The most popular tools used are Git, SVN, Mercurial, CVS, and JIRA. Also tools like Ant, Maven, Gradle can be used in this phase for building/ packaging the code into an executable file that can be forwarded to any of the next phases.

Now let us try to know a bit further about Git.

Git is a distributed version control tool that supports distributednon-linear workflows by furnishing data assurance for developing quality software. Tools like Git enable communication between the development and the operations platoon.

When you're developing a large design with a huge number of collaborators, it's veritably important to have communication between the collaborators while making changes in the design.

Commit messages in Git play a very important role in communicating among the team. Apart from communication, the most important reason to use Git is that you always have a stable interpretation of the law with you.

Hence, Git plays a vital part in succeeding at DevOps.

Continuous Testing –

This is the stage where the developed software is continuously tested for bugs. For Continuous testing, automation testing tools like Selenium, TestNG, JUnit, etc are used. These tools allow QAs to test multiple code bases completely in parallel to ensure that there are no excrescencies in the functionality. In this phase, Docker Containers can be used for bluffing the test environment.

Selenium does the automation testing, and the reports are generated by TestNG. This entire testing phase can be automated with the help of a Continuous Integration tool called Jenkins. Suppose you have written a selenium code in Java to test your application. Now you can make this code using ant or maven. Once the code is built, it's tested for User Acceptance Testing( UAT>
. This entire process can be automated using Jenkins.

Automation testing saves a lot of time, trouble and labor for executing the tests rather of doing this manually. Besides that, report generation is a big plus. The task of evaluating the test cases that failed in a test suite gets simpler. We can also schedule the execution of the test cases at predefined times. After testing, the code is continuously integrated with the existing code.

Continuous Integration –

This stage is the heart of the entire DevOps life cycle. It's a software development practice in which the inventors bear to commit changes to the source code more frequently. This may be on a daily or a weekly basis. Every commit is also built and this allows early detection of problems if they're present. Building code not only involves compilation but it also includes code review, unit testing, integration testing, and packaging.

The code supporting new functionality is continuously integrated with the existing code. Since there's continuous development of software, the updated code needs to be integrated continuously as well as easily with the systems to reflect changes to the end- users.

Jenkins is a veritably popular tool used in this phase. Whenever there's a change in the Git depository, Jenkins fetches the streamlined law and it prepares a figure of that law which is an executable train in the form of a war or a jar. This figure is also encouraged to the test server or the product garçon.

Continuous Deployment –

This is the stage where the law is stationed to the product waiters. It's also important to insure that the law is rightly stationed on all the waiters. Before moving on, let us try to understand a many effects about Configuration operation and Containerization tools. These set of tools then help in achieving nonstop Deployment( CD>

Configuration operation is the act of establishing and maintaining thickness in an operation’s functional conditions and performance. Let me put this in simpler words, it's the act of releasing deployments to waiters, cataloging updates on all waiters and most importantly keeping the configurations harmonious across all the waiters.

Since the new law is stationed on a nonstop base, configuration operation tools play an important part in executing tasks snappily and constantly. Some popular tools that are used then are Puppet, Chef, SaltStack, and Ansible.

Containerization tools also play an inversely important part in the deployment stage. Docker and Vagrant are the popular tools used for this purpose. These tools help produce thickness across Development, Test, Staging and product surroundings. Besides this, they also help in scaling- up and scaling- down of cases fleetly.

Containerization tools help in maintaining thickness across the surroundings where the operation is developed, tested and stationed. Using these tools, there's no compass of crimes failure in the product terrain as they package and replicate the same dependences and packages used in the development/ testing/ staging terrain. It makes your operation easy to run on different computers.

Continuous Monitoring –

This is a veritably pivotal stage of the DevOps life cycle where you continuously cover the performance of your operation. Then vital information about the use of the software is recorded. This information is reused to fete the proper functionality of the operation. The system crimes similar as low memory, garçon not accessible, etc are resolved in this phase.

The root cause of any issue is determined in this phase. It maintains the security and vacuity of the services. Also if there are network issues, they're resolved in this phase. It helps us automatically fix the problem as soon as they're detected.

This practice involves the participation of the Operations platoon who'll cover the stoner exertion for bugs or any indecorous geste

of the system. The popular tools used for this are Splunk, ELK Stack, Nagios, NewRelic and Sensu. These tools help you cover the operation’s performance and the waiters nearly and also enable you to check the health of the system proactively.

They can also ameliorate productivity and increase the trustability of the systems, which in turn reduces IT support costs. Any major issues if set up are reported to the development platoon so that it can be fixed in the nonstop development phase. This leads to a briskly resolution of the problems.

These DevOps stages are carried out on circle continuously till you achieve the asked product quality. thus nearly all of the major IT companies have shifted to DevOps for erecting their products.