Application Web nouvelle génération utilisant la pile MEAN

Ce tutoriel peut entraîner des coûts. Utilisez l'Estimateur de coûts pour générer une estimation du coût en fonction de votre utilisation projetée.

Ce tutoriel vous guide dans la création d'une application Web à l'aide de la pile MEAN bien connue. Il se compose d'une structure MongoDB, d'une structure web Express, d'une structure frontale Angular et d'un environnement d'exécution Node.js. Vous apprendrez à exécuter localement un exemple d'application MEAN, à créer et à utiliser une base de données gérée en tant que service DBasS, à déployer l'application sur IBM Cloud et à mettre à l'échelle les ressources d'exécution et de base de données.

Objectifs

  • Créez et exécutez localement un exemple d'application Node.js.
  • Créez une instance Databases for MongoDB gérée.
  • Déployez l'application Node.js sur le cloud en utilisant IBM Cloud® Code Engine
  • Ressources d'UC et de mémoire d'exécution d'échelle.
  • Mémoire de base de données d'échelle et ressources de disque.

Schéma d'architecture*Schéma d'
du

  1. L'utilisateur accède à l'application à l'aide d'un navigateur Web.
  2. L'application Node.js en cours d'exécution dans Code Engine accède à la base de données Databases for MongoDB pour extraire des données.

Avant de commencer

Pour ce tutoriel, vous devez disposer des éléments suivants :

  • De l'interface de ligne de commande IBM Cloud : cet outil d''interface de ligne de commande vous permettra d'interagir avec IBM Cloud.
    • Plug-in code-engine/ce (code-engine/ce) pour l'accès de l'interface de ligne de commande aux ressources Code Engine.
    • Plug-in facultatif Container Registry (container-registry) pour la gestion des images de conteneur.
  • de git pour cloner le référentiel de code source.
  • En option, si vous souhaitez tester l'exécution de l'application localement, vous devez installer Node.js.

Vous trouverez des instructions de téléchargement et d'installation de ces outils pour votre environnement d'exploitation dans le document Démarrer avec les tutoriels.

Pour éviter l'installation de ces outils, vous pouvez utiliser le Cloud Shell depuis la console IBM Cloud.

Ce tutoriel illustre l'utilisation de la ligne de commande pour créer le projet et l'application IBM Cloud® Code Engine de la base de données. Il existe des instructions dans le référentielGitHub compagnon pour mettre à disposition Terraform localement sur votre poste de travail ou une mise à disposition encore plus simple avec Schematics en quelques clics.

Création d'une instance de la base de données MongoDB dans le cloud

Dans cette section, vous allez créer une instance Databases for MongoDB dans le cloud. Databases for MongoDB est une base de données en tant que service qui est facile à configurer et fournit des sauvegardes et une mise à l'échelle intégrées. Vous pouvez trouver de nombreux types de bases de données différents dans le Catalogue IBM Cloud. Pour créer une instance Databases for MongoDB, procédez comme suit :

  1. Si vous n'êtes pas connecté, utilisez ibmcloud login ou ibmcloud login --sso pour vous connecter de manière interactive. Ciblez votre région et votre groupe de ressources IBM Cloud préférés. Dans l'exemple ci-dessous, nous utiliserons la région ca-tor (Toronto) et le groupe de ressources default.

    ibmcloud target -r ca-tor -g default
    

    Vous pouvez trouver d'autres commandes CLI dans la rubrique Commandes générales IBM Cloud CLI (ibmcloud) de la documentation.

  2. Créez une instance de Databases for MongoDB via la ligne de commande ou utilisez l'interface utilisateur de la console. Le nom du service doit être mean-stack-mongodb car l'application utilisée dans ce tutoriel est configurée pour rechercher le service sous ce nom. Pour <region>, vous pouvez choisir une région qui vous est plus proche, mais nous utiliserons ca-tor dans ce tutoriel.

    ibmcloud resource service-instance-create mean-stack-mongodb databases-for-mongodb standard ca-tor
    
  3. Attendez que l'instance soit prête. Vous pouvez vérifier le statut de la mise à disposition à l'aide de la commande suivante :

    ibmcloud resource service-instance mean-stack-mongodb
    
  4. Une fois que vous avez vérifié que le statut du service a été remplacé par « création réussie », vous pouvez procéder à la création d'une clé de service.

    ibmcloud resource service-key-create mean-stack-mongodb-key --instance-name mean-stack-mongodb
    

Exécution de l'application MEAN en local

Dans cette section, vous allez cloner un exemple de code MEAN et exécuter l'application en local pour tester la connexion à la base de données MongoDB qui s'exécute sur IBM Cloud.

  1. Clonez le code d'exemple MEAN.

    git clone https://github.com/IBM-Cloud/nodejs-MEAN-stack
    cd nodejs-MEAN-stack
    
  2. Copier le fichier .env.example sur .env.

    cp .env.example .env
    
  3. Dans le fichier .env, ajoutez votre propre valeur confidentielle SESSION_SECRET. Pour MONGODB_URL et CERTIFICATE_BASE64, exécutez la commande suivante :

    ibmcloud resource service-key mean-stack-mongodb-key --output json
    

    Vous pouvez trouver la valeur requise pour MONGODB_URL sous credentials -> connection -> mongodb -> composed et la valeur de CERTIFICATE_BASE64 sous credentials -> connection -> mongodb -> certificate -> certificate_base64 dans la sortie JSON renvoyée. Assurez-vous que les valeurs ajoutées à .env n'incluent pas de guillemets ou d'espace vierge.

  4. Facultatif - Installez les packages requis.

    npm install
    
  5. Facultatif - Exécutez l'application localement. Accédez à l'application à l'aide de l'URL fournie dans la sortie, créez un nouvel utilisateur et connectez-vous.

    node server.js
    

