Créer une démonstration de faisabilité pour une ferme de rendu hybride


Ce document explique comment exécuter une démonstration de faisabilité afin de créer une ferme de rendu hybride sur Google Cloud. Pensé comme un complément de l'article Créer une ferme de rendu hybride, ce document est conçu pour faciliter le test et l'analyse comparative des animations, films, publicités ou jeux vidéo sur Google Cloud

Vous pouvez exécuter une démonstration de faisabilité pour votre ferme de rendu hybride sur Google Cloud si vous limitez le champ d'application de vos tests aux composants essentiels. Contrairement à la conception d'une solution complète de bout en bout, tenez compte des objectifs suivants dans le cadre d'une démonstration de faisabilité :

  • Déterminer comment reproduire votre environnement de rendu sur site dans le cloud
  • Mesurer les différences en matière de rendu et de performances réseau entre les nœuds de calcul de rendu sur site et les instances cloud
  • Déterminer les différences en matière de coût entre les charges de travail sur site et dans le cloud

Les tâches suivantes, que vous pouvez reporter ou même éliminer d'une démonstration de faisabilité, sont moins importantes :

  • Déterminer la façon dont les éléments sont synchronisés, le cas échéant, entre votre installation et le cloud
  • Déterminer comment déployer des tâches sur des nœuds de calcul de rendu cloud en utilisant un logiciel de gestion de files d'attente
  • Déterminer la meilleure façon de se connecter à Google Cloud
  • Mesurer la latence entre votre installation et les centres de données Google

Connectivité

Pour exécuter une démonstration de faisabilité de rendu, vous n'avez pas besoin d'une connectivité de niveau entreprise avec Google. Une connexion à l'Internet public est suffisante. La vitesse de connexion, le temps de latence et la bande passante ont une importance secondaire pour les performances de rendu.

Vous pouvez considérer la connectivité comme une démonstration de faisabilité distincte, car la mise en place de l'interconnexion dédiée ou de l'interconnexion partenaire pour une démonstration de faisabilité peut prendre du temps et peut être effectuée simultanément avec les tests de rendu.

Objectifs

  • Créer une instance Compute Engine et la personnaliser pour servir de nœud de calcul de rendu
  • Créer une image personnalisée
  • Déployer un nœud de calcul de rendu
  • Copier les éléments dans le nœud de calcul de rendu
  • Effectuer une analyse comparative de rendu
  • Copier les rendus de test à partir du nœud de calcul de rendu vers votre poste de travail local à des fins d'évaluation

Coûts

Lorsque vous estimez votre utilisation prévue, évaluez la différence de coût entre le nœud de calcul de rendu sur site et le nœud de calcul de rendu sur le cloud.

Dans ce document, vous utilisez les composants facturables suivants de Google Cloud :

Obtenez une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût. Les nouveaux utilisateurs de Google Cloud peuvent bénéficier d'un essai gratuit.

Une fois que vous avez terminé les tâches décrites dans ce document, vous pouvez éviter de continuer à payer des frais en supprimant les ressources que vous avez créées. Pour en savoir plus, consultez la section Effectuer un nettoyage.

Avant de commencer

  1. Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
  2. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  3. Vérifiez que la facturation est activée pour votre projet Google Cloud.

  4. Installez Google Cloud CLI.
  5. Pour initialiser gcloudCLI, exécutez la commande suivante :

    gcloud init
  6. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  7. Vérifiez que la facturation est activée pour votre projet Google Cloud.

  8. Installez Google Cloud CLI.
  9. Pour initialiser gcloudCLI, exécutez la commande suivante :

    gcloud init
  10. Dans la console Google Cloud, activez Cloud Shell.

    Activer Cloud Shell

    En bas de la fenêtre de la console Google Cloud, une session Cloud Shell démarre et affiche une invite de ligne de commande. Cloud Shell est un environnement shell dans lequel Google Cloud CLI est déjà installé, et dans lequel des valeurs sont déjà définies pour votre projet actuel. L'initialisation de la session peut prendre quelques secondes.

  11. Dans ce document, vous allez effectuer les différentes étapes en utilisant principalement Cloud Shell, mais si vous copiez les données d'une machine sur site vers Cloud Storage, Google Cloud CLI doit être exécuté sur cette machine.

Configurer votre environnement

  • Dans Cloud Shell, définissez la zone Compute Engine :

    gcloud config set compute/zone [ZONE]
    

    [ZONE] est la zone dans laquelle toutes vos ressources sont créées.

Déployer une instance

