Инфраструктурные сервисы для MMORPG

GameDev студия делает MMORPG игру, а вот быстро и удобно её собрать под разные платформы и доставить до пользователей решили делегировать нам.
К нам обратилась компания EAM-Networks с проблемой: нужно наладить CI\CD пайплайны для сборки, написать сервисы которые будут управлять сборкой тестовых, альфа, бета и продакшен релизов, а также взаимодействовать с CDN для оперативной доставки обновлений до пользователей.

Итоги:

Система аутентификации и авторизации развернута и настроена, внутренние и внешние пользователи работают в разных доменах. Разработана и внедрена система ролей внутренних пользователей. Релиз нужно уровня выпускается в 4 клика мышкой.

Задача:

  1. Разработать и внедрить систему аутентификации и авторизации для внешних и внутренних сайтов игры.
  2. Настроить пайплайны сборки клиента и сервера игры в Jenkins
  3. Разработать систему управления релизами который в простом и понятном интерфейсе сможет показать уже выпущенные и позволит создать новый релиз нужного уровня.

Период работы:

  1. Прикинули список ролей и количество уровней релизов. Попросили коллег из DevOps настроить пайплайны. Изучили апи Jenkins, Nexus и CDN - как запустить сборку именно нужной версии, как опубликовать в правильный Nexus, как из Nexus правильно опубликовать в нужный регион CDN.
  2. Пока готовились пайплайны занялись установкой Keycloak и настройкой доменов пользователей. Так же начали готовить core модуль который поставляет данные на сайты и управляет статусами релизов.
  3. Развернули api-gateway, интегрировали его с Keycloak, разграничили тем самым доступность для внутренних и внешних пользователей (тестировщики, альфа и бета пользователи). Проверили интеграцию с лаунчером игры, авторизацию и права доступа.
  4. Интегрировались с Jenkins, проверили, что релиз может выпускаться по кнопке в UI и может публиковаться в нужную зону доступности. Проверили систему доставки (CDN), решили для внутренних пользователей отказаться от CDN и раздавать готовый билд напрямую из Nexus.
  5. Сдали проект.

Команда:

Анализом и разработкой занималась команда из 4 человек: DevOps, два Java-разработчика, Front-end разработчик (лаунчер).

Технологии:

  • Java 17;
  • PostgreSQL;
  • Spring, Spring Boot, Spring Cloud Gateway.
Было интересно проектировать систему ролей и уровни доступа к релизам.
Семён Бондарев, Java-разработчик Software Cats
Java
PostgreSQL
Release management
hello@swcats.kz


Контакты_
Обсудить проект_
Если у вас есть ИТ-проблема, оставьте ваши контакты, и мы поможем составить план ее решения. Обещаем не слать спам.
Нажимая, я говорю «Да»
политике конфиденциальности