Описание технологического стека проекта RMRP.ru
RMRP.ru представляет собой многокомпонентный онлайн проект, который разработан и поддерживается компанией ООО “РП Девелопмент”, включающий лаунчер, веб сайт, игровую серверную часть, внутренние сервисы, системы аналитики, мониторинга и логирования.
Языки программирования
В проекте используются следующие языки программирования:
• TypeScript
• JavaScript
• PHP
• SQL
Клиентские и веб технологии
Лаунчер реализован на Tauri. Он используется для запуска проекта, обновления клиента, отображения новостей и служебного взаимодействия с пользователем.
Веб сайт разработан на Next.js.
Пользовательские интерфейсы в игровых и внутренних веб модулях реализуются на Vue 3 с использованием nodejs
Серверная архитектура
Основная серверная часть проекта построена на Node.js с использованием TypeScript.
Архитектура проекта организована по микросервисному принципу. Отдельные подсистемы и доменные области вынесены в самостоятельные сервисы.
Для межсервисного взаимодействия используется NATS.
Для описания и валидации структур данных применяется Zod.
Работа с данными
В качестве основной реляционной базы данных используется MariaDB.
Для взаимодействия с MariaDB в Node.js сервисах используется Knex.
Для аналитики, агрегаций и обработки больших объёмов событийных данных используется ClickHouse, развёрнутый в кластерном режиме.
Инфраструктура наблюдаемости
Для мониторинга и визуализации технических и прикладных метрик используются:
• Prometheus
• Grafana
Для централизованного сбора и просмотра логов используется Loki.
Оркестрация и инфраструктура
Контейнеризированные сервисы проекта развёртываются и управляются в Kubernetes.
Сервисные приложения и хранение файлов
Помимо основной игровой части, в проекте используются отдельные сервисы на PHP и Node.js.
Для хранения файлов и статических ресурсов используется S3 совместимое объектное хранилище REG.RU.
Краткая сводка по стеку
Лаунчер: Tauri
Веб сайт: Next.js
Интерфейсы: Vue 3
Игровая и серверная логика: Node.js, TypeScript
Архитектура: микросервисная
Межсервисное взаимодействие: NATS
Валидация данных: Zod
Реляционная база данных: MariaDB
Доступ к БД: Knex
Аналитика: ClickHouse в кластерном режиме
Мониторинг: Prometheus, Grafana
Логирование: Loki
Оркестрация: Kubernetes
Сервисные приложения: PHP, Node.js
Файловое хранилище: S3 REG.RU
Описание технологического стека проекта Скай-РП
Компания ООО “РП Девелопмент” параллельно разрабатывает второй проект. Он представляет собой многокомпонентную онлайн платформу, включающую лаунчер, веб сайт, собственную игровую платформу, клиентскую и серверную игровую логику, внутренние микросервисы, аналитическую подсистему, инструменты мониторинга и вспомогательные периферийные сервисы.
Языки программирования
В проекте используются следующие языки программирования:
• C++
• TypeScript
• JavaScript
• C#
• SQL
Клиентские и веб технологии
Лаунчер реализован на Tauri. Он используется для запуска проекта, обновления клиента, отображения новостей и служебного взаимодействия с пользователем.
Веб сайт разработан на Next.js.
Игровая платформа
Ключевой частью проекта является собственная игровая платформа, реализованная на C++.
Платформа включает:
• собственный игровой клиент на C++
• собственный игровой сервер на C++
Клиентская и серверная части платформы используют embedded Node.js, встроенный в нативные приложения. Это позволяет исполнять прикладную игровую логику на Node.js как на стороне клиента, так и на стороне сервера, сохраняя при этом нативную основу платформы на C++.
Серверная архитектура
Архитектура проекта организована по микросервисному принципу.
Основные внутренние микросервисы реализуются на NestJS, который используется для построения backend компонентов, API, внутренних сервисов и межсервисной бизнес логики.
Дополнительно в проекте используются периферийные сервисы на Node.js и C#, предназначенные для решения отдельных прикладных, интеграционных и инфраструктурных задач.
Прикладная логика
Прикладная игровая и сервисная логика реализуется на Node.js с использованием TypeScript. Это относится как к серверной части, так и к клиентской логике, исполняемой внутри собственной игровой платформы.
Работа с данными
В качестве основной реляционной базы данных используется PostgreSQL.
Для аналитики, агрегаций и обработки больших объёмов событийных и статистических данных используется ClickHouse.
Мониторинг и наблюдаемость
Для мониторинга, сбора метрик и визуализации состояния сервисов и инфраструктуры используются:
• Prometheus
• Grafana
Оркестрация и инфраструктура
Контейнеризированные сервисы проекта развёртываются и управляются в Kubernetes.
Краткая сводка по стеку
Лаунчер: Tauri
Веб сайт: Next.js
Игровая платформа: собственный клиент и сервер на C++
Исполнение прикладной логики: embedded Node.js в клиенте и сервере
Основной язык прикладной разработки: TypeScript
Микросервисы: NestJS
Периферийные сервисы: Node.js, C#
Архитектура: микросервисная
Основная база данных: PostgreSQL
Аналитика: ClickHouse
Мониторинг: Prometheus, Grafana
Оркестрация: Kubernetes
