Все статьи
Инженерия

On-premise развёртывание: Docker Compose для MES и WMS

Данные не должны покидать периметр предприятия. Разбираю on-premise развёртывание через Docker Compose: стек, конфигурация, backup, мониторинг. Почему не Kubernetes для одного завода.

On-premise развёртывание: Docker Compose для MES и WMS

Почему on-premise

Для многих предприятий облако неприемлемо:

  • Данные не должны покидать периметр (152-ФЗ, коммерческая тайна).
  • Нет стабильного интернета на производстве.
  • Контроль над всем стеком — от БД до приложения.
  • Облачные зависимости — риск для критичной инфраструктуры.

On-premise — развёртывание на сервере заказчика. Данные остаются внутри периметра.

Стек развёртывания

  • Docker — контейнеризация приложения. Изолированная среда, одинаковая на dev и prod.
  • Docker Compose — оркестрация: приложение + PostgreSQL + Nginx. Одна команда запускает весь стек.
  • Nginx — обратный прокси, TLS, статика.
  • PostgreSQL — в отдельном контейнере, данные на volume.

Пример docker-compose.yml

version: '3.8' services:  app:    build: .    restart: always    depends_on:      - db    env_file: .env    ports:      - "8000:8000"  db:    image: postgres:16    restart: always    env_file: .env    volumes:      - pgdata:/var/lib/postgresql/data      - ./backup:/backup    ports:      - "5432:5432"  nginx:    image: nginx:alpine    restart: always    depends_on:      - app    ports:      - "80:80"      - "443:443"    volumes:      - ./nginx.conf:/etc/nginx/nginx.conf      - ./ssl:/etc/nginx/ssl volumes:  pgdata:

Запуск

docker compose up -d

Одна команда. Все сервисы запущены. Приложение доступно на порту 80/443 через Nginx.

Что получает заказчик

  • docker-compose.yml — конфигурация всего стека.
  • .env — переменные окружения (пароли, пути).
  • Инструкцию по запуску — одну команду.
  • Backup-скрипты — регламентное копирование.
  • Мониторинг — health-check эндпоинты.

Почему не Kubernetes

Для MES/WMS на одном предприятии Kubernetes — избыточен. Один сервер, один стек, простое управление. Docker Compose достаточно.

Kubernetes имеет смысл при:

  • Масштабировании на несколько предприятий.
  • Микросервисной архитектуре с десятками сервисов.
  • Нескольких средах (dev/staging/prod) на одной инфраструктуре.

Для одного завода с одной системой — Docker Compose. Проще, понятнее, дешевле в эксплуатации.

Мониторинг

Health-check эндпоинт в приложении:

GET /health → {"status": "ok", "db": "ok"}

Docker Compose проверяет health-check и перезапускает контейнер при необходимости:

healthcheck:  test: curl -f http://localhost:8000/health || exit 1  interval: 30s  retries: 3

Backup

Отдельный контейнер или cron-задача:

docker compose exec db pg_dump -U postgres mydb > /backup/db_$(date +%Y%m%d).dump

WAL-архивирование — через volume, общий с backup-сервером.

Итог

On-premise через Docker Compose — это:

  • Данные внутри периметра.
  • Один сервер, одна команда запуска.
  • Полный контроль над стеком.
  • Минимальная сложность эксплуатации.

Заказчик получает не «систему в облаке», а свою систему на своём сервере. С кодом, backup и документацией.

Все статьи

Последняя проверка фактов: 19 сентября 2026. Метрики и цены сверены с доказательной базой и калькулятором.

Бесплатно

Остались вопросы по теме статьи?

Задайте вопрос — подберём материалы или разберём вашу ситуацию за 30 минут

Отвечу в течение 1 рабочего дня. Данные защищены и не передаются третьим лицам.

Просмотр изображения
Выберите удобный способ
Telegram