
Почему наблюдаемость в CI/CD необходима
Задача CI/CD — минимизировать ручные процессы, создавать готовое к развертыванию ПО и устранять проблемы до их попадания в продакшн.
Этот подход стал ключевым для повышения надежности и автоматизации, но мы до сих пор сталкиваемся с проблемами нестабильности, отсутствием прозрачности и инструментов для предотвращения сбоев.
Исторически внимание было сосредоточено на мониторинге финальных этапов, например, уже работающего ПО, тогда как сбор данных с начальных фаз — таких как сборка, тестирование или развертывание — упускался.
«Мы видим, как приложение выходит из строя, и пытаемся исправить это. Но если наблюдать только за последними этапами разработки, то уже поздно».
Смещение фокуса наблюдаемости «влево»
Традиционно CI используется для мониторинга изменений, поддержания здоровья сборки и сигналов системы на ранних этапах. А алертинг работает на более поздних стадиях, реагируя на проблемы, которые не были пойманы CI.
Однако ограничение наблюдаемости финальными этапами создает серьезные проблемы:
- Сложности с поиском корневой причины (root cause analysis): нет данных о том, что произошло на этапе сборки или тестирования.
- Увеличение времени восстановления (MTTR): устранение сбоев занимает больше времени.
- Упущенные возможности для оптимизации: знаем, что CI-пайплайны работают долго, но не понимаем, как это исправить.
Смещение фокуса наблюдаемости «влево» позволяет:
- Выявлять проблемы до их эскалации.
- Повышать надежность тестов.
- Снижать затраты, связанные с простоем системы.
- Оптимизировать производительность на начальных этапах разработки.
Возможности 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 – это основа современного продакшена, и мы должны применять к нему те же высокие стандарты, что и к нашим основным сервисам.

