DevOps, the acronym for development and operations, refers to the cyclical flow of testing, automation processes, continuous integration, and deployment. It encompasses the iterative process of software development undertaken by the development and operations teams who work together as a unit to complete an application lifecycle. These teams use practices to improve the automation process and utilize a stack of tools to help engineers effectively deploy and maintain code. A host of tools and a range of skills are used by the development and operations teams to work cohesively and produce output in an efficient manner. The DevOps periodic table gives a snapshot of the wide variety of tools used in the entire DevOps process over a period.
Source: https://digital.ai/learn/devops-periodic-table/
DevOps Periodic Table
The DevOps periodic table is a visually appealing, colour-coded categorisation of various development and operations-related tools and practices which have been used in technology over the years. Aptly, these multiple tools have been categorized into groups based on their functionality and usage. It has become a convenient tool for IT experts looking for DevOps automation tools, monitoring tools, or security tools. The first version of the DevOps periodic table was released by XperiaLabs (now a part of Digital.ai) in July 2015. Since then, the table has been continuously updated as people have voted for their favourite tools. At the time of writing this post, the latest version release is V4.2.
Category-wise description of all the tools
As per the latest version, the DevOps tools have been grouped into 17 distinct categories. The following is a brief overview of each of these categories:
AIOps/Analytics
Tools related to Artificial intelligence Operations and Data Analytics for examining Big Data and machine learning tools have been grouped together under this category. These tools are mainly used to process large amounts of data, gather insights from artificial intelligence and machine learning and act as monitoring and analytics platform for IT infrastructure, operations and development teams. The tools mentioned in this category are Instana, Splunk, Dynatrace, Grafana, Datadog, AppDynamics, New Relic, and Elastic ELK Stack.
Artifact/Package Management
An artifact is connected to or part of a software project, for example, it could be a binary package, an executable file, images, data libraries, or metadata. There is a system to manage these artifacts so that they can be used across teams. Sharing them through repositories helps in managing, versioning and deploying these artifacts across development teams. The tools mentioned in this category are JFrog Artifactory, Sonatype Nexus, Docker Hub, Yarn, npm, and NuGet.
Cloud
The Cloud refers to servers that are accessed over the internet and all the software that you can access remotely over these servers. it is becoming an increasingly relevant and popular option to access data these days. As compared to storing data on local machines, the cloud offers spatial, geographical, security and accessibility benefits. The tools mentioned in this category are AWS, Azure, Google Cloud, IBM Cloud, and OpenStack.
Collaboration
Collaboration is developing a shared understanding and working towards achieving the common goal of the team. It helps in aligning individual priorities with the team’s larger objective and emphasizes communication and understanding as opposed to the mere delegation and assigning of tasks. The collaborative process helps businesses deliver successfully from the planning stage to the delivery and maintenance phases. The tools mentioned in this category are Slack, Microsoft Teams, Atlassian Confluence, Stack Overflow, and Mattermost.
Configuration Automation
These tools help in configuring and maintaining a company’s servers and integrating them with cloud-based platforms. These tools support administrators and developers to automate the process of deployment and configuration of physical and virtual infrastructure. As et of tools help in maintaining systems in the desired state by reducing cost, complexity, and errors. The tools mentioned in this category are Red Hat Ansible, Chef, Puppet, Salt, HashiCorp Terraform, AWS Cloud Formation, HashiCorp Consul, HashiCorp Vagrant, and HashiCorp Packer.
Containers
A container is a form of virtualizing the operating system. Inside the container are all executables, binaries, libraries and configuration files necessary to run a software process. It mimics the entire runtime environment across multiple machines and platforms. They play an important role as they help in detecting any bugs or issues in an application well before release. The tools mentioned in this category are Docker, Kubernetes, Amazon ECS, Amazon EKS, Red Hat OpenShift, Azure AKS, Google GKE, Docker Enterprise, Rancher, and Helm.
Continuous Integration
In continuous integration, testers and developers write their code and are continuously able to push and pull their code to the central repository as and when required. It helps developers to merge their code to the shared branch and helps in keeping intact the entire project code base. The central repository can be accessed by all the developers in real-time. It reflects the changes made by each developer along with the time the changes were made at and the comments description associated with these changes. The tools mentioned in this category are Jenkins, Azure DevOps Code, GitLab CI, Travis CI, Circle CI, Maven, Atlassian Bamboo, Gradle, and AWS CodeBuild.
Database Management
A Database Management System acts as an interface between a user and a database that allows users to run multiple queries and retrieve information from the database. Database Management also describes the data, storage, operations and security practices of a database administrator throughout the lifecycle of the data. The DBMS can be centralized or distributed over different nodes making it accessible quickly. The tools mentioned in this category are Liquidbase, Delphix, Idera, Quest Toad and DBmaestro.
Deployment
Deployment is the process of deploying the software to the testing or production environments. Applications, modules, patches and updates are delivered to the end users through the process of deployment. Once the code is tested, automated, and built it is deployed in a specific environment based on the phase of the application lifecycle. It helps in gaining feedback on the quality of the software before its actual release to the end user. The tools mentioned in this category are Azure DevOps Pipeline, Digital.ai Deploy, Urban Code Deploy, Harness, Spinnaker, Cloudbees CD, Octopus Deploy, and AWS Code Deploy.
Enterprise Agile Planning
These tools help organizations to scale up their agile practices. These tools help in expanding the overview of handling agile practices from a project-led approach to a business-driven approach and further implementing it at an enterprise level. Such practices are driven by business outcomes, but their focal point is customer satisfaction. These processes are collaborative in nature and continuously integrate stakeholder feedback to refine the overall output. the tools mentioned in this category are Atlassian JIRA Align, Digital.ai Agility, PlainView, Targetprocess, and Broadcom Rally.
Issue Tracking/ ITSM
An issue-tracking system is a software that allows users to report the issues or problems being faced and tracks the status of that problem or issue until it is resolved. The issue tracking begins when an issue is reported, and it follows a sequence of steps until it is closed with feedback or comments. An issue-tracking software system helps in ensuring that no issues have been overlooked, assigns priority to the issues reported, logs in the time taken to close each issue and highlights potential areas of improvement in the development process. The tools mentioned in this category are Jira, BMC Helix ITSM, Trello, ServiceNow, TOPdesk, and PagerDuty.
Release Management
Release Management refers to the process of controlling and managing software releases. It involves an elaborate process of planning, designing, scheduling, testing, deploying, and releasing the software to the end user. It helps businesses to efficiently deliver the final product or any update to the end user. In today’s competitive times, it is of critical importance that every product reaches the customer in a foolproof way without errors or omissions. The Release Management process helps streamline the delivery of the product to the end user in a customer-centric and quality-driven manner. The tools mentioned in this category are Digital.ai Release, CloudBees Flow, UrbanCode Release, AWS Code Pipeline, and BMC RLM.
Security
A smattering of navy blue across the periodic table highlights the emphasis given to developing a strong security feature in modern-day applications. Every organization’s proprietary data, consumers’ personal data and systems and processes managing these data need to be secured from any threats and hacks. There is an impressive array of tools developed to handle security and safeguard companies from data breaches or security leaks. The tools mentioned in this category are OWASP ZAP, Sonatype Nexus IQ, CyberArk Conjur, Veracode, Digital.ai App Protection, Aqua Security, HashiCorp Vault, SonarQube, Synopsys Black Duck, Snort, Micro Focus Fortify SCA, Checkmarx SAST, and PortSwigger Burp Suite.
Serverless/PaaS
Platform as a Service is a cloud computing model where a third-party provider delivers the necessary hardware and software to develop, run and manage business applications. This helps the developers to focus more on developing the code base rather than managing the infrastructure of the network, servers, operating systems and storage facilities. This also helps in lowering costs for the organization and enables scalability in developing a product. The tools mentioned in this category are AWS Lambda, Azure Functions, Heroku, Google Firebase, and Cloud Foundry.
Source Control Management
SCM helps in tracking changes made to the source code repository. Having access to the history of changes in the code base helps testers, developers, and programmers to access the latest updated code, allows them to access any previous version and helps in resolving conflicts from merging codes from multiple sources. It tracks each developer’s changes through ‘commits’ and prevents duplication of code through conflict resolution. The tools mentioned in this category are Git, GitHub, GitLab SCM, Atlassian Bitbucket, Compuware ISPW, and Subversion.
Testing
Software Testing refers to the process of testing an application and verifying that it is built as per user requirements. They ensure that if there are any bugs or defects in the software, those are identified and fixed before the software is released to the end user. Software testers use a set of tools and frameworks to do automation testing for the efficient and timely release of applications. The testing process consists of a robust set of testing types to ensure that software is tested from all possible aspects. Some of the different types of testing available are smoke testing, sanity testing, exploratory testing, unit testing, integration testing, end-to-end testing, acceptance testing, accessibility testing, regression testing and Non-functional testing, including, performance testing, security testing, and load testing. The tools mentioned in this category are Tricentis Tosca, Neotys NeoLoad, Selenium, Junit, Sauce Labs, Compuware Topaz, Appium, Squash TM, Cucumber, JMeter, and Parasoft.
Value Stream Management
Value Stream Management refers to constantly improving the value, flow and benefits derived from software development right from its drawing board stage to its delivery phase to the end-user. It focuses on analysing the entire business process flow as one continuous digital cycle. Instead of treating each business process as a separate process, it tries to measure the value delivered by each step in the process. The emphasis is also on finding out ways how to minimise waste and maximise the value addition from the business flow. The tools mentioned in this category are Digital.ai, Tasktop, Plutora, and GitLab.
All the above images have been sourced from https://digital.ai/learn/devops-periodic-table/
Summary
The DevOps periodic table is a practical and useful tool to showcase the leading tools for Analytics, DBMS, Testing, Deployment, Collaboration, Release Management, Source Code Management and other DevOps categories, all in one single place. The colour coding categorisation helps in easily identifying the tools listed in the table. It is continuously updated to reflect the new tools that are being developed and used by organisations. Clicking on any tile in the periodic table opens a pop-up box showing the main features of that tool. The pop-up also offers a link to add that tool to your pipeline. Every tile has a number which shows the position of that tool in the periodic table. There is an abbreviation of the tool name on each tile followed by the full name of the tool. In this rapidly growing world, the DevOps periodic tool serves a versatile option for organisations to choose from a plethora of options available depending upon unique customer requirements, best practices and resource availability.
Comments