CI/CD для Python приложений: от версионирования до миграций
В современном мире разработки ПО системы CI/CD играют ключевую роль в обеспечении качества, надежности и скорости релизов. На основе реального примера пайплайна для Python приложений я расскажу:
Архитектура пайплайна: - Структура и ключевые этапы: подготовка, тестирование, миграции, сборка и деплой. - Управление версиями и хранилищами образов, подходы к публикации сборок.
Оптимизация использования кэша: - Эффективное использование poetry.lock для кэширования окружения помогает сократить время на установку зависимостей. - Генерация уникального ключа для кэша и ускорения сборок
Миграции базы данных: - Как организовать автоматизированный процесс создания и отката миграций.
Тестирование и покрытие кода: - Использование pytest и Allure для контроля качества на каждом этапе. - Автоматическое управление отчетами Allure через настройки пайплайна
Особенности релиза и деплоя: - Как разделять окружения (test, preview, production) и эффективно использовать Kubernetes.
Динамическое управление ревьюерами: - Автоматическая привязка ревьюеров на основе группы и списка для ускорения code review
Комплексное управление артефактами: - Чистка артефактов на основе регулярных выражений и ограничения количества - Разделение артефактов для миграций и основной сборки
Результаты: Участники узнают, как построить CI/CD-процесс с учетом особенностей Python приложений, включая безопасность, миграции и многоэтапное тестирование.
О СПИКЕРЕ
Продвигаю лучшие практики в разработке и эксплуатации, делюсь разными мыслями и идеями с сообществом в виде артефактов. Работаю над тем, чтобы DevOps стал конкретнее :) Некоторые полезные ресурсы: личный проект, посвященный развитию в DevOps-направлении - github.com/evgeniy-kharchenko/The-Way-of-DevOps, Как мы строим CI/CD на работе - github.com/Raiffeisen-DGTL/The-Way-of-CICD-Open-Source-EditionYouTube, плейлист, где я замечен - youtube.com/playlist?list=PLwy10tLyNoN0DjVu3wuDkTaLbAQnwZwfQ