Архитектура систем
Единый архитектурный фундамент для разных предметных систем. Общее техническое ядро + индивидуальный предметный контур.
MES, WMS и ERP строятся на одном технологическом фундаменте. Различаются не архитектурой, а предметной областью: производственные операции, складские процессы, управление ресурсами. Это позволяет добавлять модули по мере роста без переписывания ядра.
Технологический стек
Open source-стек, лицензионные платежи вендору не предусмотрены в рамках согласованной модели передачи
Backend
Python, FastAPI, SQLAlchemy. Асинхронные обработчики, Pydantic-схемы, автогенерация OpenAPI.
Frontend
Vue.js или чистый HTML/CSS/JS с Tailwind — в зависимости от сложности интерфейса. Серверный рендеринг Jinja2 для SEO-страниц.
Развёртывание
Docker, Docker Compose. On-premise на сервере заказчика или в облаке. Без обязательных облачных зависимостей.
Интеграции
REST API, 1С-интеграция (HTTP-сервисы / обмен файлами), QR/штрихкоды, Честный ЗНАК, ТСД.
Аутентификация
JWT-токены, ролевая модель доступа (RBAC). LDAP/AD — по требованию.
Слои системы
От оборудования до директора — один путь данных
- 1. Точка сбора данных — ТСД на складе, планшет в цеху, QR-код на детали, сканер штрихкодов. Данные фиксируются в момент операции, не постфактум.
- 2. API-слой — FastAPI. Приём операций, валидация через Pydantic, бизнес-логика, авторизация по ролям.
- 3. Модель данных — PostgreSQL. Операции, остатки, заказы, пользователи, роли. Миграции через Alembic.
- 4. Интеграционный слой — обмен с 1С, внешние API, выгрузки, ЭТРН, Честный ЗНАК.
- 5. Интерфейс — веб-интерфейс для рабочего, мастера, кладовщика, руководителя. Разные роли — разные экраны.
- 6. Отчётность и аналитика — выработка по цехам, брак по причинам, остатки, сдельная ЗП. Формируются из данных системы за период.
Общее ядро и предметные контуры
MES, WMS и ERP — модули на общем фундаменте
пример архитектуры, конкретная схема зависит от проекта
Производство, склад и управление ресурсами — связаны. Заказ из ERP запускает маршрутную карту в MES, MES списывает материалы со склада в WMS, WMS отгружает готовую продукцию и закрывает заказ в ERP.
Если это три разных продукта от трёх вендоров — интеграция становится отдельным проектом, дорогим и хрупким. В общем фундаменте данные текут без интеграционных швов.
Можно начать с одного модуля (например, WMS) и добавить MES или ERP позже — без миграции и переписывания.
Развёртывание
On-premise
Сервер на территории заказчика. Данные не покидают периметр. Подходит для промышленных предприятий и задач с требованиями безопасности.
Облако
Развёртывание в облаке заказчика — например, Yandex Cloud, Selectel или AWS. Быстрый старт, масштабирование по нагрузке.
Гибридное
Часть модулей on-premise (учёт, БД), часть в облаке (портал, аналитика). Определяется под требования безопасности.
Хотите разобрать архитектуру под ваш процесс?
На аудите покажу, как ляжет стек на ваши процессы и интеграции
Записаться на аудитADR: Общее техническое ядро + индивидуальный предметный контур
ADR — формат записи технических решений с контекстом и компромиссами
TL;DR
Используем единый архитектурный фундамент (API, БД, интеграции, аутентификация) для всех систем, а предметную логику (MES, WMS, ERP) реализуем как независимые модули поверх ядра.
Проблема
Каждое предприятие требует своей логики учёта: производство — маршрутные карты, склад — адресное хранение, ERP — финансы. Писать каждую систему с нуля — долго и дорого. Использовать один монолит — значит связать домены так, что изменение в одном ломает другое.
Контекст
С 2007 года внедрено 80+ систем. Большинство — MES, WMS, ERP для производственных и складских предприятий. Стек: Python, FastAPI, PostgreSQL, Docker. Заказчики требуют on-premise и передачу исходного кода.
Решение
Разделить на два слоя: (1) общее техническое ядро — API-фреймворк, ORM, аутентификация, логирование, интеграционный шлюз; (2) предметные контуры — модули MES, WMS, ERP со своей логикой, таблицами и API-эндпоинтами. Ядро переиспользуется между проектами, контуры пишутся под конкретный процесс.
Компромиссы
- Плюс: новый проект стартует с готовым ядром — MVP за 6–12 недель, а не с нуля.
- Плюс: изменение в MES не затрагивает WMS — модули изолированы.
- Плюс: можно начать с одного модуля и добавить другие позже — без миграции.
- Минус: ядро нужно поддерживать и обновлять across проектов — есть риск расхождения версий.
- Минус: не каждый проект укладывается в ядро — иногда требуется доработка самого ядра.
- Минус: больше абстракций, чем при написании «в лоб» — выше порог входа для нового разработчика.
Результат
80+ систем в эксплуатации на одном архитектурном фундаменте. Заказчики получают систему быстрее и дешевле, чем при разработке с нуля, и могут масштабировать, добавляя модули.
Ограничения
- Архитектура — пример. Конкретная схема слоёв и модулей зависит от процессов предприятия.
- Ядро не является open-source продуктом — это внутренний фундамент студии.
- Не подходит для проектов, где требуется интеграция с существующей корпоративной платформой (SAP, 1С:ERP) как ядром.
Источники
- Кейс: MES для завода ЮСМ — 50+ пользователей, 3+ года эксплуатации
- Кейс: WMS для склада РефГо — рост 50 → 1500+ заказов
- Кейс: WMS для Людиновокабель — 10 000+ SKU, 22 000 м²
- Страница /evidence — метрики с методикой измерения