A l'aide de cloud shell, il est possible d'ouvrir l'application en cliquant sur l'icône oeil dans l'angle supérieur droit et en cliquant sur l'aperçu sur le port 8080.

Déploiement de l'application sur le cloud

IBM Cloud® Code Engine est une plateforme sans serveur entièrement gérée qui exécute vos charges de travail conteneurisées, y compris les applications web, les microservices, les fonctions événementielles ou les travaux par lots. Dans cette section, vous allez créer un projet Code Engine et déployer l'application Node.js conteneurisée sur le projet. Dans la section précédente, le code source lit l'adresse .env que vous avez localement pour obtenir l' URL et les informations d'identification du service MongoDB. Vous allez créer un secret dans le projet pour contenir ces mêmes clés / valeurs qui seront lues par l'application lors de son exécution.

Nous avons déjà construit une image de conteneur pour l'application et l'avons repoussée au public IBM Cloud Container Registry. Vous utiliserez cette image de conteneur préconstruite pour déployer l'application.

  1. Créez un projet dans IBM Cloud Code Engine.

    ibmcloud code-engine project create --name mean-stack
    
  2. Créez un secret dans le projet qui contient les clés / valeurs du fichier .env que vous avez utilisées précédemment pour exécuter l'application localement, ce secret sera consommé par l'application qui s'exécute dans le cloud. Pour plus d'informations sur les secrets, voir Utilisation des secrets.

    ibmcloud code-engine secret create --name mean-stack-secrets --from-env-file .env
    
  3. Créez l'application en fonction de l'image de conteneur public basée sur le même code source téléchargé à partir du référentiel https://github.com/IBM-Cloud/nodejs-MEAN-stack . Si vous êtes intéressé par les étapes utilisées pour créer cette image, vous pouvez consulter Create-container-image.md.

    ibmcloud code-engine application create --name mean-stack-application --image icr.io/solution-tutorials/tutorial-mean-stack --env-from-secret mean-stack-secrets
    
  4. Une fois que le code a été transmis, vous devriez être en mesure de visualiser l'application dans votre navigateur. Un nom d'hôte a été généré qui peut être similaire à: https://mean-stack.<CE_SUBDOMAIN>.ca-tor.codeengine.appdomain.cloud/. CE_SUBDOMAIN est une variable injectée dans votre projet et sa valeur déterminée lors de la création de votre projet. Vous pouvez obtenir l'URL de votre application à partir du tableau de bord ou de la ligne de commande de la console. Une fois que vous avez accédé à l'application, celle-ci devrait ressembler à ceci :

    Application en direct
    Application en direct

Mise à l'échelle des ressources de traitement dans Code Engine

Code Engine surveille le nombre de requêtes dans le système et fait monter ou descendre les instances de l'application afin de répondre à la charge des requêtes entrantes, y compris les connexions HTTP à votre application. Si votre service a besoin de ressources de traitement supplémentaires, ou si vous souhaitez réduire la quantité de ressources de traitement allouées, vous pouvez effectuer ces modifications dans votre page d'application spécifique.

  1. Accédez à la page Projets du moteur de code.

  2. Cliquez sur le projet pile moyenne créé précédemment.

  3. Sous Résumé, cliquez sur Applications.

  4. Cliquez sur le application-pile-moyenne créé précédemment.

  5. Cliquez sur Configuration, puis sur Éxécution pour afficher la configuration en cours.

    Ressources d'échelle
    Ressources d'échelle

  6. Cliquez sur Éditer et créer une nouvelle révision pour ajuster non seulement le CPU et la mémoire, le nombre minimum/maximum d'instances ainsi que la Concurrence.

  7. Cliquez sur Enregistrer et créer pour déclencher les modifications. Cela indique que l'application est Deploying et Ready lorsqu'elle est terminée.

Mise à l'échelle des ressources de base de données dans Databases for MongoDB

Si votre service nécessite davantage d'espace de stockage, ou si vous souhaitez limiter la quantité de stockage allouée au service, vous pouvez effectuer une mise à l'échelle des ressources.

  1. Accédez à l'instance de service Databases for MongoDB à partir de la Liste de ressources sous Bases de données.
  2. Cliquez sur le panneau Ressources.
    Ressources d'échelle
    Ressources d'échelle
  3. Ajustez le curseur pour augmenter ou réduire le stockage alloué à votre service de base de données Databases for MongoDB.
  4. Cliquez sur Mettre à l'échelle le déploiement pour lancer le processus de mise à l'échelle et revenir dans la vue d'ensemble du tableau de bord. La vue indique que la remise à l'échelle est en cours.
  5. Vous pouvez également configurer des règles de mise à niveau automatique pour augmenter automatiquement les ressources de la base de données à mesure que son utilisation augmente.

Suppression de ressources

Pour supprimer une ressource, procédez comme suit :

  1. Avec la commande ci-dessous, supprimez le projet pour supprimer tous ses composants (applications, travaux, etc.).
    ibmcloud code-engine project delete --name mean-stack
    
  2. Supprimez la clé de service Databases for MongoDB.
    ibmcloud resource service-key-delete mean-stack-mongodb-key
    
  3. Supprimez le service Databases for MongoDB.
    ibmcloud resource service-instance-delete mean-stack-mongodb
    

En fonction de la ressource, le service peut ne pas être supprimé immédiatement mais conservé un certain temps (7 jours par défaut). Pour récupérer la ressource, vous pouvez la supprimer de manière définitive ou la restaurer pendant la période de conservation. Pour savoir comment utiliser la récupération de ressources, consultez ce document.

Contenu associé