Заказчик — небольшая студия по разработке игр. Для их проекта нужно было настроить автоматическую сборку и деплой, сбор логов сервисов.
Задача:
Настроить сборку клиента и сервера для проекта на 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
Обсудить проект_
Если у вас есть ИТ-проблема, оставьте ваши контакты, и мы поможем составить план ее решения. Обещаем не слать спам.