• Dev (*Development*) — разработка программного обеспечения.
  • Ops (*Operations*) — IT-эксплуатация (системное администрирование, поддержка серверов и сети).

---

Главный смысл концепции

Исторически между разработчиками и сисадминами существовал конфликт целей:

  • Цель разработчиков: Как можно быстрее выпускать новые функции и обновлять код.
  • Цель сисадминов: Обеспечить максимальную стабильность и непрерывность работы серверов (а любые изменения — это риск сбоя).

DevOps — это методология и культура взаимодействия, которая разрушает этот барьер. Ее задача — сделать так, чтобы путь кода от написания на компьютере программиста до запуска на рабочем сервере занимал минуты, а не недели, и происходил автоматически, безопасно и без сбоев.

---

4 ключевых элемента DevOps

1. Автоматизация (CI/CD): Ручная настройка серверов и передача файлов по FTP заменяются автотестами, автоматической сборкой и деплоем (GitLab CI, GitHub Actions).
2. Инфраструктура как код (IaC): Серверы, сети и базы данных описываются в виде текстовых файлов-конфигураций (Terraform, Ansible), а не настраиваются вручную через консоль.
3. Контейнеризация: Упаковка приложения вместе с его окружением (Docker, Kubernetes), чтобы код работал одинаково на компьютере разработчика и в облаке.
4. Непрерывный мониторинг: Постоянный сбор метрик и логов (Prometheus, Grafana), чтобы находить и устранять проблемы до того, как о них узнают пользователи.

------------------------

Современные DevOps-практики

(часто объединяемые понятием Cloud-Native Engineering) эволюционировали от простой автоматизации скриптов к созданию предсказуемых, самовосстанавливающихся и полностью декларируемых систем.

---

1. Инфраструктура как код и состояние (IaC & CaC)

Главный принцип — отсутствие ручных изменений на серверах (*No Manual Changes / Immutable Infrastructure*).

  • Декларативный подход: Вместо написания пошаговых скриптов (Imperative) описывается конечное желаемое состояние системы.
  • Инструменты: Terraform / OpenTofu для провижининга облачных ресурсов (VPC, виртуальные машины, Managed K8s); Ansible для базовой конфигурации OS и виртуальных машин.
  • Неизменяемая инфраструктура: Серверы и контейнеры не обновляются «на левую ногу» в процессе работы — вместо этого собирается новый образ (Packer, Docker) и разворачивается взамен старого.

---

2. Подходы к CI/CD и GitOps

Смещение фокуса от императивного заталкивания кода к непрерывной синхронизации состояния.

  • CI (Continuous Integration): Быстрые, изоляционные сборки (Multi-stage Docker builds), linting, проверка типов, проверка безопасности артефактов (Trivy, Grype) на раннем этапе (Shift-Left Security).
  • GitOps (Декларативный CD): Git — единственный источник истины (Single Source of Truth).
  • Отказ от Pull-моделей с отправкой команд по SSH в пользу Pull-модели (Argo CD, Flux).
  • Агент внутри Kubernetes следит за Git-репозиторием и автоматически устраняет дрифт (рассинхрон) конфигурации.

---

3. Контейнеризация и оркестрация (Cloud-Native Ecosystem)

Стандарт де-факто для доставки и масштабирования приложений.

  • Стандартизация рантайма: Docker / containerd / Podman для упаковки приложений и зависимостей.
  • Оркестрация: Kubernetes как операционная система для распределенных систем.
  • Шаблонизация и пакеты: Helm для управления сложными манифестами и зависимостями приложений, Kustomize для управления средами (Dev/Staging/Prod) без дублирования кода.

---

4. Наблюдаемость (Observability вместо Monitoring)

Наблюдаемость строится на трех столпах (PIL / MELT):

| Направление | Инструменты | Назначение |
| --- | --- | --- |
| Метрики (Metrics) | Prometheus, VictoriaMetrics, Grafana | Отслеживание состояния ресурсов, RPS, latency, ошибок (RED/USE-методологии). |
| Логи (Logs) | Loki, Vector, ELK / OpenSearch | Сбор, фильтрация и агрегация логов приложений и системных сервисов. |
| Трассировка (Traces) | OpenTelemetry, Jaeger | Анализ прохождения запроса через микросервисную архитектуру для поиска узких мест. |

---

5. Платформенная инженерия (Platform Engineering)

Современная эволюция DevOps-отделов, направленная на устранение бутылочных горлышек.

  • Developer Self-Service: Создание IDP (Internal Developer Platforms) — платформы, где разработчик может сам в 1 клик развернуть окружение, создать базу данных или получить доступ, не создавая тикеты сисадминам.
  • Снижение когнитивной нагрузки: DevOps-инженер создает «золотые пути» (*Golden Paths* — готовые шаблоны Helm/CI/CD), позволяя разработчикам фокусироваться на написании бизнес-логики.

---

6. Встраивание безопасности (DevSecOps)

Безопасность интегрируется на каждом этапе конвейера, а не перед релизом.

  • Сканирование кода (SAST/DAST): SonarQube, Semgrep.
  • Сканирование зависимостей (SCA & Secrets): Snyk, Trivy, GitGuardian (поиск случайно закоммиченных паролей/ключей).
  • Безопасность рантайма: Использование RBAC, NetworkPolicies в Kubernetes, сканирование системных вызовов через eBPF (Cilium, Falco).