DevOps
↓
Text preprocessors: awk, grep, sed
↓
|
awk
|
|
grep
|
|
sed
|
What is DevOps?
DevOps is an acronym for English
Development and Operations
In Russian, it is usually pronounced as devops with emphasis on the second syllable.
It is a methodology of active
interaction of development specialists with software specialists
information technology services and the mutual integration of their
work processes into each other to ensure the quality of the product.
It is designed to effectively organize the creation and updating of software products and services.
It is based on the idea of the close interdependence of product creation and operation
software, which is instilled in the team as a culture of product creation.
General purpose
Organizations that need frequent software releases,
you may need DevOps.
The daily release cycle can be much more intense for organizations
that release multiple multidirectional applications.
The methodology focuses on the standardization of development environments in order to
rapid transfer of software through the stages, contributing to the rapid
the release of versions.
Ideally, build and release automation systems should be available to everyone
developers in any environment, and developers should have control over the environment,
and the information technology infrastructure should become more
focused on the application.
The task of DevOps engineers is to make the software development and delivery process
ensuring consistent with the operation by combining them into a single team,
this allows you to organize processes that can be further automated
with the help of tools.
The DevOps movement arose in 2009 and was designed to solve problems
interaction of software product development and operation teams,
In the same year, a series of conferences was organized in Belgium
«DevOps Days».
Then "DevOps days" took place in various cities and countries around the world.
A set of tools
Because DevOps is a team effort (between employees,
engaged in development, operations and testing), there is no single tool
"DevOps": it is rather a set (or "DevOps toolchain") consisting of
several tools.
As a rule, DevOps tools fit into one or more
of these categories, which reflects the key aspects of software development and delivery:
-
Development
— code development and analysis, version control tools, code merging;
-
Build — Continuous integration tools, build status;
-
Testing
— continuous testing tools that ensure a quick and timely assessment of business risks;
-
Packaging — repository of artifacts, pre-installation of the application;
-
Release — change management, release approval, release automation;
-
Setup — configuration and management of infrastructure, Infrastructure as code tools;
-
Monitoring is the measurement of application performance, interaction with the end user.
Although there are many tools available, some categories of
they are particularly important in setting up DevOps tools
for use in the organization.
Some attempts to identify these basic tools can be found in the existing literature.
Tools such as containerization management
(Docker,
Kubernetes),
continuous integration (
Jenkins
,
GitLab),
deployment of environments by template
(Puppet,
Ansible, Terraform)
and many others are often used and often mentioned in discussions on DevOps tools.