Article
· Juin 19, 2023 9m de lecture

Tutoriel : Déploiement de votre application dockerisée sur Google Cloud

 Aujourd'hui, la grande majorité des applications sont déployées sur des services de cloud public. Les avantages sont multiples : réduction des ressources humaines et matérielles nécessaires, possibilité d'évoluer rapidement et à moindre coût, plus grande disponibilité, fiabilité, évolutivité élastique et options permettant d'améliorer la protection des actifs numériques. L'une des options les plus prisées est le Google Cloud. Il nous permet de déployer nos applications à l'aide de machines virtuelles (Compute Engine), de conteneurs Docker (Cloud Run) ou de Kubernetes (Kubernetes Engine). Le premier n'utilise pas Docker. Elle utilise plutôt une machine virtuelle sous Windows ou Linux où vous installez votre serveur d'application et déployez votre application. Les deuxième et troisième options utilisent Docker. Cependant, la dernière option fonctionne mieux pour les applications à grande échelle, avec de nombreuses instances Docker exécutées à l'aide de l'option auto-scale. La deuxième option, Cloud Run, convient mieux aux applications de petite et moyenne échelle. Cet article va vous guider dans le processus d'utilisation, de configuration et d'exécution des applications Docker sur GCP (Google Cloud Platform) à l'aide de Cloud Run.

Qu'est-ce que le nuage Google Cloud ?

