10 Best DevOps Tools in 2019 (On-premise and Cloud Tools)

List of the most popular on-premise and cloud DevOps Tools:

Our last DevOps Series tutorial focused on Continuous Delivery in DevOps, now let's see about the best DevOps Tools.

In our Software Testing forum we have seen several excellent tutorials on areas like Project Management, ALM, Defect Tracking, Testing etc. along with the individual tools that are best in class in a particular segment or in the appropriate area of SDLC.

And I have written some tutorials on IBM and Microsoft ALM tools. But now my focus is on the general trend of today's automation market.

Devops ToolsFor On-Premise and Cloud

DevOps plays a vital role in providing automation in the area of Build, Testing and Release to project teams which are normally termed today as Continuous Integration, Continuous Testing, and Continuous Delivery.

Hence, teams, today are looking at faster delivery, quick feedback from customers, providing quality software, less recovery cycle time from any crashes, minimize defects etc. from more and more automation. Thus one needs to ensure that with all the tools used and about the Integrations for the Development and Operations team to collaborate or communicate better.

In this tutorial, I will provide some guidelines which according to me are the possible DevOps tools and scenarios that you could look to use for Java/J2EE projects for On-Premise and Cloud Deployments and most importantly how they could integrate and operate efficiently.

Illustrative Devops Pipeline

Let’s now see a larger picture of how all the tools that we discussed below integrate and give us the desired DevOps pipeline which the teams are looking from an end to end automation point of view.

Illustrative Devops Pipeline

I have always believed that the process also plays a very important role in achieving the goals which I mentioned in the previous section. So it is not only tools that enable DevOps but a process like Agile also plays a very important role from the point of view of faster delivery.

Best DevOps Tools in 2019

Needless to say, there are many tools out of which I would be discussing here the best free and paid ones.

#1) Kamatera (Recommended)

Kamatera is a Top Tool for the Cloud Application Deployment.

Cloud computing offers many benefits to application developers. You should take advantage of and choose a cloud provider that enables you to deploy the applications across multiple locations worldwide for a fast and responsive experience for the application.

Cloud Application deployment

Here is the best service provider to deploy the most popular applications on cloud infrastructure for free.

Deploy in seconds the most popular application in the Cloud for Free. No Setup fee, No commitment, Cancel any time. Just select an application you want to deploy from a list of the most popular applications like:

CPanel, Docker, DokuWiki, Drupal, FreeNAS, Jenkins, Joomla, LEMP, Magento, Memcached, Minio, MongoDB, NFS, NextCloud, OpenVPN, Redis, Redmine, Tomcat, WordPress, Zevenet, MySQL, node.js, pfSense, phpBB, phpMyAdmin

=> Visit Kamatera for more details

*************************

#2) Nagios

Tool Name: Nagios Core

Nagios Logo

Description: It is an open source tool. This tool is written in C language. It is used for network monitoring, server monitoring, and applications monitoring.

Key Features:

  • Helps in monitoring Windows, Linux, UNIX, and Web applications.
  • For Server monitoring, it provides two methods namely agent-based and agentless.
  • While monitoring the network, it checks network connections, routers, switches, and other required things also.

Cost: Free.

Companies using the tool: Cisco, Paypal, United Health Care, Airbnb, and Fan Duel etc. It has more than 9000 customers.

Click here for Download Link.

*************************

#3) Kiuwan

kiuwan-logo

Kiuwan adds security into DevOps understanding how SAST and SCA testing should be implemented. With a unique distributable engine, pipelines are never at risk of creating bottlenecks and TTM is improved while ensuring the most stringent security checks are in place.

With a DevSecOps approach, Kiuwan achieves outstanding benchmark scores (Owasp, NIST, CWE, etc) and offers a wealth of features that go beyond static analysis, catering to every stakeholder in the SDLC.

Complete integration with your favorite tools (Jira, Jenkins, CircleCI, Bamboo, Slack, Visual Studio, IntelliJ, etc…)

Visit Official Website Link: Kiuwan Code Security

*************************

#4) Chef

Tool Name: Chef DK

Chef Logo

Description: This tool is used for checking the configurations which are applied everywhere and also helps in automating the infrastructure.


Key Features:

  • It ensures that your configuration policies will remain flexible, versionable, testable and readable.
  • It helps in standardizing and continuously enforce the configurations.
  • It automates the whole process of ensuring that all systems are correctly configured.

Cost: Free

Companies using the tool: Facebook, Firefox, Hewlett Packard Enterprise, and Google Cloud Platform etc. It has many more customers.

