Organisations are adopting DevOps today for their own good. This article briefly discusses a few open source DevOps tools that will be used a lot in the near future.
DevOps is a culture, and implementing its practices helps manage the application life cycle in an effective manner using automation. It has three pillars — people, processes, and tools. Tools play a critical role in DevOps or culture transformation initiatives. People and processes help in maintaining uniformity and sustainability across business units or projects in an organisation that aims for faster time to market with high quality for end users.
Category-wise list of DevOps tools
Category | Tools |
Source code management | GitLab, Git, GitHub, Atlassian BitBucket, |
Code analysis tools | SonarQube |
CI/CD | Jenkins, Microsoft Azure DevOps, TeamCity, GitLab, GitHub, Atlassian Bamboo |
Test automation | Selenium, Appium, JMeter |
Configuration management | Ansible, Puppet, Chef |
Containerisation and orchestration | Docker and Kubernetes |
Cloud service providers | Amazon Web Services, Microsoft Azure, Google Cloud Platform |
Monitoring | Prometheus, Grafana |
Logging | Elastic Search, FluentD, FluentBit, Kibana |
Communication and collaboration | Microsoft Teams, Slack, Skype and Zoom |
I have used a few open source tools and I believe that these are very important for implementing DevOps practices in 2022 and beyond. Let’s take a brief look at them.
GitLab
This DevOps platform provides the ability to plan, develop, secure, and operate software in a single application. Its essential features include cache and artifact management.
In my experience, GitLab has one of the most futuristic features for implementing DevOps practices.
Initial release | 2014 | ||||||||||||||||||||||||||||||
Stable release | 14.6.0 | ||||||||||||||||||||||||||||||
Written in | Ruby, Go and JavaScript | ||||||||||||||||||||||||||||||
Licence | Community Edition – MIT License | ||||||||||||||||||||||||||||||
Website | about.gitlab.com | ||||||||||||||||||||||||||||||
GitHub repository | https://gitlab.com/gitlab-org/gitlab-foss/ | ||||||||||||||||||||||||||||||
Features |
|
||||||||||||||||||||||||||||||
How is it useful in implementing DevOps practices? | DevOps platform
|
||||||||||||||||||||||||||||||
Can we integrate it with Pipeline as Code? | Yes. The command is:
Gitlab-ci.yaml |
||||||||||||||||||||||||||||||
Is a commercial flavour available? | Yes | ||||||||||||||||||||||||||||||
Pricing | https://about.gitlab.com/pricing/Free, Premium, Ultimate | ||||||||||||||||||||||||||||||
Community | 2500+ code contributors | ||||||||||||||||||||||||||||||
Use cases |
|
||||||||||||||||||||||||||||||
Important Git commands |
|
Jenkins
Jenkins is an open source tool that provides integration with existing tools used in application life cycle management to automate all activities, starting from build to test and deploy. Many beginners start their journey of automation using Jenkins. It is easy to learn and has a huge community for support.
Jenkins offers a simple way to create a pipeline that includes continuous integration and continuous delivery. Plugin based architecture helps to use existing tools in the pipeline; hence, too many changes in culture can be avoided in one go.
Initial release | 2011 |
Stable release | 2.324 |
Written in | Java |
Licence | MIT |
Website | www.jenkins.io |
GitHub repository | https://github.com/jenkinsci/jenkins |
Features |
|
How is it useful in implementing DevOps practices? | Automation server helps to automate activities involved in application life cycle management |
Is a commercial flavour available? | CloudBees Jenkins |
Awards |
|
Third party integrations |
|
Docker
Docker is a lightweight DevOps tool that helps to speed up and ease different workflows in your software development life cycle with a combined methodology. A Docker container image is a standalone package that contains all the dependencies required for running an application. It is an open source lightweight tool to create, deploy, and manage containers on a different host operating system using resource isolation features, such as cgroups and Linux kernels.
A container package can have application code, libraries, and configurations. The container engine is installed on the host OS.
Initial release | 2013 | ||||||||||||||||||
Stable release | 20.10.11 | ||||||||||||||||||
Written in | Go | ||||||||||||||||||
Licence | Apache License 2.0 Docker Community Edition |
||||||||||||||||||
Website | https://hub.docker.com/https://www.docker.com/ | ||||||||||||||||||
GitHub repository | https://github.com/docker | ||||||||||||||||||
Features |
|
||||||||||||||||||
How is it useful in implementing DevOps practices? | OS-level virtualisation, Containers | ||||||||||||||||||
Can we integrate it with Pipeline as Code? | Yes | ||||||||||||||||||
Is a commercial flavour available? | Docker Enterprise Edition | ||||||||||||||||||
Docker commands |
|
Kubernetes
Kubernetes or k8s is an open source, extensible and portable container orchestration platform developed by Google. It offers declarative configuration and automation for deployment. It has become one of the most popular tools for DevOps practices because of its capabilities and features for deployment, management, and scaling applications in Kubernetes clusters. It helps to manage resources effectively.
We can create a Kubernetes cluster in an on-premise environment as well as on private and public clouds. Public cloud provides managed services for Kubernetes. Google Cloud Platform has Google Kubernetes Engine, AWS has Amazon Elastic Kubernetes Services (EKS) and Azure has Azure Kubernetes Service (AKS) for managing Kubernetes clusters in a cloud environment.
Initial release | 2014 | ||||||||||||||||
Stable release | 1.22.2 | ||||||||||||||||
Written in | Go | ||||||||||||||||
Licence | Apache License 2.0 | ||||||||||||||||
Website | https://kubernetes.io/ | ||||||||||||||||
GitHub repository | https://github.com/kubernetes/Kubernetes | ||||||||||||||||
Features |
|
||||||||||||||||
How is it useful in implementing DevOps practices? | Container orchestration and management | ||||||||||||||||
Can we integrate it with Pipeline as Code? | Yes | ||||||||||||||||
Is a commercial flavour available? | Cloud flavours are available | ||||||||||||||||
Important Kubernetes commands |
|
Prometheus
This is an open source tool for monitoring and alerting. The Prometheus ecosystem has components such as a Prometheus server, client libraries, a push gateway, exporters for services, an alert manager, and support tools.
Prometheus has features such as a multi-dimensional data model, a flexible query language, and multiple modes of graphing and dashboarding support.
Initial release | 2012 |
Stable release |
v2.32.0 |
Written in | Go |
Licence | Apache License 2.0 |
Website | https://prometheus.io/ |
GitHub repository | https://github.com/prometheus/prometheus |
Features |
|
How is it useful in implementing DevOps practices? | Monitoring |
Is a commercial flavour available? | Prometheus is 100 per cent open source and community-driven |
Terraform
This open source ‘Infrastructure as Code’ tool, developed by HashiCorp, helps in creating immutable infrastructure to avoid the problem of configuration drift. Terraform is a platform-agnostic declarative coding tool that helps developers to use a high-level configuration language to manage infrastructure. It supports different cloud providers like AWS, Azure, Google Cloud Platform, and so on.
Initial release | 2014 | ||||||||||||||
Stable release | 1.0.10 | ||||||||||||||
Written in | Go | ||||||||||||||
Licence | Mozilla Public License v2.0 | ||||||||||||||
Website | https://www.terraform.io/ | ||||||||||||||
GitHub repository | https://github.com/hashicorp/terraform | ||||||||||||||
Features |
|
||||||||||||||
How is it useful in implementing DevOps practices? | Infrastructure as Code | ||||||||||||||
Can we integrate it with Pipeline as Code? | Yes. It can be part of Pipeline as Code, and different strategies can be used to create resources and deploy applications in different cloud platforms. | ||||||||||||||
Important Terraform commands |
|
||||||||||||||
Tutorials | https://learn.hashicorp.com/terraform |
SonarQube
SonarQube works like a sanitiser and helps clear bugs, vulnerabilities and code smell in the code. It supports more than 20 programming languages for static code analysis (SCA).
It is much easier to integrate static code analysis using SonarQube in Pipeline as Code. This tool helps to transform the culture of an organisation from manual to automated code review using quality gates and profiles.
Initial release | 2006-07 |
Stable release | 8.9 |
Written in | Java |
Licence | Lesser GNU General Public License |
Website | https://www.sonarqube.org/ |
GitHub repository | https://github.com/SonarSource/sonarqube |
Features |
|
How is it useful in implementing DevOps practices? | Static code analysis |
Can we integrate it with Pipeline as Code? | Yes |
Is a commercial flavour available? | Yes |
Grafana
This open source tool is fully managed by Grafana cloud, but you can run the enterprise version on your infrastructure with self-managed options.
Grafana is one of the most popular tools when we are using Kubernetes. It is easy to install, configure and manage Grafana and monitoring metrics keeping Prometheus as a data source.
Initial release | 2014 |
Stable release | 8.3.3 |
Written in | Go, TypeScript |
Licence | GNU Affero General Public License, version 3.0 |
Website | https://grafana.com/ |
GitHub repository | https://github.com/grafana/grafana |
Features |
|
How is it useful in implementing DevOps practices? | Visualisation of monitoring metrics |
Is a commercial flavour available? | https://grafana.com/pricing/ |
Ansible
Ansible is an open source IT automation/configuration management tool that provides support for cross-platforms. It is easy to use, and provides security and reliability for safe adoption in an organisation.
It is also popular for deployments and rolling updates in release management activities. Ansible is different from other popular configuration management tools as it is agentless. It can be integrated with Kerberos, LDAP, and other authentication management systems.
Initial release | 2012 |
Stable release | 5.0.1 |
Written in | Python, PowerShell, Shell, Ruby |
Licence | GNU General Public License |
Website | https://www.ansible.com/ |
GitHub repository | https://github.com/ansible/ansible |
Features | Distributed architecture Easy integration with Docker Supports hybrids, on-premise, or cloud environments |
How is it useful in implementing DevOps practices? | Configuration management tool Infrastructure as Code |
Can we integrate it with Pipeline as Code? | Yes |
Is a commercial flavour available? | Yes https://www.ansible.com/products/pricing |
Trivy
Trivy is an open source yet simple and comprehensive vulnerability/misconfiguration scanner for containers and other artifacts.
It detects vulnerabilities of the following:
- OS packages: Alpine, RHEL, CentOS, etc
- Language-specific packages: Bundler, Composer, npm, yarn, etc.
- Infrastructure as Code (IaC): Terraform and Kubernetes
Stable release | V0.22.0 |
Written in | Go |
Licence | Apache-2.0 License |
Website | https://aquasecurity.github.io/trivy/v0.22.0/ |
GitHub repository | https://github.com/aquasecurity/trivy |
Features |
|
How is it useful in implementing DevOps practices? |
|
Can we integrate it with Pipeline as Code? | Yes. The pipeline stage can be used to analyse Docker images and publish the report. |
Example | trivy image python:3.4-alpine |
Docker image | docker pull aquasec/trivy:0.22.0 |