DevOps
Практики непрерывной интеграции и доставки (CI/CD). Docker, Kubernetes, автоматизация развертывания.
CI/CD пайплайны
Автоматизация сборки, тестирования, деплоя. GitHub Actions, GitLab CI, Jenkins, CircleCI. Непрерывная интеграция и доставка.
Контейнеризация
Docker: образы, контейнеры, Dockerfile, docker-compose. Изоляция приложений, переносимость, микросервисы.
Оркестрация
Kubernetes: pods, services, deployments, ingress. Helm-чарты, kubectl. Автоскейлинг, self-healing, service mesh (Istio).
Инфраструктура как код
Terraform, Pulumi, CloudFormation. Декларативное описание инфраструктуры. GitOps, версионирование, воспроизводимость.
Terraform (IaC)
Infrastructure as Code инструмент от HashiCorp (2014). Декларативный язык HCL (HashiCorp Configuration Language): описываем желаемое состояние инфраструктуры → Terraform создаёт/обновляет ресурсы. Providers для облаков: AWS, Azure, GCP, Kubernetes, 3000+ провайдеров. Terraform plan — предпросмотр изменений (создать 5, изменить 2, удалить 1 ресурс), apply — применение. State file — текущее состояние инфраструктуры (хранится в S3/Terraform Cloud). Модули — переиспользуемые блоки конфигурации. Преимущества: версионирование инфраструктуры (Git), воспроизводимость (одна конфигурация → идентичные dev/staging/prod), документация (код = документация). Альтернативы: CloudFormation (только AWS), Pulumi (код на Python/TypeScript вместо HCL)
Prometheus
Система мониторинга и алертинга (2012, SoundCloud, 2016 в CNCF). Pull-модель: Prometheus опрашивает метрики с /metrics endpoint (vs push в Graphite/InfluxDB). Time-series БД: метрики с метками (labels) — http_requests_total{method="GET", status="200"}. PromQL язык запросов: rate(http_requests_total[5m]) — RPS за 5 минут. Service discovery — автоматическое обнаружение целей (Kubernetes, Consul). Exporters для метрик: node_exporter (CPU/RAM/disk), blackbox_exporter (HTTP/TCP проверки), custom exporters. Alertmanager для уведомлений (группировка, маршрутизация в Slack/PagerDuty). Grafana для визуализации (дашборды). Используется: 60%+ Kubernetes кластеров. Недостаток: не для логов (используйте Loki) и трейсов (Jaeger)
Docker (контейнеризация)
Изоляция приложений в контейнерах (2013, Solomon Hykes). Образ (image): слои файловой системы (union FS), неизменяемый. Контейнер (container): запущенный образ, namespace isolation (процессы, сеть, файлы). Легче VM (общее ядро). Dockerfile: инструкции сборки. Docker Hub: публичный registry. Kubernetes оркестрирует Docker.
Kubernetes (оркестрация)
Управление контейнерами в кластере (Google, 2014, на базе Borg). Pods (группа контейнеров), Services (балансировка), Deployments (управление версиями). Автомасштабирование (HPA), самовосстановление (restart на сбой). Declarative config (YAML). Helm: пакетный менеджер. Облака: EKS (AWS), GKE (Google), AKS (Azure).
CI/CD
Continuous Integration / Delivery. Автоматическая сборка, тестирование, деплой. Jenkins, GitLab CI, GitHub Actions. Trunk-based development. Релизы по кнопке.
Infrastructure as Code
Инфраструктура описана кодом. Terraform (HashiCorp) — мультиоблачный. Ansible — конфигурация серверов. Pulumi — на языках программирования. Версионирование, воспроизводимость.
Мониторинг и логирование
Prometheus + Grafana — метрики. ELK Stack (Elasticsearch, Logstash, Kibana) — логи. Jaeger — трейсинг. SLO/SLI — метрики надёжности. Алертинг: PagerDuty, OpsGenie.