В каком формате работаешь?

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

Ответ

В своей работе как DevOps-инженер я постоянно работаю с несколькими ключевыми форматами, каждый для своей задачи:

  • YAML: Основной формат для декларативных конфигураций. На нем пишутся плейбуки Ansible, манифесты Kubernetes, конфигурации GitLab CI/CD и GitHub Actions.
    # Пример манифеста Kubernetes (Deployment)
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx-deployment
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: nginx
  • HCL (HashiCorp Configuration Language): Использую для написания кода инфраструктуры в Terraform.
    # Пример ресурса Terraform для AWS
    resource "aws_instance" "app_server" {
      ami           = "ami-0c55b159cbfafe1f0"
      instance_type = "t2.micro"
      tags = {
        Name = "ExampleAppServerInstance"
      }
    }
  • JSON: Часто встречается в API-ответах, конфигах различных инструментов (например, tsconfig.json, политики AWS IAM в JSON-формате).
  • Markdown: Для всей проектной документации — README, runbooks, описания процессов.
  • Shell (Bash): Для скриптов автоматизации, оберток и задач, которые сложно или нецелесообразно описывать декларативно.
    # Пример скрипта для быстрой проверки кластера
    #!/bin/bash
    echo "Checking cluster nodes..."
    kubectl get nodes
    echo "nChecking system pods..."
    kubectl get pods -n kube-system

Выбор формата всегда диктуется инструментом и принципом наилучшего соответствия задаче.