Click here for Download Link.

*************************

#5) Jenkins

Tool Name: Jenkins

Jenkins Logo

Description: Jenkins is an automation server. It is an open source tool and written in Java. It helps many projects in automating, building and deploying.

Key Features:

  • It helps in distributing the work on multiple machines and platforms.
  • Jenkins can act as a continuous delivery hub for the projects.
  • Supported operating systems are Windows, Mac OS X, and UNIX.

Cost: Free

Companies using the tool: Capgemini, LinkedIn, AngularJS, Open stack, Luxoft, Pentaho etc.

Click here for Download Link.

*************************

#6) Vagrant

Tool Name: Vagrant

Vagrant Logo

Description: Vagrant is developed as an open source software by HashiCorp. It is written in Ruby. By managing the development environment it helps in the development of software.

Key Features:

  • Supported operating systems are Windows, Mac OS, Linux, and FreeBSD.
  • Simple and easy to use.
  • It can be integrated with existing configuration management tool like chef, puppet etc.

Cost: Free

Companies using the tool: BBC, Disqus, Mozilla, Edgecast, Expedia, Oreilly, yammer, nature.com, LivingSocial, ngmoco, and Nokia etc.

Click here for Download Link.

*************************

#7) Splunk

Tool Name: Splunk Enterprise/ Splunk Cloud/ Splunk Light/ Splunk Free

Splunk Logo

Description: Splunk is a software platform which converts the machine data into valuable information. For this, it gathers the data from different machines, websites etc. Splunk is headquartered in San Francisco.

Key Features:

  • Splunk Enterprise will help you in aggregating, analyzing and finding answers from your own machine data.
  • Splunk Light provides features for small IT environments.
  • With the help of Splunk Cloud, Splunk can be deployed and managed as a service.

Cost:
Splunk Free: Free
Splunk Light: Starts from $75
Splunk Enterprise: Starts from $150
Splunk Cloud: Contact them for pricing details.

Companies using the tool: HYATT, Coca-Cola, Zillow, Discovery, Domino’s, e-Travel, pager duty, and many more customers.

Click here for Download Link.

#8) Ansible

Tool Name: Ansible

Ansible Logo

Description: This open source tool provides software-related services like application deployment, configuration management etc.

Key Features:

  • It provides agentless architecture.
  • It is powerful because of workflow orchestration.
  • It is simple and easy to use.

Cost: Free

Companies using the tool: Cisco, DLT, Juniper, and hundreds of other customers.

Click here for Download Link.

#9) Prometheus

Tool Name: Prometheus

Prometheus Logo

Description: It is an open source tool which monitors and gives alerts.

Key Features:

  • It has a multi-dimensional data model.
  • It has a flexible query language.
  • It uses the intermediary gateway for pushing time series.
  • Provides graphs in multiple modes.

Cost: Free

Companies using the tool: Ericsson, Maven, Jodel, Quobyte, Show Max, Argus, SoundCloud, and many more customers.

Click here for Download Link.

#10) Ganglia

Tool Name: Ganglia

Ganglia Logo

Description: It is an open source monitoring system for clusters and grids.

Key Features:

  • It can be scalable to handle clusters with 2000 nodes.
  • It uses technologies such as XML, XDR, portable data transport, and RRD tool.
  • It uses well-defined data structures and algorithms.

Cost: Free

Companies using the tool: Twitter, Flickr, Last.fm, Dell, Microsoft, Berkeley, Cisco, Motorola, and many more users.

Click here for Download Link.

#11) Snort

Tool Name: Snort

Snort Logo

Description: This system is developed by Cisco Systems for finding network intrusions.

Key Features:

  • Protocol Analysis
  • Content Searching and Matching
  • Real-time traffic analysis

Cost: Free

Companies using the tool: It has more than five lakh registered users and millions of users have downloaded Snort.

Click here for Download Link.

#12) Pagerduty

Tool Name: Pagerduty

Pagerduty Logo

Description: It is a SaaS product for incident response. It was founded in 2009.

Key Features:

  • Sends Email notifications, SMS or phone notifications.
  • Can be integrated with monitoring and security tools.
  • It can set permissions for both user and team-based.

Cost: It has four pricing plans named as Lite, Basic, Standard, and Enterprise. All plans will be billed annually.
Lite: $9 per user per month
Basic: $29 per user per month
Standard: $ 49 per user per month
Enterprise: $99 per user per month

Companies using the tool: Comcast, Google, Credit Suisse, Staples, GAP, eBay, and Panasonic etc. It has more than ten thousands customers.

