SciDatajourney

How DevOps Tools Accelerate Software Delivery

Hello everyone, welcome back to this session on DevOps training. Today in this session, we are going to discuss the DevOps tools that will help us implement the DevOps life cycle, right?

So, so far we have discussed the DevOps methodology, and how the DevOps life cycle works, but they are incomplete without their respective tools which will map to each of the life cycle stages in the DevOps life cycle. OK, so let’s go ahead and start discussing theseDevOps tools with their respective stages.

DevOps Tools with their respective stages

Continuous development

So the first stage that we saw was continuous development. Now continuous development is implemented using version control systems like I told you guys and in most companies, the most used version control tool is Git, right?

So Git is a version control system which was which we will be also using in this course, right? And it is used when multiple people are working on one particular project, right?

So it is great for team collaboration, it is great for tracking changes, and is awesome on the command line, right? So this is what we are going to learn in this course. So for Git maps to the continuous development life cycle stage,

“Git is a distributed Version-control system for tracking changes in computer files and coordinating work on those files among multiple people. It is primarilly used for source code management in software development, but it can be used to keep track of changes in any set of files.”

Continuous Integration

Then we have continuous Integration. Now you heard a lot about this continuous Continuous Integration tool when we were discussing the DevOps life cycle and the tool is called Jenkins, right?

So Jenkins is an open-source tool, right, Which is used to implement the continuous integration features that we saw in the DevOps side cycle.

So in this course, we’ll be learning Jenkins and there is a separate module on Jenkins that will be devoted to explaining different features that you can explore in Jenkins, right?

“Jenkins is an open source automation server written in Java. Jenkins helps to automate the non-human part of the software development process, with continous integration and fascilating aspects of continuous delivery”

Continuous deployment

The next stage is continuous deployment. And continuous deployment means two things. It means configuration management and it means virtualization and containerization.

So we use Docker for virtualization and containerization. And what exactly Docker does do? So the problem of running your code on one system and not being able to run on another system is what is solved using containerization.

So what containerization does is it wraps your code along with the software dependencies and all these software dependencies and code is wrapped around by a container, right?

So a container is a physical entity that will wrap you your software dependencies and your software and it will if you run that container on any other system it will run as if you know it is running on the same system that is on the developer’s computer.

So a container a is an executable form of an operating system that can be run on any system. The only pre-requirement is that you should have docker installed on it right?

Configuration management

Similarly, you have configuration management. Now configuration management. What is configuration management exactly? So say you have a computer.

You have a freshly set up computer in which you have some operating system installed. Now, if you want to test your application on that system, you first have to install all the software on it, right?

For example, as I said, you would need docker for your container to run, you probably would need an Apache server, you would need Python or all these software which have to be installed can be installed using configuration management without even touching that remote computer or that freshly set up computer.

And that is possible using tools like Puppet and Ansible, more of which we will be seeing in our course as we progress in our number of modules, right?

Continuous testing

Our next stage is continuous testing. Now continuous testing, as we learned was all about creating testing shoots that will automatically test your code once it gets built on your system, right?

So all these automation testing shoots can be created using the Selenium software, right? So we will be learning the Selenium web driver in this course as we move along and we will see how we can create our automation shoots in Selenium for testing our applications. OK, so this was about continuous testing

Continuous monitoring

Then next we have continuous monitoring wherein you know your application is continuously monitored and the logs are created. Any errors are also monitored, right? So all of that is done using Nagios.

So Nagios gives you a dashboard with all your services listed on it and the services can exist on any system outside the network or inside the network and all the services running on it can be seen on the Nagios dashboard.

OK, so it’s a great tool for monitoring your application. It’s a great tool for gathering user data or user activity data at a one-stop destination. OK, so that is what Maggios is all about. And this brings us to all the tools.

So these were all the tools that we will be discussing throughout the course, right? And this brings us to the DevOps tools life cycle.

DevOps Tools LifeCycle

So if you saw the DevOps tools life cycle earlier wherein you had a developer and the developer was pushing code onto the version control system, this is a replica of that figure.

And in this figure, we have just replaced the tools with the life cycles. Alright, so now what the developer does is he pushes his code to GitHub, the GitHub.

DevOps Tools

Does it push his code to GitHub, GitHub from GitHub, Jenkins automatically detects that you know on GitHub your code has been changed.

It pulls the code and pushes it onto the testing server and it installs all the software required on the testing server and the testing suit that has been built on the selenium is already present on that testing server, right?

So Jenkins pushes the code here. The code is built and tested over here. If it goes successfully, Jenkins again pushes the code to production, right?

On the production server, Nagios continuously monitors it for user activity, how many users are logged on, and what the users are saying about it.

All of that information is saved inside Nagios, and that information can be seen on the Nagios dashboard by the development team and they can make a plan for the next release.

What features do they have to include, and what fixes do they have to do right? And once you do that, you know you again start on with your next release. So this is what you do when you are working with the DevOps tools.

Conclusion

In conclusion, companies looking to speed up product delivery will find that implementing DevOps tools is a revolutionary experience. Through the adoption of automation, promotion of teamwork, and proactive problem-solving, these tools facilitate increased productivity, accelerated time to market, and better overall performance.