Есть ли опыт программирования/скриптинга?

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

Ответ

Да, программирование и скриптинг — неотъемлемая часть моей работы в DevOps. Я использую их для автоматизации рутинных задач, создания инструментов и управления инфраструктурой как код (IaC).

Основные языки и сценарии их применения:

  • Bash: Для написания скриптов развертывания, оркестрации контейнеров, быстрой обработки логов и системного администрирования.
    # Пример: Скрипт для очистки старых Docker-образов
    #!/bin/bash
    THRESHOLD_DAYS=7
    echo "Cleaning images older than $THRESHOLD_DAYS days..."
    docker image prune -a --force --filter "until=${THRESHOLD_DAYS}d"
  • Python: Для сложной автоматизации, работы с облачными API (boto3 для AWS), парсинга JSON/YAML, создания кастомных мониторинговых экспортеров и утилит.
    # Пример: Проверка доступности эндпоинтов из файла
    import requests
    import yaml
    with open('endpoints.yaml') as f:
        endpoints = yaml.safe_load(f)
    for name, url in endpoints.items():
        try:
            resp = requests.get(url, timeout=5)
            print(f"{name}: UP ({resp.status_code})")
        except requests.exceptions.RequestException as e:
            print(f"{name}: DOWN - {e}")
  • Go: Для написания высокопроизводительных утилит, CLI-инструментов или микросервисов, где важна скорость выполнения и простота дистрибуции (единый бинарный файл).

Также активно пишу конфигурации для IaC-инструментов, которые по сути являются декларативным кодом: Terraform (HCL) для облачной инфраструктуры, Ansible (YAML + Jinja2) для конфигурационного менеджмента.