Click here for download Link.

#13) Puppet

Tool Name: Puppet

Puppet Logo

Description: It is an open source tool. While developing the software this tool will ensure that all the configurations are applied everywhere. Basically, it is a configuration management tool.

Key Features:

  • It can work for hybrid infrastructure and applications.
  • Provides Client-server architecture.
  • Supports Windows, Linux, and UNIX operating systems.

Cost: Free

Companies using the tool: Cisco, Scripps networks, Teradata, and JP Morgan Chase &Co. etc.

Click here for Download Link.

#14) Gulp

Tool Name: Gulp.js

Gulp Logo

Description: This javascript toolkit automates the difficult task of a development process.

Key Features:

  • Easy to use.
  • Simple plugins to work as per the expectations.
  • Forms the builds faster by not writing the intermediary files to the disk.

Cost: Free

Companies using the tool: More than 1000 companies are using this toolkit. And it is installed by more than one lakh users.

Click here for download Link.

DevOps Tool Comparison Table

DevOps ToolsWritten in LanguagePriceTool InfoOS Support
NagiosCFreeMonitor server, network & applicationsWindows
Linux
UNIX
ChefFreeConfiguration management
JenkinsJavaFreeAutomation ServerWindows
MAC OS
UNIX
VagrantRubyFreeBuilds and maintains Virtual software development environmentWindows
MAC OS
Linux
FreeBSD
SplunkIt is a software platform.Free
Light: $75
Enterprise:$150
Search, Monitor & Analyze the data gathered from different machines and websites etc.Cloud based platform.
AnsiblePython & PowerShellFreeProvides software related services like application deployment, configuration management etc.Machines with Python2 or 3.
Windows not supported.
PrometheusGo
Python
Ruby
Java/Scala
FreeIt is a monitoring system and gives alerts.Windows
Linux
Darwin
GangliaC
Perl
PHP
Python
FreeMonitoring system for clusters and grids.Cross-platform
SnortCFreeUsed for finding & preventing network intrusionsCross-platform
PagerdutyJavaScript
Python
Ruby
PHP
Java
Go
C#
Clojure
Lite: $9
Basic: $29 Standard: $ 49 Enterprise: $99
Provides an incident response.Windows
Mac
Web based
Android
iPhone/iPad
PuppetRuby
C++
Clojure
FreeIt is a configuration management toolWindows
Linux
UNIX
GulpJavaScriptFreeThis java script toolkit automates difficult task of development process.Cross-platform

Best On-Premise Build and Deployment DevOps Tools

#1) Atlassian JIRA

JIRA

JIRA is commercial software and licenses need to be procured for installing On-Premise based on the number of users. The tool can be used for Agile Project Management, Defect and Issue Tracking.

As mentioned before a process is a certain pre-requisite for DevOps implementation, so the Project Managers can use JIRA to create Product Backlog, Sprint Backlogs and maintain the entire traceability starting from EPIC, User Story and so on till Test artifacts like Test Case.

Click here to refer to the series of tutorials on how to effectively use JIRA for Project Management, Tasks, Issues, Reporting etc.

Thus, typically in defining any DevOps pipeline, planning should be the first component with the product backlog and sprint backlog defined in JIRA.

I have used JIRA as a planning/defect tracking tool as it integrates well across the DevOps pipeline starting with Jenkins which is used as a Continuous integration tool and is a very important component of DevOps.

Visit the Atlassian JIRA website to know more about JIRA. Get the different pricing options for on-premise and cloud hosting of JIRA.

#2) Eclipse – IDE for Java/J2EE Development

eclipse

Generally, there are many good IDE’s that can be used for Java/J2EE development. Eclipse is one such open source and freeware tool which is used not only for Java/J2EE development but also contains plugins to support other languages like C/C++, Python, PERL, Javascript to name a few.

Thus typically developers write code and commit the code to a version control repository such as Git/GitHub which supports team development. Every developer will download the code from a version control repository, make changes and commit the code back to Git/GitHub.

Any Git commits will be integrated with Jira tasks/defects to see which files have changed, who has changed and any commit comments. This will ensure the traceability of every code change a developer does with the tasks or defects assigned to him.

You can download specific eclipse versions here for your projects.

#3) Git – Version Control Tool

git-logo1

One of the fundamental building blocks of any CI setup is to have a strong version control system. Even though there are different version control tools in the market today like SVN, ClearCase, RTC, TFS, Git fits in very well as a popular and distributed version control system for teams located at different geographical locations.

