Ответ
Agile (гибкая методология) — это набор принципов и ценностей для разработки ПО, сфокусированный на итеративной поставке рабочего продукта, быстрой адаптации к изменениям и тесном сотрудничестве с заказчиком. В DevOps культура Agile является фундаментом для CI/CD.
Ключевые принципы из Agile Manifesto, важные для DevOps:
- Работающий продукт — основной показатель прогресса. В DevOps это трансформируется в автоматизированные пайплайны, где каждая успешная сборка потенциально готова к продакшену.
- Готовность к изменениям требований. Наша инфраструктура как код (IaC) и контейнеризация позволяют быстро адаптировать окружение под новые нужды.
- Частые поставки рабочего ПО. Мы реализуем это через автоматизированные пайплайны развертывания, которые могут выполняться несколько раз в день.
Как это выглядит на практике в DevOps-команде:
Мы работаем двухнедельными спринтами. Разработчик создает фичу в отдельной ветке, затем создает Merge Request. Запускается CI/CD пайплайн в GitLab CI:
# .gitlab-ci.yml (упрощенно)
stages:
- test
- build
- deploy-staging
- deploy-prod
unit-test:
stage: test
script:
- make test
build-container:
stage: build
script:
- docker build -t my-app:$CI_COMMIT_SHA .
- docker push my-registry/my-app:$CI_COMMIT_SHA
deploy-to-staging:
stage: deploy-staging
script:
- kubectl set image deployment/my-app app=my-registry/my-app:$CI_COMMIT_SHA -n staging
only:
- merge_requests
# Ручное или автоматическое развертывание в prod после ревью кода
deploy-to-prod:
stage: deploy-prod
script:
- ./scripts/blue-green-deploy.sh $CI_COMMIT_SHA
when: manual # Требует подтверждения
only:
- main
Таким образом, Agile в DevOps — это не просто встречи, а технические практики, позволяющие безопасно и быстро доставлять ценность пользователям.
Видео-ответы
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