sales@core247.io +7 702 075 72 80
#Мониторинг12.01.2025

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 – это основа современного продакшена, и мы должны применять к нему те же высокие стандарты, что и к нашим основным сервисам.