The other blogs in this DevOps tutorial series would have told you the importance of implementing DevOps tools for making our lives simpler. And by now you should be interested in how they are orchestrated (integrated) together to solve our day-to-day woes right?
Let’s get started then. But if you lack clarity on the need for DevOps, then you can refer to this blog: What is DevOps?
Before going any further, let’s recap what are the different tools and where they fall in the DevOps lifecycle.
Most Used DevOps Tools
Well i’m pretty sure you’re impressed with the above image. But, you might still have problems relating the tools to various phases. Don’t you?
Learn DevOps From Experts
In that case, let’s take a step back and first understand what are the various phases present in the DevOps lifecycle. Below are the 5 different phases any software/ application has to pass through, when developed via the DevOps lifecycle:-
This is the phase which involves ‘planning‘ and ‘coding‘ of the software application’s functionality. There are no tools for planning as such, but there are a number of tools for maintaining the code.
The vision of the project is decided during the ‘planing’ phase and the when they start writing the code, the act is referred to as ‘coding’ phase.
The code can be written in any language, but it is maintained by using Version Control tools. These are the Continuous Development DevOps tools. The most popular tools used are: Git, SVN, Mercurial, CVS and JIRA.
So why is it important to main versions of the code? Which of the Dev vs Ops problem does it solve? Let’s understand that first.
So, which is my favorite tool? That has got to be Git & GitHub. Why? Because Git allows developers to collaborate with each other on a Distributed VCS (Version Control System).
Since there is no dependency on the central server, ‘pulls’ & ‘pushes’ to the repository can be made from remote locations. This central repository where the code is maintained is called GitHub.
Git is in-fact the world’s leading Version Control system. If you don’t want to take my word for it, you can just google that up. So let’s move on to the next topic in this DevOps tools blog. You can read more about Git from here: What is Git?
When the code is developed, it is maddening to release it straight to deployment. The code should first be tested for bugs and performance. Can we agree on that statement?
If yes, then what would be the procedure to perform the tests? Would it be manual testing? Well, it can be, but it is very inefficient. So, what is better? Automation testing? Exactly! Sounds amazing right?
Automation testing is the answer to a lot of cries of manual testers. Tools like Selenium, TestNG, JUnit/ NUnit are used to automate the execution of our test cases. So, what are its benefits?
And the continuous use of these tools while developing the application is what forms the ‘Continuous Testing‘ phase during DevOps lifecycle. Which of these is my favorite tool? A combination of these tools actually!
Selenium is my favorite, but Selenium without TestNG is equivalent to a snake without a poisonous sting, atleast from the perspective of DevOps lifecycle.
Selenium does the automation testing, and the reports are generated by TestNG. But to automate this entire testing phase, we need a trigger right? So, what is the trigger? This is where the role of Continuous Integration tools like Jenkins coming into the picture.
You can read more about Selenium and automation testing from this blog of mine: What is Selenium? Now, lets move onto the next topic in this DevOps tools blog.
This is the most brilliant DevOps phase. It might not make sense during the first cycle of release, but then you will understand this phase’s importance going forward.
Wait, that is not completely correct. Continuous Integration (CI) plays a major role even during the first release. It helps massively to integrate the CI tools with configuration management tools for deployment.
Undisputedly, the most popular CI tool in the market is Jenkins. And personally, Jenkins is my favorite DevOps tool. Other popular CI tool are Bamboo and Hudson.
Why do I hold such a high regard for Continuous Integration tools? Because they are the one’s which hold the entire ‘DevOps structure’ together.
It is the CI tools which orchestrates the automation of tools falling under other DevOps lifecycle phases. Be it, Continuous Development tools, or Continuous Testing tools, or Continuous Deployment tools, or even Continuous Monitoring tools, the Continuous Integration tools can be integrated with all of them.
Because CI tools are capable of this and so much more, they are my favorite. Hence my statement: Jenkins is an elementary DevOps tool. You can read more about Jenkins here: What is Jenins?
This (Continuous Deployment) is the phase where action actually happens. We have seen the tools which help us build the code from scratch and also those tools which help in testing. Now it is time to understand why DevOps will be incomplete without Configuration Management tools or Containerization tools. Both set of tools here help in achieving Continuous Deployment (CD).
You can read more about Docker from here: What is Docker? So now, let’s move on to the final topic in this DevOps tools blog.
Well, what is the point of developing an application and deploying it, if we do not monitor its performance. Monitoring is as important as developing the application because there will always be a chance of bugs which escape undetected during the testing phase.
Which tools fall under this phase? Splunk, ELK Stack, Nagios, Sensu, NewRelic are some of the popular tools for monitoring. When used in combination with Jenkins, we achieve Continuous Monitoring. So, how does monitoring help?
Which is my favorite tool here? I would prefer either Splunk or ELK stack. These two tools are major competitors. They pretty much provide the same features. But the way they provide the functionality is where they are different.
Splunk is a propriety tool (paid tool). But, this also effectively means that working on Splunk is very easy. ELK stack however, is a combination of 3 open-source tools: ElasticSearch, LogStash & Kibana. It maybe free, but setting it up is not as easy as a commercial tool like Splunk. You can try both of them to figure out the better for your organization. You can read more about Splunk here: What is Splunk?
Well these were the various phases of the DevOps lifecycle and the tools that fit seamlessly in those situations. I hope you understood the application of these DevOps tools in the industry.
If you wish to learn more about DevOps and build a career in the domain, check out Edureka’s DevOps Certification Training that comes with 24*7 support to guide you throughout your learning period.
If you have any doubts, feel free to put them in the comment section below and I will get back with an answer at the earliest.