Pour exécuter votre démonstration de faisabilité, vous pouvez recréer votre configuration matérielle sur site dédiée aux nœuds de calcul de rendu. Bien que Google Cloud propose un certain nombre de plates-formes de processeur pouvant correspondre à votre propre configuration matérielle, l'architecture d'une machine virtuelle sur le cloud est différente de celle d'un panneau de rendu physique dans une ferme de rendu sur site.

Sur Google Cloud, les ressources sont virtualisées et indépendantes des autres ressources. Les machines virtuelles (instances) intègrent les composants principaux suivants :

  • Processeurs virtuels
  • Mémoire (RAM)
  • Disques

    • Disque de démarrage et OS invité
    • Disques de stockage supplémentaires
  • GPU NVIDIA Tesla (facultatif)

Vous pouvez également contrôler d'autres aspects des ressources, comme la mise en réseau, les règles de pare-feu et l'accès des utilisateurs. Cependant, dans le cadre de votre démonstration de faisabilité, il vous suffit de prêter attention aux quatre composants mentionnés précédemment.

Créer une instance

  1. Dans Cloud Shell, créez votre instance de nœud de calcul de rendu prototype :

    gcloud compute instances create [INSTANCE_NAME] \
        --machine-type [MACHINE_TYPE] \
        --image-project [IMAGE_PROJECT] \
        --image-family [IMAGE_FAMILY] \
        --boot-disk-size [SIZE]
    

    Où :

    • [INSTANCE_NAME] correspond au nom de votre instance.
    • [MACHINE_TYPE] correspond à un type de machine prédéfini ou un type de machine personnalisé utilisant le format custom-[NUMBER_OF_CPUS]-[NUMBER_OF_MB], dans lequel vous définissez le nombre de processeurs virtuels et la quantité de mémoire pour le type de machine.
    • [IMAGE_PROJECT] correspond au projet d'image de cette famille d'images.
    • [IMAGE_FAMILY] est une option facultative qui spécifie la famille d'images à laquelle cette image appartient.
    • [SIZE] est la taille du disque de démarrage en Go.

    Exemple :

    gcloud compute instances create render-worker-proto \
        --machine-type custom-24-32768 \
        --image-project centos-cloud \
        --image-family centos-7 \
        --boot-disk-size 100
    

    La commande précédente crée une instance CentOS 7 avec 24 processeurs virtuels, 32 Go de RAM et un disque de démarrage standard de 100 Go. L'instance est créée dans la zone que vous avez définie précédemment comme zone de calcul par défaut.

