Какой процент рабочего времени DevOps-инженер тратит на написание кода?

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

Ответ

Я трачу на написание и поддержку кода примерно 40-50% времени. Этот код редко связан с бизнес-логикой приложения, а скорее с автоматизацией и декларативным описанием инфраструктуры.

Основные направления:

  1. Инфраструктура как код (IaC): Это основной пласт. Пишу и рефакторю конфигурации Terraform, модули Pulumi на Python/TypeScript, Ansible-плейбуки.

    # Пример Pulumi на Python для создания S3 bucket
    import pulumi
    import pulumi_aws as aws
    
    bucket = aws.s3.Bucket('my-app-logs',
        acl="private",
        tags={
            "Environment": pulumi.get_stack(),
        })
  2. CI/CD пайплайны: Написание скриптов и конфигураций для GitLab CI, Jenkinsfile, GitHub Actions Workflows.

    # .github/workflows/deploy.yml
    jobs:
      deploy:
        runs-on: ubuntu-latest
        steps:
          - name: Deploy to K8s
            run: |
              kubectl apply -f k8s/manifests/
              kubectl rollout status deployment/my-app
  3. Скриптинг и утилиты: Bash/Python-скрипты для автоматизации рутинных операций, сбора метрик, обработки логов.

Остальное время — это работа с уже запущенными системами, мониторинг, устранение неполадок и коммуникация.