The Most Comprehensive List of DevOps Tools
This blog post gathers some of the most useful and commonly used DevOps tools and technologies. Throughout the article, we will look into different tools, technologies, frameworks, products, and platforms that can make your life easier as a DevOps or Cloud Engineer.
As you might have heard by now, DevOps and Cloud Engineering aren’t about obsessing over specific tools. It’s about fostering a continuous improvement culture and focusing on best practices and fundamental concepts to build architectures that fit your needs. Having said that, we have to leverage different tools and technologies during this journey, so use this list as a compass and not as a tool comparison.
Version Control Systems & Code Repository Management
This section contains version control systems to track and manage source code and cloud-based hosting options for managing code repositories.
Git
Git is the most commonly used distributed version control system and is the clear winner in this space. It’s free, open source, and easy to get started with a minimal footprint and fast performance.
GitHub
GitHub is the default and most broadly used code repository management system. It provides an easy way to manage distributed version control projects along with many more features and functionalities such as feature requests, task management, CI/CD, wikis, and more to enable developers.
GitLab
Another excellent code repository management system is GitLab. It’s a fully featured DevSecOps platform that can assist developers with productivity and shorten software development cycle times.
BitBucket
BitBucket is another commonly used code repository management system with native Jira integration and built-in CI/CD capabilities. It offers a lot of integrations with other tools and collaboration capabilities as part of Atlassian’s Open DevOps solution.
Containerization
This area refers to tools and technologies used for building and packaging containers.
Docker
One of the tools that pioneered the containerization revolution, Docker is one of the most widely used tools to deliver software in packages called containers. It’s pretty simple to use with a vast ecosystem of users and has a free and premium tier.
Kaniko
Kaniko is a newer tool purpose-built for building container images from a Dockerfile inside a Kubernetes cluster. Check out this article for a more in-depth analysis of the tool and its functionalities.
Infrastructure as Code (IaC)
This section gathers tools that allow us to declare infrastructure components as code.
Hashicorp Terraform
Terraform by Hashicorp is one of the most widely adopted modern IaC tools and enables safe and predictable infrastructure changes at scale. It’s cloud-agnostic and allows provisioning both on the cloud and on-premises. It has its own declarative configuration language, integrates with most cloud providers, and offers excellent reusability and code-sharing opportunities. If you work with Terraform on a daily basis, here you can see best practices on How to Manage Terraform at Scale.
AWS CloudFormation
AWS CloudFormation lets you model, provision, and manage AWS and third-party resources with infrastructure as code principles. Provides native integrations with other AWS services to build a robust infrastructure management pipeline. Here you can see a detailed CloudFormation vs. Terraform comparison.
AWS CDK
The AWS Cloud Development Kit(CDK) allows you to define cloud application resources and infrastructure components using programming languages. It enables developers to use the same language for building applications and infrastructure with the same language they are familiar with.
Pulumi
Pulumi is an open-source IaC tool that allows developers to write IaC in their favorite programming language. It provides integrations with most cloud providers and many more features for managing infrastructure at scale. Here you can find a detailed tool overview and the Pulumi features described.
ARM Templates & Bicep
ARM Templates is Azure’s solution for implementing infrastructure as code. The templates use declarative syntax in JSON format to define the configuration of projects and infrastructure components. Azure has also introduced Bicep, a new language with similar capabilities that is more user-friendly and easier to write and the recommended approach for new projects.
Configuration Management
This part mentions two tools related to configuration management and automation of IT tasks.
Ansible
Backed by RedHat, Ansible is a flexible and powerful tool to automate configuration tasks and infrastructure management. It can work with cloud and on-premises resources and has become one of the favorite tools of IT operators. If you are interested in Ansible, here you will find useful Ansible content.
Chef
Chef is another outstanding tool focused on configuration management. It can assist teams with automation, drift elimination, applying security policies, and validating states across systems.
Puppet
Puppet is a robust infrastructure delivery tool and one of the industry standard tools for IT automation. It can work with hybrid infrastructure setups and assist teams with configuration management, automation, and compliance efforts.
Salt
Salt is a great automation and infrastructure management tool with an extensive and active open-source community. It can assist teams with configuration management, data-driven orchestration, and remove execution across any environment and infrastructure.
Container Orchestration
This section contains my favorite modern technologies for orchestrating and running container workloads.
Kubernetes
Kubernetes is an open-source system for container orchestration, automating deployments, and managing container apps. Its powerful orchestration system enables applications to scale seamlessly and achieve high availability. Each of the three most used cloud providers offers its own Kubernetes distribution; AWS has EKS, Azure AKS, and Google Cloud GKE.
Amazon ECS & AWS Fargate
Amazon Elastic Container Service(ECS) helps us to run highly secure, reliable, and scalable container systems on the AWS platform. Combined with Fargate, we can run serverless container systems securely and at scale without managing servers.
Azure Container Apps
Azure Container Apps allows developers to quickly build and deploy modern applications and microservices using a serverless container service. It’s a fully managed service that simplifies infrastructure management and accelerates developer productivity at scale.
Continuous Integration & Continuous Delivery (CI/CD)
Some of the most used and battle-tested CI/CD tools.
Circle-CI
Circle-CI is one of the world’s most popular CI/CD systems and provides an easy-to-start model and different hosting and pricing options.
GitLab CI/CD
The CI/CD functionality of the GitLab platform is really easy to get started and use and integrates seamlessly with other features of the GitLab DevSecOps platform.
GitHub Actions
Similarly, GitHub Actions is GitHub’s native CI/CD tool that allows developers to create any custom workflow and integrates nicely with other GitHub features.
Jenkins
Jenkins is an open-source automation server tool that facilitates continuous integration and delivery. One of the most widely used and battle-tested tools in the CI/CD space.
Cloud Providers
This part lists the three leading cloud computing platforms.
Amazon Web Services(AWS)
AWS is the most widely adopted cloud computing platform that innovates relentlessly and offers reliable, scalable, and inexpensive cloud computing services to assist you in building virtually any workload.
Google Cloud Platform
Google Cloud Platform, built by Google, is a collection of robust and powerful cloud computing services that runs on the same infrastructure that Google uses for its other products.
Microsoft Azure
Azure, operated by Microsoft, is a flexible cloud computing service for application management that fosters efficiency and developer productivity.
Observability
This section gathers excellent tools for monitoring, alerting, and dashboarding.
Prometheus
Prometheus is an open-source monitoring system preferred by many developers and operators with a dimensional data model and a flexible query language. It features a time series database and a great alerting model.
Grafana
Grafana is one of the most popular visualizations and analytics tools. It provides a user-friendly user interface to build graphs, dashboards, charts, alerts, and more and connects to various data sources.
Datadog
Datadog is a tool that has grown a lot over the last few years and provides a feature-rich observability platform that can handle your monitoring and alerting needs across applications and infrastructure components.
Amazon CloudWatch
Amazon CloudWatch is AWS native monitoring and observability tool for infrastructure and applications in the cloud and on-premises. Offers seamless integration with many AWS services to simplify the monitoring experience.
Komodor
Komodor approaches the monitoring of Kubernetes systems with a fresh perspective, focusing on easier troubleshooting and making the life of developers and operators easier.
Lens
Lens is an IDE with an integrated dashboard for Kubernetes that enables easier management, monitoring, and observability for clusters. It’s a standalone application and is available on all platforms.
Log Management
This part gathers a few tools around storing and managing application and infrastructure logs.
Elastic Stack(ELK)
The Elastic Stack combines tools such as ElasticSearch, Logstash, Kibana, and, lately, Beats. It’s open source and one of the world’s most popular and influential log management solutions.
Grafana Loki
Loki is an open-source, highly scalable, multi-tenant log aggregation system inspired by Prometheus. It’s easy to use and operate and designed to store and query logs from apps and infrastructure.
Fluentd
Fluentd is an open-source data collector which lets you unify the data collection and consumption for better use and understanding of data. It has an active community and offers an extensive selection of integrations and built-in reliability.