Unreal Engine

Apprenez en pratiquant et déployez votre premier serveur dédié sur Edgegap. À la fin de ce guide, vous aurez déployé un serveur dédié avec Edgegap sans frais.

Construire avec Docker Desktop est la méthode la plus rapide, la plus simple et la plus fiable pour commencer.

✔️ Préparation

Avant de commencer, assurez-vous de créer un compte gratuit chez Edgegap (aucune carte de crédit requise).

Configurez quelques éléments essentiels sur votre machine de développement :

Installer Docker Desktop (ou Docker CLI)
Installer l'extension Edgegap Quickstart Docker
Accédez aux ressources Unreal Engine sur GitHub
Générer un jeton d'accès personnel GitHub (classique)
  • activer uniquement la permission [read:packages] ,

  • générer le jeton - conservez cette valeur en sécurité, vous ne la verrez plus.

Confiant dans vos builds de serveur ? Passer à Unreal Engine et Fonctionnalités avancées.

⚙️ 1. Configurer le projet

Que vous utilisiez un ordinateur Windows, Mac ou Linux, vous devrez construire votre serveur pour l'exécution sous Linux, car la plupart des fournisseurs cloud aujourd'hui (y compris Edgegap) fonctionnent sous Linux. Ne vous inquiétez pas, aucune connaissance en Linux n'est requise.

Cette méthode ne nécessite pas de télécharger le code source d'Unreal ni de construire Unreal Engine à partir des sources !

☑️ Commencez par vérifier votre version d'Unreal Engine - pré-rempli avec la valeur provenant de vos fichiers de projet.

☑️ Saisissez le nom d'utilisateur GitHub et PAT depuis ✔️ Préparation, pour télécharger les dépendances depuis GitHub.

Générer un jeton d'accès personnel GitHub (classique)
  • activer uniquement la permission [read:packages] ,

  • générer le jeton - conservez cette valeur en sécurité, vous ne la verrez plus.

☑️ Désactiver la vérification de compatibilité de version d'Unreal Engine pour les serveurs dédiés et définir IpNetDriver comme le pilote par défaut ou le pilote de secours pour le réseau de réplication :

☑️ Redémarrez Unreal Engine pour recharger les dernières modifications.

☑️ Créer un script de cible pour serveur dédié en copiant votre <PROJECT>Editor.Target.cs fichier dans le dossier racine du projet et en renommant la copie en <PROJECT>Server.Target.cs.

☑️ Remplacez toute référence à mot Editor avec Serveur dans votre script de cible serveur.

☑️ Activer les journaux serveur en sortie standard en ajoutant des substitutions dans votre script de cible serveur :

✅ Vous pouvez maintenant passer à l'étape suivante.

Optionnel : Intégration Steam

Pour intégrer Steam, utiliser IpNetDriver comme votre pilote réseau par défaut et vérifier que le steamclient.so 64 bits pour Linux est copié dans l'image sur le chemin /home/ubuntu/.steam/sdk64/ .

Télécharger steamclient.so

Dockerfile
...
RUN mkdir -p /home/ubuntu/.steam/sdk64
COPY ./steamclient.so /home/ubuntu/.steam/sdk64/steamclient.so
RUN chmod 755 /home/ubuntu/.steam/sdk64/steamclient.so
...

Assurez-vous de désactiver le réseau Steam, qui envoie des paquets via le relais Steam et peut provoquer des problèmes de connexion ou des pics de latence. Cela ne vous empêche pas d'utiliser d'autres fonctionnalités Steamworks ou de publier votre jeu sur la boutique Steam.

Config/DefaultEngine.ini
[OnlineSubsystemSteam]
bUseSteamNetworking=false

🔧 2. Construire le serveur de jeu

Nous allons maintenant construire et préparer (cook) votre projet, et le packager dans une image docker facilement réutilisable.