Vous pouvez choisir de créer une VM de n'importe quelle taille, intégrant jusqu'à 96 processeurs virtuels (si vous avez besoin d'un nombre plus élevé, essayez les types ultramem), plus de 624 Go de RAM ou plusieurs GPU NVIDIA Tesla. Les possibilités sont infinies, mais veillez à ne pas surprovisionner ; l'objectif est de concevoir une ferme de rendu économique, évolutive et basée sur le cloud, adaptée aux tâches de toute taille.

Se connecter à une instance

  1. Dans Cloud Shell, connectez-vous à votre instance à l'aide de SSH :

    gcloud compute ssh [INSTANCE_NAME]
    
  2. Installez le logiciel et octroyez une licence à votre instance comme vous le feriez avec un nœud de calcul de rendu sur site.

Créer l'image par défaut

À moins que vous n'ayez un logiciel personnalisé à tester nécessitant un noyau Linux personnalisé ou des versions d'OS plus anciennes, nous vous recommandons de commencer par l'une de nos images disque publiques et d'ajouter le logiciel que vous allez utiliser.

Si vous décidez d'importer votre propre image, vous devez configurer cette image en installant des bibliothèques supplémentaires pour permettre à votre OS invité de communiquer avec Google Cloud.

Configurer le nœud de calcul de rendu

  1. Dans Cloud Shell, sur l'instance que vous avez créée précédemment, configurez votre nœud de calcul de rendu comme vous le feriez pour votre nœud de calcul sur site, en installant votre logiciel et vos bibliothèques.

  2. Arrêtez l'instance :

    gcloud compute instances stop [INSTANCE_NAME]
    

Créer une image personnalisée

  1. Dans Cloud Shell, déterminez le nom du disque de démarrage de votre VM :

    gcloud compute instances describe [INSTANCE_NAME]
    

    La sortie contient le nom du disque de démarrage de votre instance :

    mode: READ_WRITE
    source:https://www.googleapis.com/compute/v1/projects/[PROJECT]/zones/[ZONE]/disks/[DISK_NAME]
    

    Où :

    • [PROJECT] est le nom de votre projet Google Cloud.
    • [ZONE] est la zone où se trouve le disque.
    • [DISK_NAME] est le nom du disque de démarrage associé à votre instance. Le nom du disque est généralement identique (ou similaire) au nom de votre instance.
  2. Créez une image à partir de votre instance :

    gcloud compute images create [IMAGE_NAME] \
        --source-disk [DISK_NAME] \
        --source-disk-zone [ZONE]
    

    Où :

    • [IMAGE_NAME] est le nom de la nouvelle image.
    • [DISK_NAME] est le disque à partir duquel vous souhaitez créer l'image.
    • [ZONE] est la zone où se trouve le disque.

Déployer un nœud de calcul de rendu

Maintenant que vous disposez d'une image personnalisée avec le système d'exploitation, le logiciel et les bibliothèques nécessaires, vous pouvez déployer une instance de nœud de calcul de rendu utilisant votre image personnalisée plutôt qu'une image publique.

  • Dans Cloud Shell, créez une instance de nœud de calcul de rendu. Ajoutez le champ d'application devstorage.read_write pour pouvoir écrire sur Cloud Storage à partir de cette instance.

    gcloud compute instances create [WORKER_NAME] \
        --machine-type [MACHINE_TYPE] \
        --image [IMAGE_NAME] \
        --scopes https://www.googleapis.com/auth/devstorage.read_write \
        --boot-disk-size [SIZE]
    

    [WORKER_NAME] correspond au nom du nœud de calcul de rendu.

Gérer les licences logicielles

Vous pouvez utiliser votre serveur de licences sur site pour octroyer des licences lors d'une démonstration de faisabilité, car vous n'avez pas besoin d'octroyer à nouveau des licences pour les nouveaux serveurs de licences sur le cloud. Pour vous connecter de manière sécurisée à votre serveur de licences sur site à partir de votre instance cloud, créez une règle de pare-feu qui n'autorise que le trafic sur les ports nécessaires. Cette règle de pare-feu autorise également le trafic provenant de l'adresse IP de votre passerelle Internet sur site ou du serveur de licences lui-même.

Vous devrez peut-être configurer la passerelle Internet de votre installation pour autoriser le trafic provenant de votre instance Google Cloud à atteindre votre serveur de licences sur site.

Utiliser votre serveur de licences sur site

Vous pouvez autoriser le trafic sur votre réseau VPC (Virtual Private Cloud) en créant une règle de pare-feu.

  • Dans Cloud Shell, créez la règle de pare-feu :

    gcloud compute firewall-rules create [RULE_NAME] \
       --direction=INGRESS \
       --priority=1000 \
       --network=default \
       --action=ALLOW \
       --rules=[PROTOCOL]:[PORT] \
       --source-ranges=[IP_ADDRESS]
    

Où :

  • [RULE_NAME] est le nom de la règle de pare-feu.
  • [PROTOCOL] correspond au protocole de trafic.
  • [PORT] est le port sur lequel le trafic transite.
  • [IP_ADDRESS] est l'adresse IP de votre serveur de licences sur site.

Utiliser un serveur de licences sur le cloud

Un serveur de licences sur le cloud ne nécessite pas de connectivité à votre réseau sur site et s'exécute sur le même réseau VPC que votre nœud de calcul de rendu. La diffusion de licences étant une tâche relativement légère, une instance de petite taille (entre 2 et 4 processeurs virtuels, entre 6 et 8 Go de RAM) peut transmettre la charge de travail liée à la diffusion de licences à quelques nœuds de calcul de rendu.

Selon le type de logiciel auquel vous devez octroyer une licence, vous devrez peut-être saisir à nouveau vos licences avec un numéro d'ID matériel unique, tel que l'adresse MAC du serveur de licences. D'autres gestionnaires de licence peuvent valider des licences de logiciel à partir de n'importe quel hôte connecté à Internet. Il existe de nombreux gestionnaires de licences. Pour obtenir des instructions, consultez la documentation relative aux licences de produits.

Autoriser la communication entre les instances

Les nœuds de calcul de rendu et les instances de serveur de licences doivent communiquer entre eux. La règle de pare-feu default-allow-internal autorise toutes les instances de votre projet à communiquer entre elles. Cette règle de pare-feu est créée lorsque vous créez un projet. Si vous utilisez un nouveau projet, vous pouvez ignorer cette section. Si vous utilisez un projet existant, vous devez vérifier si la règle de pare-feu se trouve toujours dans votre projet Google Cloud.

  1. Dans Cloud Shell, vérifiez si la règle de pare-feu se trouve dans votre projet :

    gcloud compute firewall-rules list \
        --filter="name=default-allow-internal"
    

    Si la règle de pare-feu se trouve dans votre projet, la sortie suivante s'affiche :

    NAME                   NETWORK DIRECTION PRIORITY ALLOW DENY                   DISABLED
    default-allow-internal default INGRESS   65534m   tcp:0-65535,udp:0-65535,icmp False
    

    Si la règle de pare-feu ne se trouve pas dans votre projet, aucune sortie ne s'affiche.

  2. Si vous devez créer la règle de pare-feu, utilisez la commande suivante :

    gcloud compute firewall-rules create default-allow-internal \
        --direction=INGRESS \
        --priority=65534 \
        --network=default \
        --action=ALLOW \
        --rules=tcp:0-65535,udp:0-65535,icmp \
        --source-ranges=0.0.0.0/0
    

Stocker des éléments

Les pipelines de rendu peuvent être très différents les uns des autres, même au sein d'une même entreprise. Pour exécuter votre démonstration de faisabilité rapidement et avec une configuration minimale, vous pouvez utiliser le disque de démarrage de votre instance de nœud de calcul de rendu pour stocker des éléments. Votre démonstration de faisabilité ne doit pas tout de suite évaluer la synchronisation des données ou des solutions de stockage plus avancées. Vous pouvez évaluer ces options dans une démonstration de faisabilité distincte.

Plusieurs options de stockage sont disponibles sur Google Cloud, mais nous vous recommandons de tester une solution de stockage partagé évolutive dans une démonstration de faisabilité distincte.

Si vous testez plusieurs configurations de nœud de calcul de rendu et que vous avez besoin d'un système de fichiers partagé, vous pouvez créer un volume Filestore et l'installer à l'aide de NFS sur vos nœuds de calcul de rendu. Filestore est un service géré de stockage de fichiers qui peut être installé en lecture et en écriture sur de nombreuses instances, en tant que serveur de fichiers.

Transférer des données vers Google Cloud

Pour exécuter une démonstration de faisabilité de rendu, vous devez transférer vos fichiers de scène, vos caches et vos éléments sur vos nœuds de calcul de rendu. Pour les ensembles de données plus volumineux (> 10 Go), vous pouvez copier vos données dans Cloud Storage à l'aide de gsutil, puis les transférer sur vos nœuds de calcul de rendu. Pour les ensembles de données plus petits (< 10 Go), vous pouvez copier les données directement dans un chemin d'accès sur vos nœuds de calcul de rendu (Linux seulement) à l'aide de gcloud CLI.

Créer un répertoire de destination sur le nœud de calcul de rendu

  1. Dans Cloud Shell, connectez-vous à votre nœud de calcul de rendu à l'aide de SSH :

    gcloud compute ssh [WORKER_NAME]
    

    [WORKER_NAME] est le nom de votre nœud de calcul de rendu.

  2. Créez un répertoire de destination pour vos données :

    mkdir [ASSET_DIR]
    

    [ASSET_DIR] est un répertoire local situé n'importe où sur votre nœud de calcul de rendu.

Copier de grandes quantités de données à l'aide de gsutil

Si vous transférez des ensembles de données volumineux sur votre nœud de calcul de rendu, utilisez gsutil avec Cloud Storage comme étape intermédiaire. Si vous transférez des ensembles de données plus petits, vous pouvez passer à la section suivante et transférer de plus petites quantités de données à l'aide de gcloud CLI.

  1. Sur votre poste de travail local, créez un bucket Cloud Storage :

    gsutil mb gs://[BUCKET_NAME_ASSETS]
    

    [BUCKET_NAME_ASSETS] représente le nom du bucket Cloud Storage pour vos fichiers ou répertoires que vous souhaitez copier.

  2. Copiez les données de votre répertoire local dans le bucket :

    gsutil -m cp -r [ASSETS] gs://[BUCKET_NAME_ASSETS]
    

    [ASSETS] correspond à une liste de fichiers ou de répertoires à copier dans votre bucket.

  3. Connectez-vous à votre nœud de calcul de rendu à l'aide de SSH :

    gcloud compute ssh [WORKER_NAME]
    
  4. Copiez le contenu de votre bucket dans votre nœud de calcul de rendu :

    gsutil -m cp -r gs://[BUCKET_NAME_ASSETS]/* [ASSET_DIR]
    

Copier de petites quantités de données à l'aide de la CLI gcloud

Si vous transférez des ensembles de données plus petits, vous pouvez copier directement les données depuis votre poste de travail local vers un nœud de calcul de rendu Linux en utilisant gcloud CLI.

  • Sur votre poste de travail local, copiez les données entre votre répertoire local et votre nœud de calcul de rendu :

    gcloud compute scp --recurse [ASSETS] [INSTANCE_NAME]:[ASSET_DIR]
    

    Où :

    • [ASSETS] correspond à une liste de fichiers ou de répertoires à copier dans votre bucket.
    • [INSTANCE_NAME] est le nom de votre nœud de calcul de rendu.
    • [ASSET_DIR] correspond à un chemin d'accès local sur votre nœud de calcul de rendu.

Exécuter des rendus de test

Une fois votre logiciel de rendu installé, une licence octroyée et vos données de scène copiées, vous êtes prêt à exécuter des tests de rendu. Ce processus dépend entièrement de la manière dont votre pipeline de rendu exécute les commandes de rendu.

Outils d'analyse comparative

Si vous souhaitez comparer les ressources cloud à votre matériel sur site, vous pouvez utiliser Perfkit Benchmarker pour établir des statistiques sur des éléments tels que la bande passante du réseau et les performances du disque.

Certains logiciels de rendu possèdent leurs propres outils d'analyse comparative, tels que V-Ray, Octane ou Maxon, que vous pouvez utiliser à la fois sur site et dans le cloud pour comparer les configurations de rendu courantes.

Transférer des données depuis Google Cloud

Une fois que vous avez effectué vos tests de rendu et que vous souhaitez afficher les résultats, vous devez copier les rendus générés sur votre poste de travail local. En fonction de la taille de l'ensemble de données à transférer, vous pouvez utiliser l'outil gsutil ou gcloud CLI.

Créer un répertoire de destination sur votre poste de travail local

  • Sur votre poste de travail local, créez un répertoire pour vos rendus :

    mkdir [RENDER_DIR]
    

    [RENDER_DIR] correspond à un chemin d'accès local sur votre nœud de calcul de rendu.

Copier de grandes quantités de données à l'aide de gsutil

Si vous transférez des ensembles de données volumineux, utilisez gsutil. Sinon, passez à la section suivante pour utiliser gcloud CLI. Pour copier des données de votre nœud de calcul de rendu vers un bucket Cloud Storage, créez un bucket Cloud Storage distinct afin de séparer vos données de rendu de vos données d'éléments.

  1. Sur votre poste de travail local, créez un bucket Cloud Storage :

    gsutil mb gs://[BUCKET_NAME_RENDERS]
    

    [BUCKET_NAME_RENDERS] représente le nom de votre bucket Cloud Storage pour vos données de rendu.

  2. Connectez-vous à votre nœud de calcul de rendu à l'aide de SSH :

    gcloud compute ssh [WORKER_NAME]
    
  3. Copiez les données de rendu dans votre bucket :

    gsutil -m cp -r [RENDERS] gs://[BUCKET_NAME_RENDERS]
    

    Où :

    • [RENDERS] correspond à une liste de fichiers ou de répertoires à copier dans votre bucket.
  4. Sur votre poste de travail local, copiez les fichiers du bucket Cloud Storage dans un répertoire local :

    gsutil -m cp -r gs://[BUCKET_NAME_RENDERS]/* [RENDER_DIR]
    

Copier de petites quantités de données à l'aide de la CLI gcloud

Si vous copiez des ensembles de données plus petits, vous pouvez les copier directement depuis votre nœud de calcul de rendu vers votre poste de travail local.

  • Sur votre poste de travail local, copiez les fichiers de rendu dans votre répertoire de destination :

    gcloud compute scp --recurse [WORKER_NAME]:[RENDERS] [RENDER_DIR]
    

    [RENDERS] correspond à une liste de fichiers ou de répertoires à copier sur votre poste de travail local.

Nettoyer

Pour éviter que les ressources utilisées lors de ce tutoriel soient facturées sur votre compte Google Cloud, supprimez le projet contenant les ressources, ou conservez le projet et supprimez les ressources individuelles.

Supprimer le projet

  1. Dans la console Google Cloud, accédez à la page Gérer les ressources.

    Accéder à la page Gérer les ressources

  2. Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
  3. Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.

Supprimer des ressources individuelles

  1. Supprimez l'instance.
    gcloud compute instances delete INSTANCE_NAME
  2. Supprimez le bucket :
    gcloud storage buckets delete BUCKET_NAME

Étape suivante