Close

Инструменты DevOps

Выбор инструментов для каждого этапа цикла DevOps.


Открытый пакет инструментов

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

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

Все пакеты инструментов DevOps делятся на два типа: универсальные и открытые. Универсальный пакет инструментов DevOps — это комплексное решение, которое часто нельзя интегрировать со сторонними инструментами. Открытый пакет можно видоизменять согласно потребностям команды, наполняя необходимыми инструментами. Мы в Atlassian уверены, что наилучшее решение — открытый пакет инструментов, который можно настроить в соответствии с уникальными потребностями организации, добавив в него лучшие в своем классе инструменты. Такой подход способствует эффективному использованию времени и ускорению выхода на рынок.

Подробнее о пакетах инструментов DevOps

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

  • Исследуйте
  • Планируйте
  • Сборка
  • Тестирование
  • Мониторинг
  • Эксплуатация
  • Непрерывная обратная связь

Инструменты в составе открытого пакета DevOps предназначены для разных этапов цикла DevOps. В следующих разделах представлены наиболее популярные решения. Из-за специфики рынка список может скоро измениться. Поставщики добавляют в инструменты новые возможности, которые позволяют работать с дополнительными этапами цикла DevOps. Каждый квартал появляются новые интеграции, а иногда поставщики объединяют свои предложения, чтобы решить конкретную проблему пользователей.

Исследуйте


Логотип Jira Product Discovery Логотип Mural Логотип Miro

На этапе исследования команда DevOps изучает область и определяет объем работ по проекту. Сюда, в частности, входят такие действия, как исследование мнений пользователей, постановка целей и определение критериев успеха.

Команда разработчиков собирает идеи и проводит исследование, используя такие инструменты, как Mural и Miro. С помощью Jira Product Discovery они формируют практически полезные входные данные и определяют приоритеты действий для команд разработчиков. При расстановке приоритетов не забывайте и о бэклоге пользовательских отзывов.

Исследование продукта — самое первое действие в процессе разработки продукта. По его результатам в дальнейшем происходит принятие решений. На этапе исследования продукта вы можете собрать всю важную информацию о любых проблемах пользователей и затем предложить их решение.

Мы рекомендуем выбирать инструменты, которые позволяют проводить асинхронные мозговые штурмы. Важно, чтобы каждый мог делиться информацией и обсуждать идеи, стратегии, цели, требования, дорожные карты и документацию.

Планируйте


Сборка


Среды разработки, идентичные рабочей среде

Логотип Kubernetes Логотип Docker

Если среди популярных инструментов управления эксплуатацией выделяются решения Puppet и Chef, то для создания отдельных сред разработки используются инструменты с открытым исходным кодом, например Kubernetes и Docker. Программирование в виртуальных одноразовых копиях рабочей среды позволяет выполнять больше работы.

Если все участники команды работают в идентично сконфигурированных средах, проблема неработоспособности ПО на отдельных машинах теряет свою актуальность.

Инфраструктура как код

Логотип Ansible Логотип Chef Логотип Docker Логотип Puppet Логотип Terraform

Разработчики создают модульные приложения, поскольку они более надежны и удобны в обслуживании. Почему бы не распространить этот принцип на ИТ-инфраструктуру? Применить его к системам может быть затруднительно, так как они непрерывно изменяются. Решить проблему можно с помощью кода распределения.

Подход «инфраструктура как код» предполагает, что на повторное распределение потребуется меньше времени, чем на ремонт, и дает более согласованные и воспроизводимые результаты. Этот подход также позволяет без труда создавать варианты среды разработки с конфигурацией, аналогичной конфигурации рабочей среды. Код распределения можно применять для того, чтобы сделать сервер частью известной основы. Его можно хранить в системе контроля версий, тестировать, встраивать в процесс непрерывной интеграции и подвергать оценке коллег.

Когда накопленные знания зафиксированы в коде, исчезает потребность в перечнях процедур и внутренней документации. Процессы становятся воспроизводимыми, а системы — надежными.

Управление версиями и совместная работа над кодом

Логотип Bitbucket Логотип Github Логотип GitLab

Иметь контроль над исходным кодом очень важно. Инструменты управления исходным кодом позволяют хранить код в разных цепочках. Так вы сможете видеть все изменения и без труда работать над ними всей командой. Вместо длительных собраний по подтверждению изменений перед развертыванием в рабочей среде проводите проверки в форме оценки коллег с помощью запросов pull. Это повысит скорость работы и качество кода.

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

Системы управления версиями исходного кода должны интегрироваться с другими инструментами. Это позволяет объединить различные сегменты разработки и поставки кода и отслеживать поведение кода возможности в рабочей среде. Если произойдет инцидент, код поможет определить его причину.

Непрерывная поставка


Логотип Jenkins Логотип AWS Логотип Bitbucket Логотип CircleCI Логотип SonarSource

Непрерывная интеграция — это методика загрузки кода в общий репозиторий несколько раз в день с последующей проверкой. Таким образом вы автоматически выявляете проблемы на ранних этапах, когда их проще всего устранить, и развертываете новые возможности для пользователей настолько быстро, насколько это возможно.

Проверка кода с помощью запросов pull — очень популярный метод, который требует использования веток. Рабочий процесс DevOps North Star позволяет сократить размер и количество веток и обеспечить тщательное тестирование без ущерба для скорости разработки.

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

Узнайте, как автоматизировать код с помощью Bitbucket Pipelines, от этапа тестирования до выпуска в рабочую среду.

Тест


Автоматизированное тестирование

Инструменты тестирования охватывают множество потребностей и возможностей, в том числе глубокое тестирование, управление тестированием и оркестрацию. Однако важнейшая функция пакета инструментов DevOps — автоматизация. В долгосрочной перспективе автоматическое тестирование окупается благодаря ускорению циклов разработки и тестирования. В среде DevOps оно важно еще и потому, что повышает осведомленность.

