DevOps – как инструмент увеличения производительности команды и максимальной автоматизации рутинных процессов
Делимся своим опытом и рассказываем, как мы в студии мобильной разработки автоматизировали рутинные задачи, и сократили время на запуск проектов. Эта статья будет полезна командам, которые хотят оптимизировать весь жизненный цикл разработки, быстрее запускать продукты и сервисы, минимизировать риски на проекте.
У нас небольшая команда и мало серверных разработчиков, нету выделенной роли админа, DevOps-инженера. Поэтому серверный разработчик всегда самостоятельно настраивал инфраструктуру и развертывал приложение. Эти рутинные операции занимали много времени, так как на разных проектах неидентичные сервера. Все процессы проводились вручную, при обычной ошибке могли быть непредсказуемые риски на проекте, которые в заказной разработке ощутимее, чем инхаус.
Решение проблемы — применить один из принципов методологии DevOps для увеличения производительности команды и максимальной автоматизации рутинных процессов.
Шаг 1 — автоматизация рутинных операций
Сделали единую настройку всех серверов — не считая уникальных для проекта параметров: домены, доступы к базам данных и тд. Реализовали через Ansible — система управления конфигурациями, написанная на Python. Это помогло разработчику легче настраивать новые сервера для развертывания. Для серверов создали общую роль, так как они однотипные и мы используем уже готовые наработки, а все уникальные характеристики находятся в модуле Inventory (работа с именами хостов или их ip-адресами) каждый под свой проект. Поэтому разработчику теперь стало удобней разворачивать сервер, исправив несколько значений в конфиге.
Но деплой оставался ручным — разработчик заходил и в ручную запускал команды для обновления сервера.
Шаг 2 — подключили CI-сервис
Мы решили протестировать Bitbucket-Pipelines — это Continues Integration сервис, хорошо интегрированный с хранилищем репозиториев Bitbucket. И теперь все коммиты и мерджи попадают в нужную ветку, проект деплоится на нужное окружение.
Внутри веб-интерфейса Bitbucket запуск пайплайнов и просмотр результатов отлично интегрирован с репозиториями. Есть интеграции с Slack, HipChat и другими сервисами.
“Команды, которые руководствуются принципами DevOps, выполняют развертывания в 30 раз чаще, в 60 раз реже сталкиваются с проблемами и восстанавливаются в 160 раз быстрее.”
Отчет по состоянию DevOps, Puppet Labs, 2016 г.
Результат:
Теперь разработчик концентрируется на написании кода, отпали рутинные задачи, а настройка серверов стала гораздо проще и занимать меньше времени за счет стандартизации среды разработки.
В команде сократили время на запуск продуктов и оптимизировали весь жизненный цикл проектов, все процессы под контролем.
Заказчик всегда уверен в результате, так как процессы автоматизированы и минимизированы риски.
_____________________
Лялин Виталий
Руководитель направления маркетинга в студии мобильной разработки «Hands App»