DevOps (an acronym for development and operations) is a set of practices aimed at the active interaction of ‘development professionals’ with ‘information technology specialists,’ and the mutual integration of their work processes.
It is based on the idea of close interdependence of software development and operation, and is aimed at helping organizations to create and update software applications and services faster.
The methodology focuses on standardizing a development environment in order to facilitate rapid release.
The task of DevOps is to make the delivery of software consistent with the operation, often these tasks are solved with automatic support.
Since DevOps consists of teamwork (between employees involved in development, operations and testing), there is no single tool called "DevOps": it's more like a set (or "a tool chain of DevOps"), featuring several instruments and programs. Typically, DevOps tools fit into one or more of these categories, which reflects the key aspects of software development and delivery:
Code - code development and analysis, version control tools, code merging;
Build - tools for continuous integration, build status;
Test - continuous testing tools that provide feedback on business risks;
Package - repository of artifacts, preliminary installation of the app;
Release - change management, official release approval, release automation;
Configuration - infrastructure configuration and management;
Monitoring - app performance monitoring, experience with the end user.
The specific goals of DevOps cover the whole process of software delivery. Those include:
DevOps methods make simple processes more programmable and dynamic. Using DevOps, you can maximize the predictability, efficiency, security and maintainability of operational processes.
DevOps integration is designed for product delivery, continuous testing, quality control, function development and service upgrades to improve the software reliability and security and provide a faster development and deployment cycle.