It is a free and open source tool and supports most of the version control features of check-in, commits, branches, merging, labels, push and pull to/from GitHub etc.

It is pretty easy to learn and maintain for teams initially looking at a tool to version control their artifacts. There are many websites which show how to learn and master Git. You can click here for such a website to read and gain knowledge.

For a distributed setup of maintaining your source code and other files to be shared with your teams, you will need to have an account with an online host service- GitHub.

Though I have suggested Git it is up to the teams and organizations to look at different version control tools which fit in very well in their setup or based on customer recommendation in a DevOps pipeline.

Git can be downloaded for Windows, MacOS, and Linux from the git-scm website.

#4) Jenkins

jenkins

As we have seen certain pre-requisites for any DevOps implementation we will now focus on the main tool for continuous integration which performs build ( ANT or Maven), code analysis and storing the binary artifacts (for e.g. WAR /JAR/EAR file) in a repository manager tool like JFrog Artifactory.

Jenkins is a free open source Continuous Integration tool or server which helps to automate the activities as mentioned of build, code analysis and storing the artifacts. These activities are triggered once a developer or the team commits the code to version control repository.

So a schedule for the build is defined in Jenkins for initiating it. For E.g. it could be once in 2 to 3 days or every Friday at 10 PM etc. This again depends on the completion of tasks assigned to individual developers and the due date for completion. These are all planned in a Sprint Backlog in JIRA as discussed initially.

Jenkins today has so many plugins and works as a CI tool for various different technologies like C/C++, Java/J2EE, .NET, Angular JS etc.

It also provides plugins to integrate with SonarQube for code review, JFrog Artifactory for storing binary artifacts, testing tools like Selenium etc. as a part of the automation process and reduces manual intervention as far as possible.

Typically all builds running on one single build machine is not a good option. Jenkins provides you with a feature of Master-Slave where the builds are distributed, run in different environments and can take a load of the master server.

One of the notable features of Jenkins is to visualize the entire build/delivery process steps as a pipeline.

Jenkins can also help to automate the deployments to app servers like Tomcat, JBoss, Weblogic through plugins and also to container platforms like Docker.

Personally, I prefer the deployments being done with a proper deployment tool like IBM Urbancode or CA RA with its integration to Jenkins. We will see this later in the tutorial.

Today out of my experience I have seen so many organizations using Jenkins to automate the entire build process and also maintain a separate central server to automate the entire build process and facilitating the deployment as well.

Click here to download and install Jenkins.

Example – Jenkins configuration with Git

Jenkins configuration with Git

Example – Jenkins Delivery pipeline

Jenkins Delivery pipeline

Example – Jenkins Master Slave

Jenkins Master Slave

Jenkins Master Slave

In the next section on DevOps tools for Cloud especially AWS, we will see how Jenkins integrates with AWS developer tools like CodePipeline, CodeCommit, CodeBuild, and CodeDeploy

#5) SonarQube

sonarqube

SonarQube is an open source tool which is mainly used for analyzing the code quality.

SonarQube supports analyzing the code of many popular programming languages. The execution of code quality is called during the Jenkins build process and the results of any violations can be seen in the SonarQube dashboard. This also helps to review the code quickly.

Every time a developer makes a change to the source code, Jenkins build process will trigger SonarQube and updates will instantly be available as a part of the automation.

So organizations would need quality and reliable code thereby reducing bugs which could be costly later on in the lifecycle. This is where SonarQube plays a very important role in the Code Quality.

SonarQube

SonarQube

Click here to download and install SonarQube.

#6) JFrog Artifactory

jfrog

We have seen that source code is stored in a version control tool like Git. The binary artifacts produced out of any build process is normally stored in a repository manager like JFrog Artifactory.

Once build is successfully completed the WAR/JAR/EAR files are copied and stored in Artifactory as a part of the post-build action defined in Jenkins. Different versions of the artifacts are also maintained in artifactory. This is very useful if ever there is a need to manually rollback to any previous version.

These artifacts are then picked up for deployment to different app servers like Tomcat, JBoss, Weblogic etc using tools like IBM Urbancode Deploy or CA – RA. Nexus Artifactory is also another popular repository manager tool that can be used. Click here to read more on Nexus.

Different pricing options are available here for JFrog Artifactory (Pro, Pro Plus, Pro X, and Enterprise) which may be suitable for your organization.

Example – Jenkins – Artifatory Integration

Artifatory integration

Click here to download a free trial copy of JFrog Artifactory.

#7) IBM Urbancode Deploy

urbancode-logo

