MATTIK / Как устроен MATTIK

Как устроен MATTIK

  1. Сотрудник
  2. Браузер
  3. MATTIK
  4. База / файлы / сервисы
На этой странице

01 / Как устроен MATTIK

Если совсем просто: у вашего предприятия будет своя отдельная система

MATTIK работает через браузер.

Сотрудник открывает адрес системы на компьютере или телефоне, входит под своей учётной записью и работает с заказами, складом, производством и другими доступными ему разделами.

Но есть важное отличие от обычного облачного сервиса.

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

Для предприятия разворачивается отдельная установка на отдельном сервере.

У неё своя база данных, свои файлы, свои пользователи и свои настройки.

02 / Как устроен MATTIK

Что значит «отдельный сервер»

Это не значит, что вам обязательно нужно покупать железный сервер, ставить его где-нибудь под столом и назначать человека, который будет сдувать с него пыль.

Сервер может находиться в дата-центре у хостинг-провайдера.

Главное здесь другое:

ваше предприятие получает отдельную серверную среду MATTIK, а не аккаунт внутри общей базы всех клиентов.

Где именно её разместить и как организовать эксплуатацию — решаем перед запуском.

Сам сервер и его размещение оплачиваются отдельно от лицензии MATTIK.

03 / Как устроен MATTIK

Что там вообще находится

Если не уходить в технические подробности, MATTIK состоит из нескольких частей.

Интерфейс

Это сама система, которую сотрудники видят в браузере: заказы, изделия, склад, производство, документы, справочники и остальные рабочие разделы.

Сервер приложения

Здесь находится логика системы.

Например: что должно произойти при проведении складского документа, какие действия разрешены пользователю, как один процесс связан с другим.

База данных

Здесь хранятся основные данные предприятия:

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

MATTIK использует для этого PostgreSQL — распространённую промышленную базу данных.

Файловое хранилище

Картинки, документы и вложения хранятся отдельно от основной базы.

Вспомогательные сервисы

Отдельные компоненты занимаются формированием документов, фоновыми задачами и другими техническими вещами.

Пользователь обо всём этом думать не должен.

Для него это одна система.

04 / Как устроен MATTIK

Почему я вообще рассказываю о технологиях

Покупателю ERP совершенно не обязательно знать, чем Vue отличается от NestJS.

Но когда система становится частью ежедневной работы предприятия, нормальный вопрос:

«А на чём это вообще всё построено?»

MATTIK не сделан внутри закрытого конструктора и не зависит от какой-то малоизвестной платформы, которую поддерживает три человека.

В основе обычный современный стек:

PostgreSQL — база данных.

NestJS — серверная часть и бизнес-логика.

Vue + TypeScript — интерфейс.

Docker — развёртывание серверных компонентов.

S3-совместимое хранилище — файлы и вложения.

Traefik + HTTPS — доступ к системе через защищённое соединение.

jsreport — часть печатных форм и отчётов.

GitHub Actions — сборка и выпуск новых версий.

Сами названия здесь не являются каким-то преимуществом.

Их плюс гораздо прозаичнее: это распространённые технологии, с которыми умеют работать обычные разработчики и системные администраторы.

05 / Как устроен MATTIK

Как обновляется система

Production-система не редактируется вручную на сервере.

Изменения делаются в исходном коде, проходят сборку и проверки, после чего из них формируется новая версия приложения.

Компоненты MATTIK разворачиваются через Docker.

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

Проще говоря, изменение базы — это контролируемая операция, а не ситуация, когда приложение при запуске само решило что-нибудь поменять в таблицах.

Отдельные части системы можно выпускать независимо. Например, изменение публичного сайта MATTIK не требует одновременно обновлять ERP.

Для пользователя всё это означает одно:

обновление системы — это нормальная воспроизводимая процедура, а не ручное копирование файлов на сервер.

06 / Как устроен MATTIK

Где лежат данные предприятия

Основные рабочие данные находятся в PostgreSQL.

Там хранятся, например:

  • товары и материалы;
  • заказы;
  • складские документы;
  • остатки;
  • производственные данные;
  • пользователи и права.

Файлы и вложения находятся в отдельном файловом хранилище.

