21 open source DevOps tools (and what they do)
A birdâs eye view of the landscape of open source DevOps tools, and what they actually do.
Sometimes, it seems like there are a million different tools in DevOps. You can barely go a day without stumbling across a new tool that you need to know. But which are the biggest and most popular tools out there? Which are worth spending your time on? Weâre here to help you, with this rundown.
Weâve put together this guide to 20 open source DevOps tools, so you can start learning, or so you can understand what people are talking about at work. These DevOps tools are well-known in I.T., and theyâve been adopted by thousands of organizations. So keep reading to find out about some of the most popular DevOps tools out there.
If youâre already working in the DevOps or SRE field, youâre probably already using some of these tools, but you might learn something new in this list.
These open source DevOps tools are completely free to download and try. If you want to start learning, just download them and run either on your laptop or in the cloud.
So letâs take a closer look at some open source DevOps tools.
If you want some projects to exercise your skills, check out our DevOps Project Ideas article, which will give you some inspiration for homework projects you can try.
đš Build and packaging tools
First letâs take a look at some tools for building and packaging software. These tools help you build or share code.
A build tool helps you package an application into a format which is ready to deploy onto a server, or into the cloud. More and more people are using containers as a packaging format, and Docker helps with that.
Also included in this category are tools which help you to share libraries and packages.
Git
Git is a tool for managing, sharing and tracking changes in source code files.

Initial release | 2005 |
License | GPL v2.0 |
Download link | Download (for Mac/Windows/Linux), or install on Linux via your package manager |
Source code | https://github.com/git/git |
Of all of these DevOps tools, Git is probably the most well-known and widely-used, so it makes sense for us to start our list here!
Git is a tool for storing and tracking changes in code. It started life as a tool to help Linux developers manage the Linux source code1. But it since grew to much more than that. Itâs the de facto way to store code. Over 93% of developers use Git2.
On Linux, install the git
package, and you can start working with Git right away at the command line. Or, on Windows, you can install Git for Windows. There are also lots of graphical Git tools, the most popular is
RECOMMENDED: A Git branching strategy for microservices
What can you do with Git?
-
You can store code (in something called a repository). You can ârewindâ your code to a previous version, and show the differences between versions â and do this all entirely on your local computer.
-
You can create repositories to manage your many different software projects independently of each other.
-
When youâre ready to share code with others, you can share your Git repository, including all of its history, on a Linux server.
-
Itâs even easier to share your code with others if you use an online Git repository hosting service, like GitHub, GitLab or Bitbucket.
Docker
Docker is a toolkit for building and running software in containers.

Initial release | 2013 |
Backed by | Docker, Inc. |
License | Apache 2.0 |
Download link | Docker Desktop (for Windows/Mac desktops), Docker Engine (for Linux) |
Source code | https://github.com/moby/moby |
You can use Docker to run applications in containers, build your own Docker container images, or find and download images that have been published by other people.
On your desktop, the best way to get started is to install Docker Desktop. Or on a server, you can install Docker Engine.
Weâve got a guide to containers if you want to understand more about containers and what they do!
What types of things can you do with Docker?
-
As a desktop user⊠you can use one of Dockerâs tools (like Docker Desktop) to run applications that have been packaged into container form. There are thousands of container images available in Docker Hub.
-
As a developer, you can use Docker to build a container image for your own application, and share the image with others.
-
As a server administrator, you can use Docker to run applications in containers, whether thatâs apps from your developers, or third-party apps like MySQL.
Packer
Packer lets you create virtual machine images from code.
Initial release | June 2013 |
Backed by | Hashicorp, Inc. |
Written in | Go |
License | Mozilla Public Licence 2.0 |
Download link | https://www.packer.io/downloads |
Source code | https://github.com/hashicorp/packer |
Packer helps you to follow the DevOps practice of âinfrastructure-as-codeâ when youâre working with virtual machines. Traditionally, it hasnât been so easy to create virtual machine images, because it involved some manual work, or pointing-and-clicking. Thatâs not easily repeatable.
With Packer, you can create virtual machine images repeatably by writing scripts.
Packer is also extensible through plugins. You can use a variety of provisioners to configure your virtual machines, like PowerShell or Ansible. And you can use a variety of builders to package your virtual machine into one of many formats, like Amazon EC2 or VirtualBox.
What types of things can you do with Packer?
-
You can create a custom virtual machine image, containing an operating system, and all of the software that you want, installed and configured with code.
-
Once youâve created your image with Packer, you can upload it to your cloud provider, and use it to create new virtual machines. Packer supports many of the image formats used by the cloud providers, like AWSâs AMI format.
-
You might use Packer to create so-called golden images, which are virtual machine images that are customised for your companyâs environment. They might have a certain configuration, or some security patches installed. Publishing and using golden images is often used to enforce standards within an organisation.
For a good technical introduction to Packer, check out Sarasa Gunawardhanaâs blog on faun.pub.
Sonatype Nexus
Nexus is an artifact repository (or âartefactâ if youâre a Brit!).
Also known as | Nexus, Nexus3, Nexus Repository OSS |
Initial release | 2008 |
Backed by | Sonatype, Inc. |
License | Eclipse Public Licence 1.0 |
Download link | https://www.sonatype.com/products/nexus-repository |
Source code | https://github.com/sonatype/nexus-public |
Jfrog Artifactory
Artifactory is an artifact repository.
Itâs very similar to Nexus: itâs a bucket for storing software packages that are consumed or produced by your applications.
Also known as | Artifactory, Artifactory OSS, Jfrog |
Initial release | Some time before 2010 |
Backed by | Jfrog, Ltd. |
License | GNU Affero General Public License |
Download link | https://jfrog.com/community/download-artifactory-oss/ |
Source code | https://releases.jfrog.io/artifactory/bintray-artifactory/org/artifactory/oss/jfrog-artifactory-oss/ |
đș Application orchestration
These tools are designed to help you run applications, keep them up and running, and scale them up when you need to handle more load.
Kubernetes
Kubernetes is an orchestration tool for managing your applications running in containers.