IBM Urbancode Deploy is a commercial tool from IBM which helps to automate the deployment of artifacts for different environments from development until production.

Post the build from Jenkins you can install the IBM Urbancode Deploy plugin and automatically trigger the deployment of the binary artifacts to different environments.

As mentioned before, I personally prefer a pr.oper deployment tool wherein all aspects of deployment are taken care of.

IBM Urbancode Deploy provides the following feature to help in ease of deployments:

  • Automated deployment and rollback
  • Changes propagated to all environments including databases.
  • Appropriate configuration for different environments.
  • Approval process
  • A visual depiction of the complete deployment process.
  • Complete inventory maintained as we know what is deployed and who has deployed.
  • Integration with multiple J2EE app servers like Tomcat, JBoss, Oracle Weblogic, IBM Websphere Application Server etc. and IIS web server for .NET deployments.
  • Integration with container platform like Docker.

Example – Integration of Jenkins with IBM Urbancode Deploy

integration of Jenkins with IBM Urbancode Deploy

Example – Graphical view of application deployment to Tomcat

Graphical view of application deployment to Tomcat

Click here to get a Free trial copy for evaluation purpose of IBM Urbancode Deploy.

You will need to register for an IBM id to download.

#8) CA-Release Automation (RA)

CA Release Automation

CA Release Automation is another similar commercial tool from Computer Associates which provides the above-mentioned features for automated application deployment.

So once the application is built successfully and a WAR file generated it is picked up as a part of Jenkins Post-build action and deployed to the target environment/app server as per the flow defined in CA RA.

Typical steps followed for any deployment either in IBM UCD or CA RA post the build from Jenkins is as follows and can change as per the needs.

  • Download the application WAR/JAR/EAR file to the target environment.
  • Stop the current application running.
  • Un-install the application.
  • Install the new version of the application by downloading from Artifactory or Nexus.
  • Start the application.
  • Check the application status.
  • In case the application did not deploy successfully or may be due to environment compatibility there can be a rollback action as well.

Example: Post-build Action Integration of Jenkins with CA RA

Post-build Action Integration of Jenkins with CA RA

One will need to contact the local IBM or CA team for pricing on IBM Urbancode Deploy or CA RA.

#9) Docker

docker

For quite some time we all have been talking about Virtualization where one physical server provides the feature to host or contains multiple virtual machines. So these VM’s can run either Windows or Linux operating systems and has all the libraries or binaries and applications which run on it.

Typically every VM is very large in size. From a DevOps point of view, you can use every VM for a particular environment like Dev or QA or PROD etc. With VM’s the entire hardware is virtualized.

Docker’s, on the other hand, uses the concept of Containers which virtualizes the Operating System. It can be used to package the application (for E.g. WAR file) along with the dependencies to be used for deploying in different environments.

Docker uses the workflow of BUILD-SHIP-RUN which means you create images (based on Dockerfile), publish the images (to DockerHub) and run the image by which the container is created in any environment.

DockerHub is a registry of images built by communities and can store or upload the images which you build as well.

You can click here to log in and upload images.

DockerHub

Image repository with Tags

Image repository with Tags

Sample Dockerfile to automate deploy of WAR file to Tomcat

FROM tomcat
copy sample.war /usr/local/tomcat/webapps/
CMD [“catalina.sh”,”run”]

Jenkins integration with Docker

Jenkins integration with Docker

#10) Selenium

Selenium

Selenium is a free open source automated functional testing tool to test web applications. It is normally installed as a Firefox browser plugin and helps to record and playback of test scenarios. In a DevOps cycle once the application is deployed on the Test or QA environment selenium automated testing is invoked.

Click here to read more on Selenium features and download for installation.

Selenium as a tool is very easy to learn. I would suggest to read the selenium tutorial series to understand the installation process for the Firefox browser, gain knowledge and master automated testing for web applications.

Selenium

Conclusion

The purpose of this tutorial was to introduce you to the main DevOps tools and services used for On-Premise and Cloud deployment.

It was to provide the enthusiasts of DevOps the popular tools that are available and how they integrate with one single view of automation and not much of manual intervention.

I also wanted to mention about few other DevOps tools which are equally popular like BitBucket (Web-based version control repository similar to GitHub but owned by Atlassian), Bamboo (Continuous Integration and Continuous deployment tool similar to Jenkins developed by Atlassian), Chef/Puppet/Ansible (Managing infrastructure and Application deployment).

Our upcoming tutorial will explain to you all about Installation and configuration of commonly used open source DevOps tools.

PREV Tutorial | NEXT Tutorial