Because DevOps is a cultural shift and collaboration (between development, operations and testing), there is no single "DevOps tool": it is rather a set (or "DevOps toolchain"), 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:
- 1. Code : Code development and review, version control tools, code merging
- 2. Build : Continuous integration tools, build status
- 3. Test : Test and results determine performance
- 4. Package : Artifact repository, application pre-deployment staging
- 5. Release : Change management, release approvals, release automation
- 6. Configure : Infrastructure configuration and management, Infrastructure as Code tools
- 7. 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.
Tools such as Docker (containerization), Jenkins (continuous integration), Puppet (Infrastructure as Code) and Vagrant (virtualization platform)—among many others—are often used and frequently referenced in DevOps tooling discussions.
DevOps - Wikipedia