CI/CD и наблюдаемость: возможности с OpenTelemetry

Непрерывная интеграция и непрерывное развертывание (CI/CD) — это основа современного процесса доставки программного обеспечения. Разбираемся, как OpenTelemetry способствует изменениям в области наблюдаемости CI/CD и почему это так важно.

Почему наблюдаемость в CI/CD необходима

Задача CI/CD — минимизировать ручные процессы, создавать готовое к развертыванию ПО и устранять проблемы до их попадания в продакшн.


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


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

«Мы видим, как приложение выходит из строя, и пытаемся исправить это. Но если наблюдать только за последними этапами разработки, то уже поздно».

Смещение фокуса наблюдаемости «влево»

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


Однако ограничение наблюдаемости финальными этапами создает серьезные проблемы:


  • Сложности с поиском корневой причины (root cause analysis): нет данных о том, что произошло на этапе сборки или тестирования.
  • Увеличение времени восстановления (MTTR): устранение сбоев занимает больше времени.
  • Упущенные возможности для оптимизации: знаем, что CI-пайплайны работают долго, но не понимаем, как это исправить.

Смещение фокуса наблюдаемости «влево» позволяет:


  1. Выявлять проблемы до их эскалации.
  2. Повышать надежность тестов.
  3. Снижать затраты, связанные с простоем системы.
  4. Оптимизировать производительность на начальных этапах разработки.

Возможности OpenTelemetry для CI/CD

OpenTelemetry – один из самых активных проектов в рамках Cloud Native Computing Foundation. Он позволяет унифицировать типы сигналов (логи, метрики, трассировки) и интегрировать новые типы, такие как профилирование.


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


Данные CI/CD долгое время оставались в "черных ящиках". Разработчики сталкивались с трудностями при попытке получить доступ к этим данным в удобном формате. Сегодня концепция "владения своими данными" становится все более актуальной. Пользователи хотят работать с данными CI/CD в своей архитектуре без сложных обходных путей и проблем с совместимостью.


Это привело к появлению инициативы по внедрению новых семантических соглашений для наблюдаемости CI/CD в рамках OpenTelemetry. Недавно был создан отдельный Special Interest Group (SIG), чтобы сосредоточиться на этом направлении.


Что делает OpenTelemetry важным для CI/CD:


  • Единый подход: OTel устраняет барьеры в наблюдаемости, поддерживая открытые стандарты и интеграцию с различными языками программирования.
  • Собственные данные CI:. OpenTelemetry предлагает «владеть своими данными CI», используя их в знакомых схемах и инструментах.

Будущее данных наблюдаемости

Контроль над своими данными позволяет выбирать, где их хранить и как ими управлять. OpenTelemetry берет на себя преобразование данных CI в нужный формат и их отправку в выбранное хранилище. Это открывает новые возможности:


  • Создание таймлайнов событий пайплайна.
  • Детальный анализ сбоев и воспроизведение причин ошибок.
  • Оптимизация производительности CI/CD.

Например, можно использовать OpenTelemetry Collector для извлечения данных из CI-систем вроде Drone, преобразования их и отправки в базу данных. Для Jenkins уже существует плагин, экспортирующий данные через протокол OTLP.

Важность наблюдаемости в CI/CD

Интеграция данных CI/CD с системами наблюдаемости дает:


  • Возможность отслеживать ключевые этапы сборки и тестов.
  • Определять момент, когда возникли ошибки.
  • Легко устранять нестабильные элементы тестов.

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


С учетом растущей популярности OpenTelemetry, наблюдаемость CI/CD станет одной из ключевых областей эволюции, наряду с мониторингом инфраструктуры и производительности приложений.


CI/CD – это основа современного продакшена, и мы должны применять к нему те же высокие стандарты, что и к нашим основным сервисам.

Получите бесплатную консультацию по DevOps-поддержке


Узнайте об услуге devops support и закажите звонок у наших менеджеров. Поможем с любой задачей


Узнать больше