Travailler en équipe de développeurs implique de partager votre code. Quand les choses tournent mal, la dernière chose que vous voulez entendre est « ça marche sur ma machine ». Les serveurs de jeu doivent fonctionner de manière fiable sur n'importe quelle machine, puisque les serveurs d'un jeu à succès tourneront sur des milliers de machines serveurs à travers le monde.

Pour aider à rendre votre serveur fiable, nous utilisons Docker - un logiciel de virtualisation garantissant que toutes les dépendances de votre code serveur jusqu'au niveau du système d'exploitation seront toujours exactement les mêmes, peu importe comment ou où le serveur est lancé.

Nous recommandons de regarder "Ne jamais installer localement" (vidéo). Vous n'avez PAS besoin d'utiliser Dockerhub avec Docker. Docker ≠ Dockerhub. Considérez Docker comme un moteur de programmation et Dockerhub comme son App Store.

☑️ Vous pouvez configurer les options suivantes (ou garder les valeurs par défaut) :

  • Nom de l'image est un identifiant unique de votre choix, étiquetant votre build de serveur avant l'expédition.

    • Généralement, cela inclura le nom de votre jeu - par exemple « my-game-server ».

  • Tag de l'image est un identifiant pointant vers une version spécifique de votre image.

    • Le terme « artefact de build » est parfois utilisé pour désigner une version spécifique de votre image.

    • Les horodatages sont une excellente option pour le marquage, par ex. 2024.01.30-16.23.00-UTC (par défaut).

☑️ Construire le projet une fois que vous êtes satisfait de votre configuration. L'achèvement de cette étape ajoutera une nouvelle image contenant votre exécutable serveur Linux dans votre client Docker local.

✅ Vous pouvez maintenant passer à l'étape suivante.

🧪 3. Tester le serveur localement

Essayons de déployer localement (sur votre machine) et de connecter un client de jeu, pour nous assurer que l'image du serveur fonctionne correctement avant de la téléverser et de la déployer (ce qui peut prendre un certain temps).

☑️ Sélectionnez le tag d'image que vous souhaitez exécuter localement (les images distantes seront téléchargées). Facultativement, plus de arguments docker run peuvent être fournis pour personnaliser votre test local :

  • -p 7777:7777/udp - il s'agit du mappage de ports de votre conteneur local,

  • -e ARBITRIUM_PORT_GAMEPORT_INTERNAL=7777 est une variable d'environnement simulant un véritable déploiement Edgegap, indiquant à votre serveur de jeu le port interne sur lequel écouter les connexions des joueurs.

☑️ Une fois que vous êtes satisfait de votre configuration, cliquez sur Démarrer le serveur local. La finalisation de cette étape entraînera le démarrage d'un nouveau conteneur sur votre machine de développement.

☑️ Il est maintenant temps de connecter votre client de jeu de l'éditeur Unreal Engine (PIE) à votre conteneur de serveur local. Ouvrez la console PIE d'Unreal avec ~ (tilde) et connectez-vous avec open <ip>:<port>:

  • ip = localhost ou 127.0.0.1 (équivalent dans la plupart des cas),

  • port = valeur de port externe randomisée du conteneur dans l'interface Docker.

☑️ Une fois que vous avez vérifié que vous pouvez vous connecter à votre conteneur de serveur local et jouer sans problème, vous pouvez supprimer le conteneur 🗑️ pour libérer des ressources sur votre machine pour d'autres programmes.

✅ Vous pouvez maintenant passer à l'étape suivante.

Dépannage et FAQ

Impossible de connecter les clients au serveur - La requête a expiré. , 请求超时 , ConnectionFailed , ou Échec de la vérification du port

  • Tout d'abord, assurez-vous que le conteneur est en cours d'exécution et qu'il n'y a pas d'erreurs d'exécution dans vos logs.

  • Veuillez vérifier que les valeurs de port dans la commande docker run correspondent.

  • Veuillez vous assurer que votre client de jeu se connecte au port externe indiqué sur la page des détails de votre conteneur, cette valeur sera toujours randomisée pour des raisons de sécurité.

  • Veuillez vous assurer que vous avez renommé votre fichier cible et configuré les builds du jeu comme décrit à l'étape Unreal Engine.


