Что такое автоматизация DevOps и как ее реализовать? Часть 1

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

DevOps и автоматизация — это взаимосвязанные понятия. Фактически, автоматизация — это основная ценность DevOps. Благодаря стандартизированным уведомлениям и отчетности улучшается коммуникация между группами разработки приложений и IT-подразделениями.

 В этой части нашей статьи мы более подробно рассмотрим понятие DevOps Automation, а также расскажем, что именно можно автоматизировать. 

Для чего нужна автоматизация

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

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

Автоматизация построения DevOps 

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

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

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

Такой подход должен помочь достичь одного или нескольких из основных преимуществ DevOps:

  • Стандартизация;
  • Гибкость;
  • Последовательность;
  • Скорость;
  • Масштабируемость.

Далее, когда определена цель, можно выбрать области, в которых необходима автоматизация. 

Что можно автоматизировать

В конвейере DevOps есть несколько этапов, которые можно автоматизировать:

  • Тестирование программного обеспечения;
  • Управление инфраструктурой;
  • Мониторинг и отчетность.

Давайте рассмотрим каждый из этих разделов более подробно.

  • Автоматизированное тестирование программного обеспечения DevOps

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

Автоматизированная проверка будет более точной, чем проверка живым человеком. Тесты программного обеспечения сгруппированы в разные категории в зависимости от объема:

  • Модульное тестирование — изучение отдельных частей исходного кода.
  • Интеграционное тестирование — проверка групп кода.
  • Сквозное тестирование — методический подход к проверке всего приложения.
  • Исследовательское тестирование — изучение всего приложения неметодическим подходом для отражения взаимодействия с пользователем. 

Реальный пример стратегии автоматического тестирования программного обеспечения DevOps — это использование таких фреймворков, как Test.ai, для моделирования поведения пользователей и выявления любых ошибок в пользовательском интерфейсе.

  • Автоматизированное управление инфраструктурой

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

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

Реальный пример автоматизированного управления инфраструктурой DevOps — это использование таких инструментов, как AWS CodeDeploy, для создания программных сред с использованием предопределенных шаблонов. Эти инструменты позволяют командам мгновенно запускать новые приложения и выпускать обновления для уже существующих.

  • Автоматический мониторинг и отчетность

После того, как приложение запущено, необходимо сделать мониторинг приложения для обнаружения проблем. Проблемы могут быть разные: от ошибок до простоев и кибератак.

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

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

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

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


Источник: hubspot.com 

 

Условия передачи информации

Я даю согласие OOO «ЭсБилдер» (далее «BINN») на обработку моих персональных данных в соответствии со статьями 6, 9, 10, 18 Федерального закона от 27 июля 2006 года № 152-ФЗ «О персональных данных», указанных в онлайн-форме и/или предоставленных мною с целью:

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

Настоящее согласие применяется в отношении обработки следующих данных: имя, номер телефона, адрес электронной почты (E-mail).

Настоящее согласие предоставляется сроком на пять лет. По истечении указанного срока действие согласия считается продленным на каждые следующие пять лет при отсутствии сведений о его отзыве.

Согласие может быть отозвано мною в любой момент путем направления в BINN подписанного мною письменного заявления.