В основе Руксео лежит свободное ядро, которое развивается с 2000 года: публичный бенчмарк на 11 миллиардах документов, кластеризация по всем слоям, модель прав на уровне объекта. Наша работа — локализация, российский стек и 25+ прикладных модулей поверх.
Ядро распространяется под лицензией Apache 2.0. Мы его собираем, патчим и развиваем сами — сборка и обновления идут из России.
Модель документов и схем, жизненные циклы, права на уровне объекта, движок процессов, полнотекстовый и атрибутивный поиск, версионирование, аудит, кластеризация — это годы работы, и именно здесь молодые системы упираются в потолок. Мы взяли зрелый фундамент и всё своё время вложили в прикладную часть.
Хранение, поиск, очереди — на PostgreSQL, OpenSearch и Kafka. Платформа делает то, для чего предназначена, остальное берёт готовым.
Ядро под свободной лицензией: его нельзя «закрыть» или сделать платным задним числом. Худший сценарий — смена лицензии на будущие версии, и он в отрасли уже отрабатывался.
Ядро на Java — распространённом языке с большим рынком разработчиков. Уникальный узкопрофильный специалист под платформу не требуется.
Типы документов, формы, маршруты, права — значительная часть прикладной логики собирается в конфигураторе силами вашей ИТ-службы.
Схема — это набор атрибутов со своей таблицей в базе; тип документа собирается из схем и наследуется от другого типа. У каждой схемы своя таблица, поэтому на больших объёмах производительность остаётся предсказуемой: запрос идёт по узкой таблице конкретной схемы. Универсального хранилища атрибутов «на всё», как в системах прошлого поколения, здесь нет.
Статусная модель и разрешённые переходы задаются отдельно от процесса. Неразрешённый переход невозможен физически, а не «не предусмотрен интерфейсом».
Дизайнер и движок маршрутов: графовые процессы, задачи, условия, сроки, эскалации, делегирование. Маршрут и жизненный цикл — разные сущности, которые управляют друг другом.
Внутренние и внешние справочники — отдельная сущность конструктора со своим типом, правами и версионированием.
Разрешения назначаются на документ и наследуются по дереву, с возможностью разорвать наследование. Поверх этого у нас работают роли по оргструктуре и грифы.
Атрибутивный и полнотекстовый поиск с фильтрами и выгрузкой; обработчики событий на любое изменение — точка расширения для прикладной логики.
Инсталляция масштабируется горизонтально: узлы приложения делятся по ролям, база, поиск и шина сообщений разворачиваются кластерами.
| Слой | Что делает | В поставке Руксео |
|---|---|---|
| Балансировщик и обратный прокси | Распределяет запросы, скрывает внутреннюю структуру инсталляции | Стандартные средства заказчика |
| Серверы приложений | Разделяются по ролям: интерактивные обслуживают пользователей, фоновые — очереди и таймерные задания | Кластер узлов Nuxeo |
| База данных | Хранение документов, схем, прав, аудита | PostgreSQL, включая совместимые российские СУБД |
| Индексация и поиск | Полнотекстовый и атрибутивный поиск, агрегации | OpenSearch (кластер) |
| Асинхронная шина | Очереди задач, транзакционность фоновой обработки | Apache Kafka |
| Хранение файлов | Бинарное содержимое документов | Файловая система или S3-совместимое объектное хранилище |
Платформа поддерживает и другие варианты каждого слоя. Мы сознательно сузили набор до сертифицируемого в России стека — это то, что мы тестируем, обновляем и берём на поддержку.
Сразу оговоримся: замер не наш и инсталляция не наша. Это опубликованный бенчмарк платформы, по которому видно поведение архитектуры далеко за пределами обычных корпоративных объёмов.
документов в репозитории на момент замера
поисковых запросов в секунду, среднее время отклика менее 450 мс
запросов навигации в секунду, среднее время отклика менее 250 мс
95-й процентиль отклика на поиске; на навигации — менее 500 мс
Что это значит и чего не значит. Бенчмарк снимает вопрос «выдержит ли архитектура»: запас по объёму у платформы кратный. Но он не отвечает на вопрос «как будет работать ваш контур» — это зависит от прикладной логики, числа пользователей и оборудования. Поэтому мы ведём собственную методику нагрузочного тестирования, которая меряет прикладной слой поверх ядра; её публикация — в планах развития. Источник бенчмарка платформы: benchmarks.nuxeo.com.
Честный ответ на вопрос «что вы сделали сами». Платформа даёт фундамент, мы делаем всё, что превращает его в готовую к работе российскую ECM-систему.
Apache 2.0 — это не поставка от иностранного вендора. Это открытый код без правообладателя-поставщика: его нельзя отозвать, ограничить или сделать платным для уже выпущенных версий. Мы держим собственную линию сборки: собираем, патчим и выпускаем обновления сами, внутри страны. Продукт «Руксео» принадлежит российской компании, свидетельства Роспатента получены, заявка в реестр подана. Аналогия — российский дистрибутив Linux.
На уже выпущенные версии это не действует: то, что опубликовано под свободной лицензией, таким и остаётся. Изменение условий может коснуться только будущих версий, и отрасль такие развилки уже проходила — в подобных случаях появлялись свободные форки, которые продолжали линию. Наша сборка от этого не останавливается.
Потому что тогда мы бы сейчас делали версионирование и права, а не кадровый архив и финансовый конвейер. Фундамент такого класса — это годы работы, и он уже написан, протестирован на миллиардах документов и открыт. Наша ценность как вендора — прикладная глубина и российская специфика.
Бенчмарк платформы показывает запас архитектуры, но ваш контур нужно мерить отдельно: нагрузка зависит от прикладной логики и профиля пользователей. У нас есть собственная методика нагрузочного тестирования прикладного слоя — на пилоте прогоняем её на вашем профиле и оборудовании.
Ядро и модули — на Java, интерфейс — на стандартных веб-технологиях. Это массовые компетенции: нанимать под платформу узкого специалиста не придётся. Плюс значительная часть изменений делается настройкой в Студии, без разработки.
Отдельная техническая сессия: архитектура инсталляции, схема кластера, модель данных и прав, точки расширения, сценарий нагрузочного тестирования под ваш профиль.