Mon conteneur est en cours d'exécution mais je ne peux pas me connecter pendant plusieurs minutes après.

  • Une fois qu'un conteneur est opérationnel, l'initialisation de votre moteur de jeu commence. Ce processus peut durer de quelques secondes à plusieurs minutes, et le serveur n'accepte pas de connexions de joueurs pendant cette période.

  • Envisagez d'optimiser l'initialisation de votre serveur pour réduire cette durée.

  • Les clients de jeu doivent réessayer la connexion à des intervalles d'une seconde pendant une durée limitée (en fonction de la durée d'initialisation), après quoi ils doivent revenir au matchmaking.

  • Envisagez d'ajouter une scène de chargement afin que le serveur puisse effectuer l'initialisation (et le travel dans le cas d'Unreal Engine) en même temps que les clients, tout en synchronisant l'état des deux.


Avertissement : Impossible de créer une socket pour l'adresse de liaison

  • Veuillez installer le plugin Steam Subsystem d'Epic via la boutique d'actifs Fab.

  • Lors de l'utilisation du Edgegap Integration Kit (EGIK) avec la version source du SteamCore Integration Kit (SIK) téléchargée depuis github, le plugin Steam Subsystem d'Epic n'est pas inclus en raison des politiques de distribution des plugins d'Epic Games.


Je me suis connecté mais mon écran est complètement noir.

  • Vérifiez que vous avez la bonne Carte par défaut du jeu définie sous Édition / Paramètres du projet / Cartes & Modes.

☁️ 4. Publier sur Edgegap

Il est temps de mettre votre serveur en ligne ! Maintenant que votre image peut héberger des joueurs avec succès, nous pouvons la téléverser sur Edgegap et commencer à l’exécuter n’importe où dans le monde. Dans ce guide, nous utiliserons le registre de conteneurs d’Edgegap (stockage pour les images).

☑️ Choisissez un nom d'application pour étiqueter et regrouper des images similaires sur Edgegap.

☑️ Sélectionnez le tag d'image que vous souhaitez publier et Téléverser l'image. La finalisation de cette étape entraînera le téléversement de votre image serveur dans le registre Edgegap et la création d'une nouvelle version de l'application dans votre navigateur web. Assurez-vous de créer votre de votre conteneur local lorsqu'on vous le demande, avec les valeurs par défaut.

✅ Vous pouvez maintenant passer à l'étape suivante.

Dépannage et FAQ

refusé : ajout de 756,6 Mio de ressources de stockage, ce qui, une fois mis à jour avec l'utilisation actuelle de 4,3 Gio, dépassera la limite supérieure configurée de 4,7 Gio , échec de la validation sur la référence "layer-sha256:--------" : statut inattendu de la requête PUT vers https://registry.edgegap.com/

  • Il semble que vous ayez manqué d'espace de stockage d'images sur Registre de conteneurs. Envisagez de supprimer les artefacts de build inutilisés (si vous en avez) ou d'optimiser la taille du build du serveur. Si vous utilisez un Dockerfile personnalisé ou un .dockerignore, il se peut que vous copiiez des fichiers inutiles dans votre image.


Vous avez atteint la limite de votre application de 2 , Impossible de mettre à jour le tag/version docker : vous avez atteint la limite de versions de votre application de 2

  • Vous avez atteint les limites de notre offre gratuite, veuillez envisager de mettre à niveau votre compte. Alternativement, vous pouvez supprimer vos ressources existantes via notre Tableau de bord.


Ma nouvelle version d'application n'est pas répertoriée dans le plugin/extension.

  • Veuillez vous assurer que vous avez rempli le formulaire de création de version d'application à l'étape précédente.

🚀 5. Déployer sur le cloud

Ceci est l'étape finale de ce guide, après laquelle vous aurez un serveur déployé sur le cloud Edgegap, auquel des joueurs du monde entier pourront se connecter.

☑️ Choisissez une application et une version de l'étape précédente à déployer.

☑️ Une fois prêt, appuyez sur Déployer sur le Cloud, attendez d'atteindre Déploiements. L'exécution de cette étape entraînera la nouveau déploiement en cours de démarrage sur votre compte Edgegap.

☑️ Vérifiez qu'il n'y a pas de nouvelles erreurs dans la sortie de la console. Assurez-vous également que vos Déploiements n'affichent aucune erreur et que vos Déploiements n'indiquent pas une utilisation des ressources à 100 % (vCPU ou mémoire), sinon les nouvelles connexions de joueurs peuvent être refusées ou votre serveur bloqué dans une boucle de redémarrage. Voir les étapes de dépannage ci-dessous pour résoudre tout problème.

☑️ Nous allons maintenant effectuer le test final et connecter votre éditeur Unreal Engine à votre déploiement cloud. Récupérez votre Hôte du déploiement à la place de l'IP du serveur et le port externedu déploiement, ouvrez la console Unreal dans le client de jeu (tilde ~) et tapez open {host}:{port} .

Le port externe de votre déploiement sur le cloud Edgegap sera choisi au hasard, afin qu’un attaquant potentiel (hacker) soit ralenti et détecté avant qu’il ne puisse causer des dommages.

☑️ Une fois que vous avez vérifié que vous pouvez vous connecter à votre déploiement sans problème et que vous avez terminé les tests, Arrêter votre déploiement pour libérer de la capacité dans votre compte pour la prochaine build.

🙌 Félicitations pour votre premier déploiement sur Edgegap ! Si vous souhaitez en savoir plus, continuez à lire.

Dépannage et FAQ

Impossible de connecter les clients au serveur - La requête a expiré. , 请求超时 , ConnectionFailed , ou Échec de la vérification du port

  • Tout d'abord, assurez-vous que le déploiement est Ready, et qu'il n'y a pas d'exceptions ou d'erreurs d'exécution dans le journal de votre déploiement. Si votre déploiement s'est arrêté, inspectez les logs dans notre Tableau de bord.

  • Veuillez vérifier que votre paramètre de port dans les paramètres netcode de votre build serveur correspond au port interne dans votre version d'application. Pour les builds de plugin, le port est défini automatiquement pour vous. Vous pouvez modifier le mappage des ports en éditant le version d'application sans reconstruire. Trouvez votre protocole dans votre intégration netcode.

  • Veuillez vous assurer que votre client de jeu se connecte au port externe indiqué sur la page de détails de votre déploiement, cette valeur sera toujours randomisée pour des raisons de sécurité.

  • Veuillez vous assurer que vous avez renommé votre fichier cible et configuré les builds du jeu comme décrit à l'étape Unreal Engine.

  • Êtes-vous situé en Chine et utilisez-vous Smart Fleets? Votre connexion peut être bloquée par le Grand Firewall. Envisagez d'ajouter un serveur situé en Chine à votre flotte, ou d'utiliser un VPN pour vous connecter.


Mon déploiement est prêt mais je ne peux pas me connecter pendant plusieurs minutes après.

  • Une fois qu'un déploiement est Ready, l'initialisation de votre moteur de jeu commence. Ce processus peut durer de quelques secondes à plusieurs minutes, et le serveur n'accepte pas de connexions de joueurs pendant cette période.

  • Envisagez d'optimiser l'initialisation de votre serveur pour réduire cette durée.

  • Les clients de jeu doivent réessayer la connexion à des intervalles d'une seconde pendant une durée limitée (en fonction de la durée d'initialisation), après quoi ils doivent revenir au matchmaking.

  • Envisagez d'ajouter une scène de chargement afin que le serveur puisse effectuer l'initialisation (et le travel dans le cas d'Unreal Engine) en même temps que les clients, tout en synchronisant l'état des deux.


Avertissement : Impossible de créer une socket pour l'adresse de liaison

  • Veuillez installer le plugin Steam Subsystem d'Epic via la boutique d'actifs Fab.

  • Lors de l'utilisation du Edgegap Integration Kit (EGIK) avec la version source du SteamCore Integration Kit (SIK) téléchargée depuis github, le plugin Steam Subsystem d'Epic n'est pas inclus en raison des politiques de distribution des plugins d'Epic Games.


Je me suis connecté mais mon écran est complètement noir.


Mon déploiement s'est arrêté/redémarré et je n'ai plus accès à ses logs.

  • Dans le cas où le processus serveur plante à cause d'une exception, notre système tentera de redémarrer automatiquement le serveur. Envisagez de tester votre serveur localement pour découvrir la cause racine.

  • Nous ne conservons les logs que pendant la durée du déploiement ; si vous souhaitez inspecter les logs après l'arrêt du déploiement, veuillez intégrer un stockage de logs tiers.

  • Voir Déploiements pour découvrir toutes les causes d'arrêt de votre déploiement.


Mon déploiement s'est arrêté automatiquement après X minutes.

  • Les déploiements du niveau gratuit ont une limite de 60 minutes, envisagez de mettre à niveau votre compte.

  • Tous les déploiements seront terminés après 24 heures d'exécution conformément à notre politique de sanitation des serveurs, pour la maintenance de l'infrastructure, et pour éviter l'accumulation de coûts inattendus lorsque le déploiement n'a pas été arrêté correctement. Pour les serveurs à longue durée, envisagez d'utiliser Smart Fleets.

  • Voir Déploiements pour découvrir toutes les causes d'arrêt de votre déploiement.


Que se passe-t-il si un joueur quitte mon déploiement ?

  • Par défaut, les serveurs n'empêchent pas les connexions des joueurs. L'authentification des joueurs dépend de vos développeurs, car de nombreuses méthodes et fournisseurs d'authentification des joueurs peuvent être utilisés.

  • Les clients de jeu peuvent stocker localement les informations de connexion pour tenter de se reconnecter en cas de crash inattendu du client.

  • Pour permettre aux joueurs de rejoindre des parties en cours, envisagez d'utiliser Analyse approfondie ou Sessions.


Mon serveur affiche une utilisation CPU à 100 % après être devenu prêt.

  • Cela peut ne pas être un problème, car les moteurs de jeu ont tendance à effectuer des opérations intensives en CPU lors des initialisations de serveur. Si l'utilisation du CPU ne baisse pas après 2-3 minutes depuis le démarrage du déploiement, vous devrez peut-être optimiser votre serveur ou augmenter les ressources de la version d'application.

  • Réduire le taux de tick peut aider à contrôler l'utilisation du CPU en traitant moins de messages.

  • Vous êtes limité à 1,5 vCPU et 3 Go de mémoire (RAM) dans le niveau gratuit.

  • Vous pouvez augmenter les ressources allouées lors de la création d'une nouvelle version d'application. Vous pouvez dupliquer votre version d'application dans notre Tableau de bord et ajuster ces valeurs selon vos besoins, sans reconstruire votre serveur ou image.


Mon déploiement redémarre de manière répétée et affiche l'erreur OOM kill

  • Ceci est causé par le dépassement de la quantité de mémoire allouée. Envisagez d'optimiser l'utilisation de la mémoire avec du pooling d'objets, de la compression, ou en supprimant les objets inutiles dans votre scène.

  • Vous êtes limité à 1,5 vCPU et 3 Go de mémoire (RAM) dans le niveau gratuit.

  • Vous pouvez augmenter les ressources allouées lors de la création d'une nouvelle version d'application. Vous pouvez dupliquer votre version d'application dans notre Tableau de bord et ajuster ces valeurs selon vos besoins, sans reconstruire votre serveur ou image.


Parfois, l'utilisation de la mémoire (RAM) de mon serveur augmente fortement, est-ce un problème ?

  • Tant que vous restez dans la quantité de mémoire allouée à la version d'application, ce n'est pas un problème.

  • Dépasser la quantité de mémoire allouée à la version d'application entraînera OOM kill (voir ci-dessus).


Les performances de mon serveur seront-elles impactées par d'autres serveurs exécutés sur la même machine ?

  • Non, notre plateforme garantit que les ressources allouées ne seront pas utilisées par d'autres studios ou d'autres serveurs sur l'infrastructure partagée. Avec Edgegap, il n'y a pas de voisins bruyants.

👉 Prochaines étapes

Une fois que vous disposez d’une configuration client/serveur fonctionnelle, assurez-vous de sauvegarder une copie de votre projet (en utilisant un logiciel de gestion de versions comme git) afin de toujours pouvoir retracer vos étapes en cas de problème.

Continuez la lecture pour en savoir plus sur des sujets liés au cycle de vie des serveurs et à leur découvrabilité.

Arrêter les déploiements

Découvrez différentes méthodes pour arrêter les déploiements une fois le match terminé et les joueurs partis. Connectez votre Stockage d'endpoint pour obtenir les logs de votre déploiement, sinon ils seront supprimés !

Variables injectées

Lisez des informations utiles comme l'ID du déploiement, l'adresse IP du serveur, l'emplacement du serveur, et plus encore ; en accédant aux variables d'environnement injectées. Chaque déploiement inclut automatiquement :

Vérifier si l'instance actuelle est un client de jeu ou un serveur en vérifiant si la variable Edgegap est définie :

Profilage des serveurs

Pour comprendre et optimiser les problèmes de performance des serveurs sur Edgegap, explorez Déploiements, Déploiements, et plus Déploiements d'outils à votre disposition.

Vous pouvez également utiliser les outils de profilage existants d'Unreal Engine avec Edgegap :

Matchmaking

Démarrer vos déploiements manuellement, coller l'URL et les ports ne suffira pas pour un jeu en direct.

Optimiser les builds serveur

Configurez le découpage des assets pour isoler les assets clients uniquement des assets serveur.

Excluez les assets et plugins qui sont uniquement côté client et non requis pour l'exécution du serveur.

Examinez votre stratégie de cuisson du contenu.

Implémentez le Level Streaming pour réduire la charge mémoire à l'exécution.

N'incluez que ce dont vous avez absolument besoin pour que votre serveur fonctionne.

Exemple .dockerignore fichier pour supprimer des fichiers supplémentaires.

Envisagez d'utiliser des builds Docker multi-étapes (lien).

  • Séparez les grosses dépendances serveur dans une image distincte à réutiliser dans des builds multi-étapes. Docker mettra en cache chaque couche et réutilisera simplement la version précédente et évitera de téléverser cette partie sauf instruction contraire, vous faisant économiser de la bande passante et du temps d'attente pour la fin du téléversement.

  • Si vous ne savez pas pourquoi une des commandes de votre Dockerfile génère une erreur, essayez de déboguer localement. Créez une nouvelle étape juste avant que le problème n'arrive (ajoutez une deuxième FROM commande), utilisez --target pour demander au processus de build de s'arrêter à l'étape problématique, puis docker exec -it {container} /bin/bash pour entrer dans un terminal interactif à l'intérieur de votre conteneur. Ensuite, vous pouvez utiliser des commandes shell dans votre image de base pour enquêter plus avant (par ex. top sur ubuntu).

Personnaliser l'image serveur

Nous proposons également d'ajouter votre propre Dockerfile pour les utilisateurs qui ont besoin de plus de contrôle sur leurs images en raison de l'optimisation de la taille des builds, de dépendances superflues, ou d'un processus de démarrage plus complexe. Nous allons maintenant partager quelques conseils et bonnes pratiques « faites-le vous-même ».

Assurez-vous toujours de travailler avec une build serveur fonctionnelle.

  • Avant de supposer qu’un problème est lié au Dockerfile personnalisé, vérifiez que votre build serveur Unity peut démarrer et que le processus de build dans Unity n’a généré aucune exception ni erreur.

Testez toujours localement avant de téléverser.

  • Tester votre image localement vous fera gagner beaucoup de temps pendant l’attente du téléversement. C’est aussi entièrement gratuit ✨ car cela ne requiert aucune ressource Edgegap.

  • Lors des tests locaux, assurez-vous de définir correctement votre port interne :

Assurez-vous d’avoir les bases. Chaque Dockerfile nécessite quelques commandes essentielles :

  • FROM {image} est votre image de base ; pour les projets Unity nous utilisons généralement une distribution Linux à support à long terme, mais toute image de base basée sur Linux convient. Il s’agit généralement d’images publiques stockées sur Docker Hub. Référence Dockerfile ici. Référence Dockerfile ici.

  • COPY {source} {destination} pour copier votre build serveur Linux depuis votre machine hôte à l’intérieur de l’image, afin de pouvoir le démarrer plus tard. Référence Dockerfile ici.

  • USER {user} devrait suivre après une commande useradd (ubuntu) ou équivalente ; il est préférable de ne pas tout exécuter en tant que root pour être plus prudent. Référence Dockerfile ici.

  • CMD {command} sera la dernière ligne, appelant très probablement un StartServer.sh ou un script de démarrage quelconque pour s’assurer que votre serveur s’initialise correctement une fois que tout est configuré. Référence Dockerfile ici.

  • NE PAS utiliser VOLUME - vous ne pourrez pas monter de stockage local de cette manière sur Edgegap ; envisagez plutôt notre fonctionnalité Endpoint Storage et utilisez un bucket S3, voir Endpoint Storage,

  • EXPOSE 7777/UDP n’est pas requis ! Cela ne rendra pas réellement le port interne du serveur accessible depuis l’extérieur du conteneur, c’est seulement une indication pour le développeur et le port doit être

    • publié lors des tests locaux avec docker run <image> -p 7777/udp ,

    • ou mappé dans Edgegap Port Mapping.

Différez la déclaration des paramètres jusqu’au dernier moment possible. Configurabilité > composabilité en raison des temps de build serveur longs. Appliquez cette approche aux commandes Dockerfile pour construire et téléverser plus rapidement.

  • Scénario : vous devez définir des paramètres comme le stade de déploiement, la version, le mode de jeu, la carte, le nombre de joueurs par serveur, la fréquence de sauvegarde, ou similaire.

  • Mauvaise solution : créer une image distincte pour chaque combinaison de vos paramètres. Vous passerez tout votre temps à reconstruire les images avec très peu d’avantages.

  • Meilleure solution - substituer les paramètres de configuration au dernier moment :

    1. paramètres de déploiement - fournis juste avant le déploiement - sélecteurs de matchmaking passés comme variables d’environnement, ou votre système de gestion de session personnalisé passant des variables d’environnement au moment du déploiement,

    2. paramètres de version - partagés pour tous les déploiements d’une version d’application - stade de déploiement, tag d’artefact, secrets et points de terminaison tiers, et similaire ; puis

    3. une seule image - contient et charge toutes les options de configuration au lancement.

NE PAS exécuter de bases de données sur les déploiements Edgegap.

  • Les déploiements Edgegap ne sont pas destinés aux processus de longue durée et peuvent être terminés après une longue période d’exécution sans préavis. Une base de données (même distribuée) fonctionnant de cette manière peut être arrêtée et entraîner une perte de données irréversible. Si vous avez besoin d’une base de données, veuillez envisager un DBaaS tiers.

  • Envisagez d’utiliser notre Managed Clusters pour héberger des bases de données et des services à longue durée d’exécution.

Mis à jour

Ce contenu vous a-t-il été utile ?