> ## Content Index
> Fetch the complete content index at: https://admin.kod.ru/llms.txt
> Use this file to discover other available public pages before exploring further.

# Как DevOps помогает IT-командам эффективнее работать и больше зарабатывать
- URL: https://admin.kod.ru/devops-effective-work-more-money/
- Published: 2023-06-01T14:33:47.000Z
- Updated: 2023-06-01T14:41:31.000Z
- Description: Зачем нужна методология DevOps, какие бывают этапы работы по ней и какие рабочие инструменты нужны.
- Author: МТС
- Tags: Блоги

Разработка программного обеспечения требует больших денежных вложений. Чтобы хорошо зарабатывать на продуктах, нужно оперативно выпускать их на рынок и вносить изменения по запросу пользователей. Сделать это поможет автоматизация процессов с помощью DevOps.

## Зачем нужна методология DevOps

Прежде чем клиент сможет воспользоваться готовым IT-продуктом, над ним трудится команда специалистов:

- программисты пишут код;
- тестировщики проверяют, насколько правильно код работает;
- администраторы размещают код на сервере, чтобы он стал доступен клиентам.

У этого алгоритма разработки есть проблема: все этапы разделены, поэтому взаимодействие между командами налажено слабо:

- программистам неважно, что будет с кодом, когда они его напишут;
- тестировщики могут проверять старую версию кода и терять время, если программисты забудут передать им новую версию;
- разные настройки программы у тестировщиков и администраторов приводят к тому, что установленный код выдаёт ошибку или делает не то, что надо.

А ещё разработка идёт медленно, потому что задачи между программистами, тестировщиками и администраторами перекидываются группами, а не в потоке. Например, администраторы передают разработчикам жалобы от пользователей не по мере поступления, а сразу пачками. Программисты не отдают код тестировщикам, пока не доработают сразу всё. Из-за этого проходит много времени между моментом, когда баг нашли и когда его исправили.

Чтобы максимально сократить этот срок, придумали DevOps. Согласно этой методологии, программисты, тестировщики и админы — это кросс-функциональная команда. Все её члены при разработке IT-продукта тесно взаимодействуют, а не сосредотачиваются исключительно на своих задачах, как это было раньше.

![](https://admin.kod.ru/content/images/2023/06/hate-mts-17.05--1-.png)

Тесное взаимодействие между командами — ключ к быстрой и эффективной разработке по методологии DevOps

## 6 этапов работы по методологии DevOps

**1\. Сбор требований и проектирование.** Менеджер собирает всю необходимую информацию от заказчика и устанавливает ограничения: бюджет, дедлайн, критерии оценки ПО. В проектировании участвует вся команда, т. к. программисты, тестировщики и администраторы лучше понимают время разработки и шаги, на которые её нужно разделить.

**2\. Разработка.** Команда создаёт среду и конвейер CI/CD, в которых будет происходить разработка продукта. Программисты пишут код, скрипты и системы для версирования, управления проектом, мониторинга. Админы и тестировщики настраивают кластеры. Работа над продуктом строится так, чтобы его можно было запускать постепенно, отдельными модулями. Члены команды работают параллельно, поэтому время не тратится впустую.

**3\. Запуск конвейера CI/CD.** После того как программисты написали часть кода, они запускают скрипты, которые подготовили и автоматизировали на прошлом этапе. Благодаря скриптам код становится программой. Также скрипты компилируют код в пакеты, управляют версиями, отсылают его на тестирование и мониторинг.

**4\. Автоматическое тестирование.** Написанный с помощью скриптов код проверяет автотест. Его главное преимущество — код с ошибками не уходит в сборку и не попадает в работающий продукт. Например, в программу добавили новую функцию. Выяснилось, что она конфликтует с другой, которая вроде бы не имеет к первой никакого отношения. Автотестирование не пропустит этот баг.

Если коду нужны незначительные доработки, после устранения ошибок его ещё раз проверяют автотестом и отправляют на рабочие серверы. Если ошибки серьёзные, то исправленный код отдают тестировщикам для ручной проверки.

**5\. Непрерывное развёртывание.** Когда конфигурации протестированы, автоматические скрипты сразу отправляют их развёртываться на «боевых» серверах. Если в коде есть ошибки, их можно постепенно исправлять и постоянно развёртывать мелкие обновления — приложение заработает правильно.

**6\. Постоянный мониторинг.** После того как приложение отправляется на сервер, оно попадает в распоряжение систем мониторинга. Они проверяют, насколько правильно функционирует продукт: записывают ошибки в тестовые файлы, сообщают о проблемах, автоматически перезагружают и выключают функции с неполадками.

![](https://admin.kod.ru/content/images/2023/06/hate-mts-25.05_01.png)

Задачи в DevOps непрерывно курсируют между отделами разработки

## Рабочие инструменты DevOps-инженера

**Облачные сервисы.** В DevOps используют IaaS и PaaS:

- IaaS — это виртуальные серверы, хранилища, сети, с помощью которых можно расширить собственные мощности. Например, увеличить объёмы памяти рабочего сервера на время распродажи.
- PaaS — готовые инструменты для хранения информации, разработки, развёртывания ПО. Например, разработчикам не нужно создавать базу данных — её можно приобрести у провайдера, загрузить туда данные и работать.

**Система контроля версий.** Например,SVN. Она позволяет хранить и совместно пользоваться файлами проекта и кодом.

**CI/CD-системы.** Например, TeamCity, CircleCI и Semaphore, которые непрерывно интегрируют и развёртывают ПО во время разработки.

**Инструменты для управления инфраструктурой как кодом (IaC)**. Например, Chef и Puppet. Они автоматизируют развёртывание инфраструктуры, выявляют проблемы в конфигурации, обеспечивают быстрое восстановление после сбоев. За счёт того, что ресурсы всегда развёртываются одинаково, инфраструктура менее уязвима.

**Системы оркестрации контейнеров.** Например, Nomad и Kubernetes. Оркестраторы позволяют управлять контейнерами, непрерывно доставлять код, оперативно развёртывать конфигурации приложений для теста и запуска на «боевых» серверах.

## Запомнить

1\. DevOps — это подход к разработке, при котором все этапы работы над продуктом идут не один за другим, а одновременно.

2\. Разработка в DevOps делится на 6 этапов: от проектирования до развёртывания и мониторинга.

3\. Такой подход позволяет существенно сократить время работы, ускорить релизы, избежать ошибок при тестировании и запуске, сократить расходы на разработку.