DevOps is a software development process that emphasizes communication and collaboration between product management, software development, and operations professionals. DevOps also automates the process of software integration, testing, deployment and infrastructure changes. It aims to establish a culture and environment where building, testing, and releasing software can happen rapidly, frequently, and more reliably.
It’s a cultural shift and collaboration between development, operations and testing — it is rather a set, consisting of multiple tools. Generally, DevOps tools fit into one or more of these categories, which is reflective of key aspects of the software development and delivery process:
Code — Code development and review, version control tools, code merging
Build — Continuous integration tools, build status
Test — Continuous testing tools that provide feedback on business risks
Package — Artifact repository, application pre-deployment staging
Release — Change management, release approvals, release automation
Configure — Infrastructure configuration and management, Infrastructure as Code tools
Monitor — Applications performance monitoring, end–user experience
Though there are many tools available, certain categories of them are essential in the DevOps toolchain setup for use in an organization. Some attempts to identify those basic tools can be found in the existing literature.