Also known as | Kubernetes, K8s |
Initial release | June 2014 |
Supported by | Google, Cloud Native Computing Foundation, plus many commercial vendors like Red Hat, IBM |
Written in | Go |
License | Apache License 2.0 |
Download link | https://kubernetes.io/releases/download/ |
Source code | https://github.com/kubernetes/kubernetes |
As well as plain old âvanillaâ Kubernetes, there are other distributions available. OKD is a distribution of Kubernetes which comes with extra features and DevOps tooling.
Nomad
Nomad is a tool for managing your applications, whether they run in containers or not.
Nomad can start and run instances of your applications on a cluster of servers.
Initial release | September 2015 |
Backed by | Hashicorp, Inc. |
License | Mozilla Public Licence 2.0 |
Written in | Go, JavaScript |
License | Apache License 2.0 |
Download link | https://www.nomadproject.io/ |
Source code | https://github.com/hashicorp/nomad |
Docker Swarm
Docker Swarm is a tool for managing Docker containers running on a cluster of servers.
Initial release | 2014 |
Backed by | Docker, Inc. |
License | Apache 2.0 |
Written in | Go |
Download link | https://docs.docker.com/get-docker/ |
Source code | https://github.com/moby/swarmkit |
đ Infrastructure automation
These tools are designed to automate the work involved in setting up infrastructure â this means things like servers, firewalls, network components, and so on.
Terraform
Terraform is a tool for creating and managing cloud resources with code.
Initial release | 2014 |
Backed by | Hashicorp, Inc. |
License | Mozilla Public Licence 2.0 |
Written in | Go |
Download link | https://www.terraform.io/downloads |
Source code | https://github.com/hashicorp/terraform |
Ansible
Ansible is a tool for automatic configuration of infrastructure - e.g. installing packages, configuring web servers, creating user accounts, and so on.
Initial release | 2012 |
Backed by | Red Hat |
License | GPL 3.0 |
Written in | Python |
Installation instructions | https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html |
Source code | https://github.com/ansible/ansible |
RECOMMENDED: How to run an Ansible playbook
Pulumi
Pulumi is a tool for creating and managing infrastructure in the cloud.
To create infrastructure with Pulumi, you use the Pulumi API for your preferred programming language â available for Python, Go, JavaScript and C# â and Pulumi creates your services in the cloud for you.
Initial release | 2019 |
Backed by | Independent start-up |
License | Apache 2.0 License |
Written in | Go (+ others) |
Installation instructions | https://www.pulumi.com/docs/get-started/install/ |
Source code | https://github.com/pulumi/pulumi |
âł CI/CD
GitLab
GitLab is a tool for managing application source code and automating the build and release of your application.
GitLabâs built-in CI/CD feature lets you create workflows to build, test and deploy your applications.
Initial release | October 2011 |
Backed by | Independent start-up |
License | MIT |
Written in | Ruby, JavaScript |
Installation instructions | https://about.gitlab.com/install/ |
Source code | https://gitlab.com/gitlab-org/gitlab |
Jenkins
Jenkins is an automation server for running software build and testing jobs, and much more.
Jenkins is a bit of a stalwart and has a mixed following. (Some people love it, some people hate it!)
Initial release | February 2011, a fork of the Hudson project from 2005 |
Backed by | CloudBees |
License | MIT |
Written in | Java |
Download link | https://www.jenkins.io/download/ |
Source code | https://github.com/jenkinsci/jenkins |
Tekton
Tekton is a tool for running pipelines inside Kubernetes.
With Tekton, you can create CI/CD pipelines on Kubernetes, to build, test and deploy your apps.
Initial release | 2018 |
Backed by | Google, Red Hat |
License | Apache 2.0 |
Written in | Go |
Download link | https://tekton.dev/ |
Source code | https://github.com/tektoncd |
Argo CD
Argo CD is a continuous delivery tool for Kubernetes, which uses the principle of GitOps.
GitOps is the principle of using Git as the single source of truth for application deployment information, and ensuring that the state of a cluster is the same as the state which is defined in Git.
Initial release | 2018 |
Supported by | Red Hat, used in Red Hat OpenShift GitOps |
License | Apache 2.0 |
Written in | Go |
Download link | https://argoproj.github.io/cd/ |
Source code | https://github.com/argoproj/argo-cd |
đ Testing & quality
These tools help to run tests against your software, and ensure its quality.
Sonarqube
Sonarqube is a code-quality checking tool.
Initial release | 2007 |
Backed by | SonarSource S.A |
License | LGPL 2.0 |
Written in | Java |
Download link | https://www.sonarqube.org/downloads/ |
Source code | https://github.com/SonarSource/sonarqube |
Selenium
Selenium is a browser automation tool. Itâs used to simulate interactions with websites, fetch information, and perform tests.
Initial release | 2004 |
Backed by | Software Freedom Conservancy (non-profit) |
License | Apache 2.0 |
Written in | Java, C#, JavaScript & others |
Download link | https://www.selenium.dev/downloads/ |
Source code | https://github.com/SeleniumHQ/selenium |
Cypress
Cypress is a testing tool for anything that runs in a browser.
With Cypress, you can write and run end-to-end tests for your web applications.
Initial release | ~2015 |
Backed by | Independent |
License | MIT |
Download link | https://on.cypress.io/installing-cypress |
Source code | https://github.com/cypress-io/cypress |
đ Logging & monitoring
Prometheus
Prometheus is a monitoring and alerting toolkit.
Initial release | November 2012 |
Supported by | Cloud Native Computing Foundation, initially developed at SoundCloud |
License | Apache 2.0 |
Written in | Go |
Download link | https://prometheus.io/download/ |
Source code | https://github.com/prometheus/prometheus |
Prometheus consists of a time-series database and some tools to collect metrics from applications or servers.
Grafana
Grafana is a dashboarding tool. Itâs often used to show system and application stats, to make it easier to visualise whatâs happening in a system.
Initial release | 2014 |
Backed by | Grafana Labs |
License | AGPL 3.0 |
Written in | TypeScript, Go |
Download link | https://grafana.com/get/ |
Source code | https://github.com/grafana/grafana |
Grafana lets you create visual dashboards to display data stored in different places. It supports lots of different types of data stores, from metrics tools like Prometheus, to databases like Postgresql.
Grafana runs on a server, and you create and view dashboards using any web browser.
What types of things can you do with Grafana?
- Create a dashboard to monitor your sourdough starter (with a little help from a temperature and humidity sensor!)
Elasticsearch
Elasticsearch is a search engine which is usually used to analyse log files and other huge archives of data.
Initial release | February 2010 |
Backed by | Elasticsearch B.V. |
License | Server Side Public License |
Written in | Java |
Download link | https://www.elastic.co/downloads/elasticsearch |
Source code | https://github.com/elastic/elasticsearch |
Elasticsearch is often combined with Logstash and Kibana to gather logs from servers and applications, and produce dashboards. When these three tools are used together, itâs known as âthe ELK stackâ.
Elasticsearch is based on the Apache Lucene library.
Wrapping up
Weâve only scratched the surface of the huge and growing landscape of DevOps tools here today â but we had to stop somewhere, otherwise we were going to run out of bandwidth!
Weâve tried to include a range of different types of tools, from the tools used to build software and package it, to running and orchestrating apps at scale, monitoring and beyond. These projects all have strong communities, and are used in many hundreds of organisations around the world, so be sure to check them out when you get a chance!
Happy DevOpsing!
-
A Short History of Git. git-scm.com. Retrieved 2022-07-08. ↩
-
Stack Overflow Developer Survey. Stack Overflow. 2022. ↩