Описание технологического стека проекта RMRP.ru

Описание технологического стека проекта 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

Рейтинг:

5.0
(32 оценок)
Загрузка комментариев...