Такое разделение позволяет отдельно резервировать базу и файлы.

Конкретно где будут физически находиться сервер, данные и резервные копии нового предприятия, определяем при запуске.

07 / Как устроен MATTIK

А если что-нибудь сломается?

Именно для этого нужны резервные копии.

Причём просто иногда копировать какой-нибудь файл недостаточно.

Нужно понимать:

  • что именно копируется;
  • куда оно копируется;
  • как вернуть данные обратно;
  • и можно ли из этой копии вообще восстановить рабочую систему.

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

На действующей production-установке резервное копирование автоматизировано.

Для нового предприятия отдельно определяем схему эксплуатации: куда сохранять копии, как часто их делать и кто за этим следит.

Это уже зависит от выбранного варианта размещения сервера.

08 / Как устроен MATTIK

У каждого сотрудника свой доступ

В MATTIK есть пользователи, роли и права.

Не обязательно давать каждому человеку доступ вообще ко всей ERP.

Например, сотруднику производства можно открыть нужный ему рабочий участок, не предоставляя административные возможности.

Ограничения проверяются и на сервере — это не просто скрытые кнопки в интерфейсе.

Доступ к системе снаружи работает через защищённое HTTPS-соединение.

Какие именно роли нужны вашему предприятию, определяем при настройке.

09 / Как устроен MATTIK

А что будет, если Иван завтра исчезнет?

Нормальный вопрос.

Сегодня MATTIK действительно разрабатываю и развиваю я.

За продуктом пока нет большой команды, и делать вид, что это не так, довольно бессмысленно.

Но я специально стараюсь не строить систему так, чтобы её техническая эксплуатация держалась на какой-нибудь моей уникальной программе, секретном формате базы или наборе команд, которые знаю только я.

В основе MATTIK:

  • PostgreSQL;
  • Docker;
  • S3;
  • обычное веб-приложение;
  • миграции базы данных;
  • документированные процедуры развёртывания, резервного копирования и восстановления.

Это не означает, что вместе с лицензией передаются исходники MATTIK или что продукт вообще перестаёт зависеть от своего разработчика.

Но ваши данные не лежат внутри непонятного файла, который можно открыть только моей программой на моём компьютере.

А эксплуатация сервера не должна зависеть от того, помню ли я наизусть десяток магических команд.

Для бизнес-системы мне кажется это просто нормальным подходом.

10 / Как устроен MATTIK

Что нужно решить перед запуском

Когда речь дойдёт до реального внедрения, нужно ответить на несколько вполне конкретных вопросов:

  1. Какой процесс запускаем первым?
  2. Где будет работать сервер MATTIK?
  3. Какие данные нужно перенести?
  4. Какие сотрудники будут работать в системе?
  5. Какие роли и права им нужны?
  6. Есть ли необходимые функции уже сейчас?
  7. Нужны ли интеграции или отдельная разработка?
  8. Как будут организованы резервные копии и эксплуатация сервера?

После этого уже можно нормально оценить объём работ и стоимость запуска.

А не называть цену внедрения по фотографии предприятия.

11 / Как устроен MATTIK

Что вы в итоге получаете

После запуска у предприятия есть своя отдельная установка MATTIK:

со своей базой данных;

своими пользователями;

своими настройками;

и настроенным первым рабочим процессом.

Дальше систему можно развивать тогда, когда в этом появляется реальная необходимость.

Нужен следующий участок — подключаем следующий.

Нужна интеграция — оцениваем интеграцию.

Появилась новая задача — отдельно решаем, как её лучше закрыть.

Не обязательно покупать заранее всё, что теоретически когда-нибудь может понадобиться.

Начнём с вашего примера

Посмотреть MATTIK в работе

Расскажите, что производите и какой участок хотите наладить. На демонстрации разберём ваш реальный пример и посмотрим, что MATTIK уже умеет.

Посмотреть демо →

Знакомство и показ бесплатны. Первый этап, необходимые работы и стоимость запуска согласуем отдельно.

Кто отвечает за MATTIK →

Загружаем форму…

Достаточно телефона или электронной почты.

Заявка не обязывает покупать систему. Показ и обсуждение задачи бесплатны.