Частое автоматическое тестирование на ранних этапах помогает повысить качество программного обеспечения и снизить риски. Команды разработчиков могут выполнять автоматические тесты регулярно, охватывая различные области: пользовательский интерфейс, безопасность, производительность при разной нагрузке. Определить зоны риска помогут сопутствующие отчеты и графики тенденций.

Риски неизбежны в сфере разработки ПО. Однако их можно свести к минимуму при своевременном выявлении. Позвольте команде по эксплуатации «заглянуть под капот» вместе с вами. Найдите инструменты с поддержкой настенных панелей и дайте всем участникам проекта возможность комментировать результаты конкретной сборки или развертывания. Особенно рекомендуются инструменты, которые позволяют привлекать специалистов по эксплуатации к блиц- и глубокому тестированию.

Развертывание


Дашбоарды развертывания

Логотип Jira Software

Один из самых напряженных этапов поставки программного обеспечения — сбор и объединение всей информации об изменениях, тестировании и развертывании для предстоящего релиза. Меньше всего перед релизом хочется потратить несколько часов на собрание по поводу статуса работы. Здесь вам пригодятся дашбоарды релизов.

Выбирайте инструменты с единым дашбоардом, которые интегрируются с репозиторием кода и инструментами развертывания. Найдите решение, в котором можно отслеживать все ветки, сборки, запросы pull и предупреждения об ошибках развертывания.

Автоматическое развертывание

Логотип Bitbucket Логотип Zephyr

Не существует волшебного рецепта автоматического развертывания, который будет актуален для всех приложений и ИТ-сред. Что реально, так это преобразование перечня процедур в cmd-скрипт с помощью Ruby или Вash. Очень важны правильные методики разработки. Используйте переменные вместо имен хостов: поддерживать уникальные скрипты или код для каждой среды нерационально и довольно бессмысленно. Чтобы избежать дублирования кода, создавайте служебные методы или скрипты. Не забудьте проверить скрипты на работоспособность.

Сначала попробуйте автоматизировать развертывание в среде самого низкого уровня (там вы будете применять автоматизацию чаще всего). Затем распространите эту практику на весь процесс, вплоть до рабочей среды. По крайней мере вы сможете выявить различия между средами и сформируете список задач, направленных на их стандартизацию. А еще стандартизация развертываний посредством автоматизации сокращает число отклонений сред на серверах.

Эксплуатация


Отслеживание инцидентов, изменений и проблем

Логотип Jira Service Management Логотип Jira SoftwareЛоготип Opsgenie Логотип Statuspage

Для развития взаимодействия между командами DevOps необходимо, чтобы все сотрудники имели единое и целостное представление о текущей работе. Что происходит при возникновении инцидентов? Выполняется ли их привязка к проблемам программного обеспечения и отслеживаются ли они? Выполняется ли привязка новых изменений к релизам?

Наибольшие помехи взаимодействию между разработчиками и специалистами по эксплуатации возникают, когда отслеживание инцидентов и проекты по разработке ведутся не в единой, а в разных системах. Выбирайте инструменты, которые хранят инциденты, изменения, проблемы и программные проекты на одной платформе, чтобы выявление и устранение проблем было оперативным.

Наблюдение


Мониторинг производительности приложений и серверов

Логотип AppDynamics Логотип Datadog Логотип Slack Логотип SplunkЛоготип New Relic Логотип Opsgenie Логотип Pingdom Логотип Nagios Логотип Dynatrace Логотип Hosted Graphite Логотип Sumo Logic

Два типа мониторинга требуют автоматизации: мониторинг серверов и мониторинг производительности приложений.

Доработка вручную и тестирование API — отличный вариант для выборочной проверки. Однако для понимания тенденций и общей работоспособности приложений (и сред) необходимо программное обеспечение, которое отслеживает и сохраняет данные круглосуточно и без выходных. Возможность непрерывного наблюдения является ключом к успеху для команд DevOps.

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

Непрерывная обратная связь


Логотип GetFeedback Логотип Slack Логотип Jira Service Management Логотип Pendo

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

Найдите приложения для интеграции чата с вашей любимой платформой для опросов и получайте обратную связь в виде индекса потребительской лояльности (NPS). Для получения обратной связи в режиме реального времени можно выполнить интеграцию чата с Twitter и (или) Facebook. Если вам необходим обширный мониторинг обратной связи из социальных сетей, стоит использовать платформу для управления социальными сетями, которая позволяет формировать статистические отчеты.

Поначалу может показаться, что анализ обратной связи и корректировка на его основе замедляют темпы разработки, однако в долгосрочной перспективе это более эффективно, чем выпуск новых, но никому не нужных возможностей.

Заключение


В компании Atlassian считают очень важной возможность интеграции пакета инструментов DevOps с привычными инструментами команд по разработке и эксплуатации. Именно поэтому мы создали собственную платформу DevOps, которая способна интегрироваться с инструментами более чем от 171 ведущего поставщика. Таким образом вы сможете сделать оптимальный выбор в отношении используемых инструментов. Культуру DevOps нельзя купить у одного поставщика — ее можно только создать.

Готовы начать? Попробуйте решение Atlassian DevOps бесплатно.


Рекомендуемые статьи

Добавьте эти ресурсы в закладки, чтобы изучить типы команд DevOps или получать регулярные обновления по DevOps в Atlassian.

Рисунок: DevOps

Сообщество DevOps

Рисунок: DevOps

Образовательные программы DevOps

Рисунок схемы

Начните работу бесплатно

Подпишитесь на информационную рассылку по DevOps

Thank you for signing up