Ответ
Мой основной стек языков для автоматизации и инфраструктуры:
-
Python — основной язык для сложной автоматизации, создания инструментов и работы с облачными API (AWS Boto3, Google Cloud Client Libraries). Идеален для написания скриптов администрирования, обработки данных мониторинга или создания кастомных провайдеров/модулей.
# Пример: Автоматическое создание AMI import boto3 from datetime import datetime ec2 = boto3.client('ec2') response = ec2.create_image( InstanceId='i-1234567890abcdef0', Name=f'backup-{datetime.now().strftime("%Y%m%d")}', NoReboot=True ) print(f"Created AMI: {response['ImageId']}") -
Bash — незаменим для shell-скриптов, быстрой автоматизации на серверах, написания команд в Dockerfile и CI/CD пайплайнах. Использую ежедневно для рутинных операций.
# Пример: Скрипт очистки старых Docker-образов #!/bin/bash echo "Cleaning unused Docker images..." docker image prune -a --filter "until=24h" --force -
Golang (Go) — использую для написания высокопроизводительных утилит, CLI-инструментов или когда требуется создание бинарного файла без зависимостей для распространения. Многие современные DevOps-инструменты (Terraform, Docker, Kubernetes) написаны на Go.
// Пример: Простая утилита для проверки HTTP-ответов package main import ( "fmt" "net/http" ) func main() { resp, err := http.Get("http://example.com/health") if err != nil || resp.StatusCode != 200 { fmt.Println("Health check FAILED") } else { fmt.Println("Health check OK") } }
Дополнительно, для работы с инфраструктурой как код (IaC) активно использую декларативные языки: HCL (Terraform) и YAML/JSON (Ansible, CloudFormation, Kubernetes манифесты).