Приложения и версии
Узнайте о версионности и приложениях — концепциях и лучших практиках для более глубокого понимания.
📦 Приложения
Приложения инкапсулируют серверные проекты. Такое разделение контекста особенно полезно, если вы:
работаете над несколькими играми или неигровыми проектами (консолидированная оплата),
работаете над внешними проектами в качестве содевелопера (позже передать право собственности),
зависите от нескольких слабо связанных типов серверов с разными схемами масштабирования или требованиями.
Вы можете управлять своими приложениями на Edgegap с помощью наших плагинов, панели управления, или нашего API.
Изучите наш Справочник API приложений, или прочитайте больше о нашем API управления.
🏷️ Версии приложения
По мере разработки вашего приложения и постоянного выпуска новых сборок вам потребуется сохранять каждую сборку как отдельную версию, чтобы:
поддерживать совместимость между вашими клиентами и сервером,
сравнивать различные аспекты вашего пошаговых релизов (производительность, настроение пользователей),
тестировать несколько версий приложения одновременно (разработка, обеспечение качества, staging, бета).
Вы можете управлять версиями приложения на Edgegap, используя наш панели управления, или нашего API.
Изучите наш Справочник API версий приложения, или прочитать больше о API.
Каждая версия уникально идентифицируется в пределах родительского приложения по названию версии приложения. Вы вольны выбирать собственную схему именования. Вот несколько популярных примеров для вдохновения:
2024.01.30-16.23.00-UTC— метки времени прозрачны для хранения множества прошлых версий,1.1.0- семантическое версионирование — отличный выбор для передачи объёма изменений,dev,staging,qa,prod— сохранять только последнюю версию для каждого окружения очень просто,blue,green— версии могут использоваться как алиасы для стратегии выпусков с поэтапным обновлением.
Вы можете изменить подход в любое время, при условии поддержания совместимости клиента и сервера.
Комбинируйте стратегии версионности
Часто лучшее решение — смесь стратегий версионирования, например:
использование меток времени или семантического версионирования для сборок dev для более детального отслеживания;
сохранение
staging,qaиprodверсий с параметрами, специфичными для окружения;чередование
blueиgreenверсий как алиасов для обновлений без простоя матчинга.
🧱 Обязательные параметры
Эти фундаментальные параметры всегда должны быть определены.
Требования к ресурсам
В дополнение к названию версии, для создания новой версии требуется указать несколько параметров:
vCPU — сколько виртуальных CPU-единиц нужно вашему приложению для работы (1024 единицы = 1 vCPU),
минимально допустимое количество vCPU — 0,25 vCPU (256 единиц),
этот параметр нельзя изменить для существующей версии приложения, необходимо создать новую версию.
Память — сколько мегабайт ОЗУ требуется вашему приложению для работы (1024 МБ = 1 ГБ),
этот параметр нельзя изменить для существующей версии приложения, необходимо создать новую версию.
GPU — сколько графических процессоров требуется вашему приложению для работы,
эта функция ещё недоступна, свяжитесь с нами, если вас интересует.
Версии автоматически включают ОЗУ в соотношении 2:1 ОЗУ–vCPU, позволяя до 512 МБ ОЗУ на 0,25 vCPU.
Данные образа
Эти параметры помогут нашей системе определить, какую сборку вашего сервера следует запускать позже:
Реестр -
registry.edgegap.comесли вы используете наш Реестр контейнеров,для использования стороннего реестра введите учётные данные docker вашего стороннего реестра,
реестр служит как общий сервис хранения для ваших и чужих репозиториев.
Репозиторий образов — относится к выделенному репозиторию вашего приложения,
найдите все ваши репозитории на нашей странице реестра контейнеров панели управления,
каждый репозиторий может содержать несколько тегов вашего образа сервера.
Тег — относится к конкретному артефакту сборки (версии) вашего образа сервера,
наши плагины по умолчанию копируют значения тегов из названий версий приложения,
вы можете просмотреть локально сохранённые теги в Docker Desktop Images или с помощью docker CLI.
❌ НЕ ИСПОЛЬЗУЙТЕ — перезаписывать существующие теги или использовать latest тег чтобы избежать развертывания устаревших (кэшированных) сборок.
✅ ДЕЛАЙТЕ — всегда увеличивайте тег вашей версии чтобы развернуть нужную сборку и предотвратить проблемы с релизом.
Приватный реестр — если доступ к вашему репозиторию защищён (приватный репозиторий), нам также понадобятся:
Имя пользователя Токен — программное имя пользователя для доступа к реестру,
Пароль Токен — программный пароль для доступа к реестру,
для Edgegap Реестр контейнеров, вы можете скопировать эти значения с нашей панели управления,
они не требуются для публичных репозиториев.
⚙️ Необязательные параметры
Эти параметры можно настроить для дальнейшей кастомизации развертываний.
Внедряемые переменные
Пользовательские переменные окружения будут внедрены для всех развертываний этой версии:
распространённые примеры включают: аргументы движка, сторонние секреты и конечные точки,
см. Инжектируемые переменные для понимания различных способов внедрения переменных окружения в зависимости от контекста развертывания, в дополнение к переменным версии приложения,
каждая переменная окружения может содержать до 4 КБ (килобайт) строковых данных.
Убедитесь, что вы установили ваши чувствительные переменные (секреты, токены) как скрытые для дополнительной безопасности!
Активное кэширование
🌟 Перейдите на тариф «Плати по мере использования» чтобы разблокировать время развертывания 0.5 секунды по всему миру!
Ускорьте развертывания и запускайте серверы за секунды, без необходимости в ожидании на готовых серверах. Образ сервера, связанный с этой версией приложения, будет автоматически предварительно загружен во всех наших мировых локациях.
Кэширование вступит в полную силу, как только уровень кэширования вашей версии приложения достигнет 🟢 Хорошо.
Несколько версий приложения могут повторно использовать один и тот же тег образа. Включение кэша для одной версии автоматически включит его для всех версий, связанных с тем же тегом образа,что облегчает параметризованные развертывания.
Образы удаляются из кэша, если они не развертывались в течение 72 подряд часов.
Сопоставление портов
Каждому серверу требуется как минимум один порт для принятия входящих соединений от клиентов:
Порт значение относится к внутреннему порту обычно из вашей интеграции сетевого кода,
Протокол будет зависеть от транспорта вашей интеграции сетевого кода,
Имя является удобочитаемым идентификатором для ваших нужд, может совпадать с Портом,
Верификации можно включить, чтобы убедиться, что ваш контейнер инициализирован прежде, чем его пометят ГОТОВ.
Большинству игр потребуется только добавить один UDP-порт для порта 7777.
В то время как внутренние порты для серверного процесса определяются как часть версии приложения, внешние порты назначаются случайным образом после создания развертывания, чтобы потенциальный злоумышленник (хакер) замедлился и был обнаружен до того, как сможет нанести ущерб.

Средства безопасности
Эти параметры помогают в различных пограничных случаях и общем устранении неполадок сервера:
Ограничения по времени — эти функции помогут вам управлять жизненным циклом ресурсов развертываний:
Максимальная длительность игры может быть установлена для корректного завершения работы ваших серверов после заданного периода, или установлена
-1с создать/редактировать API версии приложения для Сохранение состояния с Приватные флоты.Максимальное время на развертывание может помочь очистить развертывания, которые занимают слишком много времени на запуск.
Хранение логов контейнера — чтобы экспортировать логи сервера после остановки развертывания, укажите предварительно настроенный бакет совместимый с S3 для экспорта логов контейнера,
см. Хранение конечных точек для деталей по конфигурации и использованию.
Логи версий без внешнего хранилища будут удалены при завершении развертывания.
⏩ Согласованность обновлений
Чтобы гарантировать, что ни один из параметров не изменится при создании новой версии приложения через наш панели управления, мы рекомендуем использовать Дублирование функцию в правом верхнем углу страницы панели управления предыдущей версии приложения. При дублировании вы можете отредактировать любые параметры перед сохранением.
Дублирование или редактирование версий приложения не требует пересборки образа сервера.
Последнее обновление
Это было полезно?

