Настройка CI\CD для игрового проекта на UE5
Заказчик — небольшая студия по разработке игр. Для их проекта нужно было настроить автоматическую сборку и деплой, сбор логов сервисов.

Задача:

  • Настроить сборку клиента и сервера для проекта на UE5.
  • Настроить деплой в AWS GameLift.
  • Настроить сбор лога с запущенных сервисов для возможности оперативной отладки и наблюдения.

Итоги:

  • Сборка и деплой реализованы в Teamcity. Использовались UE5, Plastic SCM и воркеры на базе Linux, Windows.
  • Настроена выгрузка ассетов в S3 для дальнейшей доставки пользователям и настроен CDN.
  • Настроен деплой в GameLift с ожиданием создания инстанса и переключением LB.
  • В сборку внедрен filebeat, реализована передача логов в ELK в режиме реального времени. Аналогичного функционала у сервиса GameLift нет.

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

06.24 — 07.24

Команда:

  • DevOps инженер
  • Тимлид разработки
  • Менеджер проекта

Инструменты:

  • Teamcity
  • Plastic SCM
  • UE5
  • AWS Cli
  • AWS s3
  • AWS GameLift
  • ELK

Решение:

Основной потребностью клиента было сокращение трудозатрат и ручного труда разработчиков, получение повторяемых результатов сборки проекта, доставка и версионирование артефактов и возможность переключать развернутое обновление после деплоя.

В качестве системы CI\CD был выбран Teamcity, привычный для разработчиков.
Для сборки проекта было использовано два воркера — на базе ОС Windows для клиентской части и на базе Linux для сборки серверной части проекта, запуска и публикации в среде AWS.

В процессе решения задачи были настроены интеграции с SCM Plastic, публикация ассетов игры в s3, для дальнейшей раздачи через CDN и публикация с последующим запуском в среде AWS GameLift.

После публикации была обнаружена интересная особенность сервиса — логи приложения не доступны без кастомизации серверной части в реальном времени. То есть аналитика отказа или просмотр активности пользователей (и другие события) возможны только после редеплоя новой версии.

В качестве кастомизации было выбрано решение на базе ELK, так как его возможности значительно шире, чем предоставляет AWS в CloudWatch, и при использовании ресурсов других дата центров стоимость владения значительно снижается.

Установку агента и его конфигурацию добавили в сборку серверной части и получили удобное, производительное и недорогое решение для аналитики работы приложения.
Проекты с игровыми студиями это не только вызов (сборка и доставка очень ресурсоемкие и оптимизация таких задач) — сложный и интересный процесс, но и возможность приобщиться к новым интересным виртуальным мирам.
Антон Деменев, Руководитель направления DevOps и Поддержки Software Cats
Обсудить проект_
Если у вас есть ИТ-проблема, оставьте ваши контакты, и мы поможем составить план ее решения. Обещаем не слать спам.
Нажимая, я говорю «Да»
политике конфиденциальности
hello@swcats.kz


Контакты_