На высоком уровне конвейер CICD имеет два гола — создать код и доставить код. Хотя это может показаться очень простым для некоторых, построение успешного, повторного трубопровода принимает тонну тестирования и видимости.
Когда вы строите успешный трубопровод, вам нужно убедиться, что:
- Все предварительные условия и зависимости кода выполнены (библиотеки, модули, пакеты и т. Д.)
- Вы понимаете INS и ауты платформы CICD, которые вы используете. Хотя сама технология всегда такая же, различные функции и требования платформы CICD могут варьироваться.
- Все инженеры понимают, что делает трубопровод
- Доступны разные этапы (разработка, постановка/UAT, PROD) для целей тестирования для обеспечения развертывания кода готов к производству
После того, как вы построили успешный трубопровод, как вы можете сохранить его успех? Как вы можете убедиться, что он работает, как и ожидалось, не наблюдая за ним каждые пять минут?
В этом посте в блоге вы узнаете около трех ключевых способов поддерживать видимость трубопровода для действий GitHub.
Журналы из трубопровода CICD
Первое место, которое вы можете вытащить информацию из, хотя очень Adhoc, являются журналами в действиях GitHub. Когда вы создаете новое действие GitHub, вы можете увидеть, смотреть и просматривать весь пошаговый трубопровод. Вывод очень важный, потому что он собирается точно сказать, что происходит, успех или неудача, в трубопроводе.
На первом скриншоте ниже вы можете увидеть список трубопроводов CICD (называемые рабочие процессы в действиях GitHub), которые были запущены. Некоторые преуспели, а некоторые потерпели неудачу.
Одна негативная вещь об этом подходе — это если вам нужны эти журналы позже вниз по линии, вы не сможете увидеть их в качестве журналов истекает через 90 дней. Из-за этого это не совсем надежный источник. Если вы хотите удержать эти журналы, вы хотите хранить эти журналы в другом месте.
Если вы хотите взглянуть на журналы трубопроводов, которые являются новыми, то этот подход отличается от перспективы ADHOC. На дисплее ниже скриншота имеет неудачный трубопровод из приложения Weatherchecker, написанный в Go (Golang) на моем общественном Github.
Уведомление на следующем скриншоте ошибка.
Теперь вы можете увидеть из журналов Action GitHub, что это связано с ошибкой HTTP 403, которая, скорее всего, из ключа API, истек, поэтому не может возникнуть авторизация, что не может выполнить провал трубопровод. Журналы из трубопровода CICD отлично подходят для устранения неполадок.
Мониторинг и регистрация трубопровода CICD
Несмотря на то, что глядя на журналы через действия GitHub, вам обычно нужно что-то более долгосрочное. Решение, которое вы можете вернуться к позже, запрашивать результаты и даже получить некоторые оповещения. Вот почему вы должны настроить некоторые мониторинг и регистрацию для трубопроводов CICD.
В зависимости от вашего решения для мониторинга/регистрации, он обычно состоит из нескольких шагов:
- Аутентифицировать от везда, где данные (трубопровод) в раствор журнала и мониторинга.
- Отправьте данные через некоторую интеграцию. Например, есть интеграция GitLab для отправки информации по трубопроводу в DataDog.
- Получить творческий Напишите скрипт, который, например, может собирать данные из GitHub и отправить его на новую реликвию, используя новые API Relicts.
Еще один отличный способ сделать это с платформой управления потоком стоимости (VSM). VSM все еще довольно новый, но там есть несколько платформ и инструментов. VSM на высоком уровне — это способ показать стоимость от инженерной перспективы. Многие из инструментов и платформ могут собирать данные о трубопроводах.
Вот несколько отличных ссылок для различных инструментов мониторинга и регистрации на том, как собирать данные трубопроводов.
- https://docs.newrelic.com/docs/new-relic-solutions/new-relic-solutions/measure-devops-success/measure-code-pipelines/
- https://docs.datadoghq.com/continuous_integration/?_gl=1*qltzfp*_ga*MTYwMzQ1ODI0MS4xNjMxNjM1MDUw*_ga_KN80RDFSQK*MTYzNDA0MjY5NS4zLjEuMTYzNDA0MjcxOC4w&_ga=2.77239314.603174302.1634042696-1603458241.1631635050
- https://www.splunk.com/en_us/devops/cicd-pipeline-monitoring.html
Результаты сообщений
Приложения для обмена сообщениями (Slack, Discord, MS Teams), при быстром темпе, замена электронной почты и как мы общаемся. Хотя вы не должны проводить весь день в этих приложениях обмена сообщениями, потому что они сильно негативно влияют на производительность, они отлично, если вы хотите настроить канал для захвата трубопровода.
Есть несколько отличных способов настроить интеграции для провисания. Вы можете получить сообщение в определенный канал каждый раз, когда работает трубопровод, трубопровод не удается, трубопровод успешен и т. Д. Вы можете даже показать, кто управлял трубопроводом. Это отличный способ сохранить вкладки на то, что происходит с точки зрения CICD и в зависимости от того, что у вас есть, эти сообщения будут постоянными, поэтому вы можете вернуться позже и просмотреть их.
Вот два способа, которые вы можете интегрировать действия и провисания GitHub:
- https://github.com/marketplace/actions/slack-notify
- https://github.com/marketplace/actions/slack-github-actions-slack-integration
Закрытие мыслей
Многие организации в это время все еще пытаются полностью понять CICD и как его эффективно использовать. Потому что это такая большая цель сама по себе, они на самом деле не думают о долгосрочной перспективе, как о том, как просматривать данные о трубопроводах и увидеть производительность/значение.
Трубопроводы журнала и мониторинга имеют решающее значение для любой организации, которая хочет видимости в инструменты, которые заставляют их приложения выходить в мир, что делает то, что делает организацию деньги.
Оригинал: «https://dev.to/thenjdevopsguy/how-to-maintain-pipeline-visibility-in-github-actions-44ec»