Google Cloud est un fournisseur de services de Cloud Public. Pour en savoir plus sur GCP, accédez à cette URL (https://googlecloudcheatsheet.withgoogle.com/) :

 

Il s'agit d'un diagramme interactif. Si vous souhaitez obtenir plus de détails sur le sujet, il vous suffit de cliquer sur une section qui vous intéresse. C'est une façon très divertissante d'en savoir plus.

Obtention d'un exemple d'application Docker à déployer

Nous allons utiliser une application Docker prête du catalogue InterSystems Open Exchange. Pour l'obtenir, suivez les étapes suivantes

  1. Assurez-vous que Git est installé.
  2. Allez sur https://openexchange.intersystems.com/package/iris-rest-api-template.
  3. Clonez/git pull le référentiel dans n'importe quel répertoire local:
git clone git@github.com:intersystems-community/iris-rest-api-template.git

Le modèle iris-rest-api-template est une application backend avec une base de données IRIS et une API REST d'IRIS écrite en ObjectScript. Nous allons déployer cette application sur GCP Cloud Run.

Obtention de vos références AWS

Pour commencer, vous aurez besoin d'un compte GCP et d'un utilisateur disposant d'une clé d'accès. Pour ce faire, procédez comme suit :
Go to https://console.cloud.google.com and enter with an existent user and password or click the link Create account if you don’t have one:

 

Installation de l'outil gcloud CLI et y affecter l'utilisateur créé

L'outil gcloud CLI est utilisé pour tirer l'image Docker vers AWS ECR (c'est un peu comme le Docker Hub pour les images Docker AWS). Pour l'installer, procédez comme suit :

  1. Allez sur https://cloud.google.com/sdk/docs/install et sélectionnez les instructions d'installation adaptées au système d'exploitation de votre ordinateur.

 

  1. Choisissez l'option Run 'gcloud init' :

 

  1. Connectez-vous avec votre utilisateur Google Cloud.
  2. Autoriser l'accès à toutes les options requises. Vous êtes maintenant connecté à GCP en utilisant gcloud CLI.
  3. À ce stade, choisissez l'option [5] (Créer un nouveau projet) :

 

  1. Saisissez l'ID du projet avec la valeur iriscontainer.

 

  1. Félicitations ! Le projet est créé et prêt à être exploité par CLI.
  2. Allez dans le navigateur et choisissez le projet dans le menu déroulant de la console GCP :

 

  1. Passez à l'onglet ALL (tous) et sélectionnez le projet iriscontainer :

 

  1. Choisissez l'option Billing (facturation) dans le menu de gauche :

 

  1. Cliquez sur le bouton LINK A BILLING ACCOUNT (LIER UN COMPTE DE FACTURATION) :

 

  1. Sélectionnez un compte de facturation existant et cliquez sur le bouton SET ACCOUNT (Définir le compte) :

 

Téléchargement de votre application Docker sur le GCR (Google Container Registry)

 

  1. Allez dans le terminal et activez Docker pour gcloud :
gcloud auth configure-docker

Les résultats de l'exécution sont présentés ci-dessous :

 

  1. Allez au terminal et tapez :
gcloud services <span class="hljs-built_in">enable</span> containerregistry.googleapis.com
  1. Maintenant, allez dans votre terminal et trouvez le dossier où vous avez cloné le projet Git (dans mon cas, il s'agit de c:\projetos\isc\iris-rest-api-template) :

 

  1. Créez une balise avant d'envoyer l'image :

 

  1. Exécutez les images Docker pour obtenir le nom de votre image Docker :

 
6. Créer la balise :

 

  1. Envoyer l'image Docker balisée à GCR :

 

Vous devriez obtenir les résultats d'exécution suivants :
 

À ce stade, votre projet Docker est une image Docker public sur GCR.

Création de l'instance Docker sur GCP Cloud Run pour votre nouvelle image GCR

Puisque votre image Docker est enfin sur GCR, vous pouvez l'utiliser pour lancer une instance. Dans cette section, nous allons créer une instance Docker fonctionnant sur GCP Cloud Run. Pour ce faire, suivez les instructions ci-dessous :
1. Allez dans la console GCP et recherchez Cloud Run dans la barre de recherche supérieure. Cliquez ensuite sur le lien Cloud Run :

 

  1. Cliquez sur le bouton CREATE SERVICE (Créer un service) (en haut ou en bas de page) :

 

  1. Dans Create service (Créer un service), sélectionnez Deploy one revision (déployer une révision) à partir d'une image de conteneur existante.
  2. Cliquez sur SELECT (Sélectionner) dans le champ URL de l'image de conteneur :

 

  1. Dans la boîte de dialogue de droite, cliquez sur l'onglet CONTAINER REGISTRY (registre des conteneurs). Après cela, développez le nœud d'arborescence gcr.io/iriscontainer/irissample, choisissez le dernier nœud enfant, et cliquez sur le bouton SELECT (il s'agit de l'image Docker que vous avez téléchargée) :

  1. L'URL de l'image du conteneur est maintenant configurée. Cependant, d'autres paramètres sont encore disponibles, faites défiler l'écran pour les voir :
     

  2. Appuyez sur la touche Tab pour accéder aux champs Nombre minimum et Nombre maximum d'instances et tapez 1 dans chacun d'eux (cette option nous permettra d'adapter les instances à la charge nécessaire) :

 

  1. Appuyez à nouveau sur la touche Tab ou faites défiler l'écran vers le bas et cochez le bouton "All" ("Tout") (Autoriser l'accès direct à votre service à partir d'Internet). Cette option rendra l'instance disponible sur Internet.
  2. Appuyez sur la touche Tab (ou faites défiler l'écran) et sélectionnez Allow unauthenticated invocations (Autoriser les invocations non authentifiées) (cette option est utile pour protéger les ressources avec des références si nécessaire) :

 

  1. Cliquez sur la flèche de développement de la ligne Conteneur, Réseau, Sécurité et cliquez sur la touche Tab, ou faites défiler l'écran vers le bas pour accéder au port du conteneur. Mettez la valeur 52773 (cette option nous permettra d'envoyer les requêtes au port sans exposer ce port à la consommation extérieure) :

 

  1. Appuyez à nouveau sur la touche Tab pour accéder à la rubrique Memory (mémoire) et sélectionnez 4 GiB et CPU 1 (ces options sont très importantes pour la performance car elles définissent le nombre de CPUs et la quantité de mémoire disponible pour l'instance Docker. Cependant, les coûts augmentent également si vous engagez plus de ressources) :

 

  1. Dans l'environnement d'exécution, sélectionnez Défaut :

 

  1. Faites défiler vers le bas ou appuyez sur la touche de tabulation pour atteindre le bouton CREATE. Appuyez ensuite sur ce bouton pour terminer.

 

  1. À ce stade, vous devez attendre quelques instants pour que votre nouvelle demande soit publiée :

 

  1. Vous avez réussi ! Votre application est maintenant disponible :

 

  1. Copiez l'URL de l'application en haut de la page :

 

  1. Ouvrez votre navigateur et tapez ce qui suit (dans mon cas, il s'agit de https://irissample-6bc4etcptq-uc.a.run.app):
    https://irissample-6bc4etcptq-uc.a.run.app/csp/sys/%25CSP.Portal.Home.zen
  2. Le portail de gestion IRIS (avec l'utilisateur _SYSTEM et le mot de passe SYS) est désormais actif :

 

Navigation dans le panneau de service

Vous pouvez contrôler le service déployé. Pour ce faire, suivez les étapes suivantes :
1. Recherchez Cloud Run dans la barre de recherche supérieure et cliquez sur Cloud Run :

 

  1. Cliquez sur le lien irissample pour voir les détails du service :
  2. Dans l'onglet METRICS, il est possible de voir l'état général du service déployé, y compris la latence, le nombre de requêtes et l'utilisation de la CPU :
     

  3. Dans l'onglet LOGS (journaux), vous pouvez voir les journaux de l'application :

 
5. Dans l'onglet YAML, vous pouvez vérifier et modifier la configuration du service au format YAML :

 

Arrêt du service

N'OUBLIEZ PAS D'ARRÊTER LE SERVICE, POUR NE PAS ÊTRE FACTURÉ. Pour ce faire, suivez les instructions suivantes :
1. Recherchez Cloud Run dans la barre de recherche supérieure et cliquez sur Cloud Run :

 

  1. Cochez la case irissample et cliquez sur le bouton DELETE :

P.S. : supprimez également le projet !

 

GCP et IRIS, l'architecture de référence

Mark Bolinsky, l'architecte principal d'InterSystems, a publié un article présentant les meilleures pratiques et une proposition d'architecture IRIS d'InterSystems pour gérer les projets IRIS essentiels. Pour le consulter, suivez le lien https://community.intersystems.com/post/intersystems-iris-example-refere.... L'article explore des scénarios de petite, moyenne et grande échelle.

 

Mes impressions sur GCP

 

GCP est une option plus facile à utiliser qu'AWS lorsqu'il s'agit de déployer des instances IRIS. Il me semble qu'il s'agit également d'une solution moins onéreuse. D'un autre côté, AWS dispose de ressources et d'options plus avancées en matière de sécurité, de stockage et de services spécialisés tels que l'IA et le WAF. Cependant, il est plus facile de trouver des professionnels qui utilisent AWS, et c'est aussi Cloud Public le plus populaire sur le marché.

Discussion (0)1
Connectez-vous ou inscrivez-vous pour continuer