Как были устроены рабочие процессы на последнем проекте

«Как были устроены рабочие процессы на последнем проекте» — вопрос из категории Софт-скиллы, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый пример ответа, который можно адаптировать под свой опыт.

Ответ

На последнем проекте мы использовали GitFlow с ветками feature, develop, release, hotfix и main. CI/CD был построен на GitHub Actions и ArgoCD:

  • При пуше в feature запускались линтеры (hadolint, shellcheck), unit-тесты и security-сканирование (Trivy).
  • Мерж в develop запускал сборку Docker-образа, деплой на staging-кластер Kubernetes и прогон интеграционных тестов.
  • Мерж в main через release-ветку инициировал деплой в production с blue-green стратегией, управляемой Argo Rollouts.

Инфраструктура описывалась как код с помощью Terraform (AWS EKS, VPC, RDS), конфигурации приложений — через Helm-чарты. Мониторинг и алертинг были настроены в Prometheus и Alertmanager, дашборды — в Grafana.

Пример workflow для деплоя:

name: Deploy to Production
on:
  push:
    branches: [main]
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v3
      - name: Configure AWS Credentials
        uses: aws-actions/configure-aws-credentials@v2
        with:
          aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
          aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
          aws-region: us-east-1
      - name: Update kubeconfig
        run: aws eks update-kubeconfig --name my-cluster
      - name: Deploy with Helm
        run: |
          helm upgrade --install my-app ./charts/app 
            --namespace production 
            --values values-prod.yaml 
            --atomic --timeout 5m