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

Если мы сместим фокус наблюдения влево, мы сможем решить проблемы в CI/CD до того, как они обострятся, как заявили два инженера Grafana.

Перевод книги «Наблюдаемость CI/CD: новые широкие возможности для OpenTelemetry» , автор Джордано Риччи;

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

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

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

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

Влево еще есть куда двигаться

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

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

Мы развертываем вещи, видим, как они загораются, а затем пытаемся потушить огонь.

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

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

Есть причина, по которой OpenTelemetry — один из самых активных проектов в Cloud Native Computing Foundation (CNCF) (технически «второй по скорости проект»). Это был отличный протокол для определения семантических соглашений и унификации типов сигналов для журналов, метрик и трассировок («три столпа» наблюдаемости), а также для аналитики и других новых типов сигналов.

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

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

Вот почему, когда рабочая группа OTel CI/CD впервые предложила ввести новые семантические соглашения для наблюдаемости CI/CD, а затем предложила создать новую группу специальных интересов (SIG) специально для наблюдаемости CI/CD, было так много волнений.

Как будет выглядеть будущее данных наблюдения

Владение собственными данными означает, что вы сами решаете, куда они будут идти и как храниться. Запуская OpenTelemetry между нашей системой CI и выбранным нами пунктом назначения, OpenTelemetry заботится о преобразовании ее в нужную нам базу данных и схему, а это означает, что множество инноваций, основанных на ранее разрозненных данных CI, теперь представляют поле Observability Tool.

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

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

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

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

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

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

Эта статья была впервые опубликована на Yunyunzhongsheng ( https://yylives.cc/ ), приглашаем всех посетить ее.

Программист, родившийся в 1990-х годах, разработал программу для переноса видео и заработал более 7 миллионов менее чем за год. Концовка была очень суровой! Старшеклассники создают свой собственный язык программирования с открытым исходным кодом в качестве церемонии совершеннолетия – резкие комментарии пользователей сети: Полагаясь на RustDesk из-за повального мошенничества, отечественный сервис Taobao (taobao.com) приостановил внутренние сервисы и возобновил работу по оптимизации веб-версии Java 17 является наиболее часто используемой версией Java LTS. Доля рынка Windows 10 Достигнув 70%, Windows 11 продолжает снижаться. Open Source Daily | Google поддерживает Hongmeng, чтобы взять на себя управление телефонами Rabbit R1 с открытым исходным кодом, поддерживаемыми Docker Microsoft; Electric закрывает открытую платформу Apple выпускает чип M4 Google удаляет универсальное ядро ​​Android (ACK) Поддержка архитектуры RISC-V Юньфэн ушел из Alibaba и планирует в будущем производить независимые игры для платформ Windows
{{o.name}}
{{м.имя}}

рекомендация

отmy.oschina.net/u/6919515/blog/11090891