- 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).