Check out my new books that I just published...
DevOps is a set of practices that combines software development (Dev) and information-technology operations (Ops) which aims to shorten the systems development life cycle and provide continuous delivery with high software quality.
As DevOps is intended to be a cross-functional mode of working, those that practice the methodology use different sets of tools (referred to as "toolchains") rather than a single one. These toolchains are expected to fit into one or more of the following categories, reflective of key aspects of the development and delivery process:
Coding: Code development and review, source code management tools, code merging
Building: Continuous integration tools, build status
Testing: Continuous testing tools that provide quick and timely feedback on business risks
Packaging: Artifact repository, application pre-deployment staging
Releasing: Change management, release approvals, release automation
Configuring: Infrastructure configuration and management, infrastructure as code tools
Monitoring: Applications performance monitoring, end-user experience
Some categories are more essential in a DevOps toolchain than others; especially continuous integration (i.e.: Jenkins, Gitlab, Bitbucket pipelines) and infrastructure as code (i.e.: Terraform, Ansible, Puppet).