Kanban + CI/CD = 💘💘💘

 Публичный пост
2 апреля 2024  30

Привет, Олимпийский!


Трудно отрицать, что современный темп жизни в разы быстрее, чем 5-10-15 лет назад. Любой бизнес заинтересован в быстрой доставке изменений до конечных пользователей. Архаичное планирование технических релизов с последующими коммерческими запусками (это Deploy) уходит в прошлое.

Путь к ускорению релизов лежит через автоматизацию и внедрение CI/CD:

  • CI, Continuous Integration - процесс постоянной разработки ПО с интеграцией в основную ветвь. Автоматически собирает софт, тестирует его и оповещает, если что-то идёт не так.
  • CD, Continuous Deployment - процесс постоянной доставки ПО до потребителя. Обеспечивает разработку проекта небольшими частями и гарантирует, что он может быть отдан в релиз в любое время без дополнительных ручных проверок.

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

Цели CI/CD

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

Принципы CI/CD

  • Разделение ответственности. Каждый из участников процесса делит ответственность за те или иные этапы жизненного цикла продукта. Проектируется бизнес-логистика, внедряются сквозные функции, проводятся приемочные тесты и организуется логистика кода.
  • Снижение рисков. Каждая команда, участвующая в разработке продукта, стремится к снижению рисков — контролируется корректность бизнес-логистики, проверяется пользовательский опыт, улучшается хранение и обработка данных и прочее.
  • Сокращение цикла обратной связи. Разработчик и клиент должны стремиться к увеличению скорости внесения изменений и согласования правок. Сборку и тестирование кода можно автоматизировать. А для ситуаций, когда требуется участие человека, можно минимизировать число информационных посредников.
  • Реализация среды. У разработчиков должно быть общее рабочее пространство с основной и вспомогательными ветками для контроля версий и качества, приемлемости, отказоустойчивости и других критериев.

Этапы CI / CD (7 этапов)

  • Написание кода. Разработчики пишут код своего модуля и проводят тестирование в ручном режиме. После этого результат работы соединяется в главной ветке с текущей версией проекта. После того, как в главной ветке публикуются все коды модулей, начинается второй этап.
  • Сборка. Выбранная система контроля версий инициирует автоматическую сборку и последующее тестирование проекта. Триггеры для активации сборки могут быть настроены самостоятельно. Для автоматизации сборки применяется Jenkins или другой инструмент.
  • Ручное тестирование. После проверки CI-системой работоспособности тестовой версии код передается для ручного исследования.
  • Релиз. После ручного тестирования в сборку вносятся исправления. Следом проходит релиз версии кода для клиентов.
  • Развертывание. На этом этапе текущая (рабочая) версия кода размещается на production-серверах разработчика. Клиент может взаимодействовать с программой и изучать ее функции.
  • Поддержка и мониторинг. Продукт начинает использоваться конечными пользователями. При этом разработчики продолжают его поддерживать и проводят анализ пользовательского опыта.
  • Планирование. Исходя из пользовательского опыта разрабатывается новый функционал и готовится план доработок. После этого разработчик начинает написание кода — и цикл замыкается.

Плюсы и минусы CI/CD

CI/CD — это не просто методология, но и очень хороший инструмент для команды разработки. Чем дольше планируется разрабатывать и поддерживать проект, тем больше пользы принесет наличие хорошо спроектированного CI/CD. Все ресурсы и затраты на этот инструмент окупаются на дистанции. С его помощью неоспоримо сокращается time-to-market, а также уменьшается вероятность совершить ошибку. Самое главное — это поддерживать инструмент в хорошем состоянии.

Применение CI / CD в Клубе

Кстати, у нас в Клубе настроен полноценный CI / CD: https://teletype.in/@toptuk/pmiclub5

Исходники Клуба доступны в GitHub, где сделаны 3 бранча:

  • Dev - сюда попадают все локальные доработки Клуба. Коммит в эту ветвь не инициирует запуск PVT/BVT и интеграционных тестов.
  • Master - сюда доработки попадают после создания Pull Request. Обычно, из DEV ветки. При этом, запускаются все необходимые базовые и интеграционные тесты.
  • Deploy - это бранч, куда попадают стабильные версии Клуба после прохождения всех тестов, в т.ч. тесты на поиск VULN. После прохождения тестов запускается процесс CD.

Применение Kanban

См. https://pmi.moscow/post/162/ Всё просто: Kanban + CI/CD = 💘

❤️ Meow! ❤️

Связанные посты
Откомментируйте первым 👇

😎

Автор поста открыл его для большого интернета, но комментирование и движухи доступны только участникам Клуба

Что вообще здесь происходит?


Войти