DevOps Architecture

Микросервисы в Docker: уроки, которые дал прод

Микросервисы в контейнерах выглядят игрушечно, пока не приходит первый же пиковый трафик: OOMKilled, рестарт-лупы и очередь сообщений, которая растёт быстрее, чем мы успеваем читать алерты.

Урок первый: лимиты памяти и CPU — не формальность. Сервис без limits однажды съел всю ноду и утащил за собой трёх соседей, включая авторизацию.

services:
  billing:
    deploy:
      resources:
        limits:  { memory: 512M, cpus: "0.75" }
    restart: unless-stopped
    healthcheck:
      interval: 10s
      retries: 3

Урок второй: healthcheck должен проверять зависимости, а не просто отвечать 200 на /ping. Иначе оркестратор считает «здоровым» сервис, который не может достучаться до базы.

Урок третий: логируйте структурированно и пишите в stdout. JSON-логи + централизованный сбор сэкономили нам часы разборов инцидентов.

Контейнер — это не «маленькая виртуалка», а контракт между кодом и инфраструктурой. Контракты надо писать явно.

читайте также

Как я перестал воевать с CI/CD и начал жить Фронтенд-архитектура: от спагетти к фича-модулям

Комментарии 1

K
k8s_wanderer13 июля 2026

Про healthcheck с зависимостями — боль. У нас ещё readiness и liveness разведены, иначе роллинг-апдейт убивал живые поды.

Оставить комментарий