Технологическая платформа

Половина зрелости Руксео — под капотом

В основе Руксео лежит свободное ядро, которое развивается с 2000 года: публичный бенчмарк на 11 миллиардах документов, кластеризация по всем слоям, модель прав на уровне объекта. Наша работа — локализация, российский стек и 25+ прикладных модулей поверх.

Ядро распространяется под лицензией Apache 2.0. Мы его собираем, патчим и развиваем сами — сборка и обновления идут из России.

Почему это решает

Фундамент ECM пишется не за год

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

1

Опора на массовые компоненты

Хранение, поиск, очереди — на PostgreSQL, OpenSearch и Kafka. Платформа делает то, для чего предназначена, остальное берёт готовым.

2

Открытый код как страховка

Ядро под свободной лицензией: его нельзя «закрыть» или сделать платным задним числом. Худший сценарий — смена лицензии на будущие версии, и он в отрасли уже отрабатывался.

3

Обычные кадры

Ядро на Java — распространённом языке с большим рынком разработчиков. Уникальный узкопрофильный специалист под платформу не требуется.

4

Настройка вместо кода

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

Что даёт ядро

Всё ключевое здесь — конструктор

Типы документов и схемы

Схема — это набор атрибутов со своей таблицей в базе; тип документа собирается из схем и наследуется от другого типа. У каждой схемы своя таблица, поэтому на больших объёмах производительность остаётся предсказуемой: запрос идёт по узкой таблице конкретной схемы. Универсального хранилища атрибутов «на всё», как в системах прошлого поколения, здесь нет.

Жизненный цикл как сущность

Статусная модель и разрешённые переходы задаются отдельно от процесса. Неразрешённый переход невозможен физически, а не «не предусмотрен интерфейсом».

Движок процессов

Дизайнер и движок маршрутов: графовые процессы, задачи, условия, сроки, эскалации, делегирование. Маршрут и жизненный цикл — разные сущности, которые управляют друг другом.

Справочники

Внутренние и внешние справочники — отдельная сущность конструктора со своим типом, правами и версионированием.

Права на уровне объекта

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

Поиск и обработчики

Атрибутивный и полнотекстовый поиск с фильтрами и выгрузкой; обработчики событий на любое изменение — точка расширения для прикладной логики.

Архитектура

Кластеризуется каждый слой инсталляции

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

СлойЧто делаетВ поставке Руксео
Балансировщик и обратный проксиРаспределяет запросы, скрывает внутреннюю структуру инсталляцииСтандартные средства заказчика
Серверы приложенийРазделяются по ролям: интерактивные обслуживают пользователей, фоновые — очереди и таймерные заданияКластер узлов Nuxeo
База данныхХранение документов, схем, прав, аудита PostgreSQL, включая совместимые российские СУБД
Индексация и поискПолнотекстовый и атрибутивный поиск, агрегации OpenSearch (кластер)
Асинхронная шинаОчереди задач, транзакционность фоновой обработки Apache Kafka
Хранение файловБинарное содержимое документов Файловая система или S3-совместимое объектное хранилище

Платформа поддерживает и другие варианты каждого слоя. Мы сознательно сузили набор до сертифицируемого в России стека — это то, что мы тестируем, обновляем и берём на поддержку.

Масштаб

Публичный бенчмарк ядра: 11 миллиардов документов

Сразу оговоримся: замер не наш и инсталляция не наша. Это опубликованный бенчмарк платформы, по которому видно поведение архитектуры далеко за пределами обычных корпоративных объёмов.

11 млрд

документов в репозитории на момент замера

> 400 / с

поисковых запросов в секунду, среднее время отклика менее 450 мс

> 830 / с

запросов навигации в секунду, среднее время отклика менее 250 мс

P95 < 600 мс

95-й процентиль отклика на поиске; на навигации — менее 500 мс

Что это значит и чего не значит. Бенчмарк снимает вопрос «выдержит ли архитектура»: запас по объёму у платформы кратный. Но он не отвечает на вопрос «как будет работать ваш контур» — это зависит от прикладной логики, числа пользователей и оборудования. Поэтому мы ведём собственную методику нагрузочного тестирования, которая меряет прикладной слой поверх ядра; её публикация — в планах развития. Источник бенчмарка платформы: benchmarks.nuxeo.com.

Граница ответственности

Где кончается платформа и начинается Руксео

Честный ответ на вопрос «что вы сделали сами». Платформа даёт фундамент, мы делаем всё, что превращает его в готовую к работе российскую ECM-систему.

От платформы

  • Модель документов, схемы, наследование типов, версионирование.
  • Жизненные циклы, движок маршрутов, задачи и делегирование.
  • Права на уровне объекта, аудит действий.
  • Поиск, конвертация файлов, шаблоны печатных форм.
  • Кластеризация, очереди, механизмы пакетного импорта.
  • REST API и точки расширения.

От нас

  • 25+ прикладных модулей: делопроизводство, договоры, кадры и КЭДО, финансовый и долговременный архивы, ЭДО, подпись, сканирование, сервис-деск.
  • Российская специфика: оргштатная структура и мета-роли, журналы регистрации и сквозная нумерация, номенклатура дел и сроки хранения, ГОСТ-подпись, МЧД, требования 152-ФЗ и 275-ФЗ.
  • Российский стек и сертификация: совместимость с отечественными ОС и СУБД, работа в закрытом контуре.
  • Студия вместо недоступного вендорского конфигуратора.
  • ИИ-контур на своих серверах и интеграции с 1С и SAP.
  • Локализация и поддержка: интерфейс, документация, сборки, патчи и линия поддержки внутри страны.
Частые вопросы

Что спрашивают про платформу

Ядро иностранное. Это точно импортозамещение?

Apache 2.0 — это не поставка от иностранного вендора. Это открытый код без правообладателя-поставщика: его нельзя отозвать, ограничить или сделать платным для уже выпущенных версий. Мы держим собственную линию сборки: собираем, патчим и выпускаем обновления сами, внутри страны. Продукт «Руксео» принадлежит российской компании, свидетельства Роспатента получены, заявка в реестр подана. Аналогия — российский дистрибутив Linux.

А если правообладатель платформы сменит лицензию?

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

Почему не написать свою платформу с нуля?

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

Что с производительностью на нашем объёме?

Бенчмарк платформы показывает запас архитектуры, но ваш контур нужно мерить отдельно: нагрузка зависит от прикладной логики и профиля пользователей. У нас есть собственная методика нагрузочного тестирования прикладного слоя — на пилоте прогоняем её на вашем профиле и оборудовании.

Мы сможем нанять людей, которые это поддержат?

Ядро и модули — на Java, интерфейс — на стандартных веб-технологиях. Это массовые компетенции: нанимать под платформу узкого специалиста не придётся. Плюс значительная часть изменений делается настройкой в Студии, без разработки.

Готовы к разговору с вашими архитекторами

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