GameDev студия делает MMORPG игру, а вот быстро и удобно её собрать под разные платформы и доставить до пользователей решили делегировать нам.
К нам обратилась компания EAM-Networks с проблемой: нужно наладить CI\CD пайплайны для сборки, написать сервисы которые будут управлять сборкой тестовых, альфа, бета и продакшен релизов, а также взаимодействовать с CDN для оперативной доставки обновлений до пользователей.
Итоги:
Система аутентификации и авторизации развернута и настроена, внутренние и внешние пользователи работают в разных доменах. Разработана и внедрена система ролей внутренних пользователей. Релиз нужно уровня выпускается в 4 клика мышкой.
Задача:
Разработать и внедрить систему аутентификации и авторизации для внешних и внутренних сайтов игры.
Настроить пайплайны сборки клиента и сервера игры в Jenkins
Разработать систему управления релизами который в простом и понятном интерфейсе сможет показать уже выпущенные и позволит создать новый релиз нужного уровня.
Период работы:
Прикинули список ролей и количество уровней релизов. Попросили коллег из DevOps настроить пайплайны. Изучили апи Jenkins, Nexus и CDN - как запустить сборку именно нужной версии, как опубликовать в правильный Nexus, как из Nexus правильно опубликовать в нужный регион CDN.
Пока готовились пайплайны занялись установкой Keycloak и настройкой доменов пользователей. Так же начали готовить core модуль который поставляет данные на сайты и управляет статусами релизов.
Развернули api-gateway, интегрировали его с Keycloak, разграничили тем самым доступность для внутренних и внешних пользователей (тестировщики, альфа и бета пользователи). Проверили интеграцию с лаунчером игры, авторизацию и права доступа.
Интегрировались с Jenkins, проверили, что релиз может выпускаться по кнопке в UI и может публиковаться в нужную зону доступности. Проверили систему доставки (CDN), решили для внутренних пользователей отказаться от CDN и раздавать готовый билд напрямую из Nexus.
Сдали проект.
Команда:
Анализом и разработкой занималась команда из 4 человек: DevOps, два Java-разработчика, Front-end разработчик (лаунчер).
Технологии:
Java 17;
PostgreSQL;
Spring, Spring Boot, Spring Cloud Gateway.
“
Было интересно проектировать систему ролей и уровни доступа к релизам.
Семён Бондарев, Java-разработчик Software Cats
Java
PostgreSQL
Release management
hello@swcats.kz
Контакты_
Обсудить проект_
Если у вас есть ИТ-проблема, оставьте ваши контакты, и мы поможем составить план ее решения. Обещаем не слать спам.