Contact salesFree trial
Blog

Comment optimiser l'allocation des ressources et les services de base de données en nuage pour les applications Express ?

ExpressconfigurationMariaDBGitHubl'allocation des ressourcesressources
Florent Huck
Ingénieur DevRel
Share

Vous avez peut-être lu notre précédent guide de démarrage rapide sur l'hébergement d'Express sur Upsun, qui explique en détail comment configurer rapidement et efficacement vos applications Express sur le PaaS d'Upsun. Nous avons voulu aller plus loin dans ce guide en vous expliquant comment optimiser les performances de vos applications Express en tirant parti de l'allocation flexible des ressources et des services de base de donnéesMariaDB gérés dans le nuage. Plongeons dans le vif du sujet !

Allocation flexible des ressources pour vos applications Express

Les projets Upsun sont basés sur des conteneurs, chaque service/temps d'exécution se voyant attribuer son propre conteneur, chacun disposant de ses propres ressources CPU/RAM et disque. Grâce à l'allocation flexible des ressources, vous pouvez facilement augmenter ou diminuer l'échelle en changeant simplement le stockage du conteneur et le CPU/RAM par conteneur, par environnement, à tout moment.

Lors de la première mise en place de votre environnement de production, Upsun utilisera la taille par défaut pour chacun de vos conteneurs de service/application. En général, les ressources suivantes devraient être efficaces, mais vous pouvez toujours adapter ces valeurs aux besoins de votre application :

  • 1 instance de conteneur Node.js
  • avec CPU : 0,5, 224 Mo de mémoire
  • et 0 Mo de disque/stockage

Voici comment adapter vos ressources aux besoins de votre application Express :

Comment adapter le stockage de votre conteneur et le CPU/RAM

Si vous avez besoin de définir des ressources personnalisées (CPU, mémoire et disque), la procédure est simple. Lorsque vous êtes dans la vue de l'environnement dans la console Upsun, cliquez sur configure resources que vous trouverez sur la gauche de l'interface de la console - cela peut également être fait via le CLI. A partir de là, vous pouvez adapter les ressources allouées pour répondre aux besoins de votre application.

Veuillez noter: si vous poussez une nouvelle branche Git, l'environnement Upsun correspondant utilisera les mêmes ressources que l'environnement parent.

Une fois que vous avez confirmé vos choix, Upsun prendra vos sélections, rassemblera les images précédemment construites, leur appliquera vos sélections de ressources et redéploiera votre application complète. Pour plus d'informations, consultez notre documentation sur la gestion des ressources sur Upsun.

Utilisation de la base de données open-source MariaDB

MariaDB est une base de données open-source très appréciée et un fournisseur de services de base de données gérés dans le cloud, conçus pour améliorer les performances, l'efficacité et la portée des bases de données. Vous voulez profiter de ces avantages ? Voici comment commencer à utiliser MariaDB avec vos applications Express sur Upsun :

Créer un nouvel environnement

Veuillez noter que les mêmes règles qui s'appliquent aux flux de travail Git s'appliquent aux projets Upsun : ne mettez jamais à jour votre environnement de production directement, et créez toujours une nouvelle branche pour tester vos changements locaux.

Pour mettre à jour votre application, créez une nouvelle branche Git comme d'habitude via votre terminal, implémentez les changements que vous souhaitez faire, et poussez la branche vers votre dépôt GitHub.

git switch -c add-mariadb && git push -u origin add-mariadb

Ajouter un service MariaDB à votre environnement

Pour ajouter un nouveau service MariaDB à votre application, vous devez d'abord ajouter une nouvelle définition de service dans votre fichier .upsun/config.yaml, dans la clé de premier niveau services::

# .upsun/config.yaml services : mariadb : type : mariadb:11.0

Ensuite, ajoutez un paramètre de relation dans votre application correspondant au nom du service mariadb:

# .upsun/config.yaml applications : app : relationships : mariadb : 

Poussez ensuite vos modifications vers votre référentiel :

git commit -am "Ajout du service MariadDB 11" && git push

Utiliser MariaDB dans votre application

Tout d'abord, vous devez importer un module Node.js nommé mysql2 pour interagir avec votre base de données locale. Importez-le en utilisant la commande suivante :

npm install mysql2

Mettez ensuite à jour votre fichier index.js avec ce qui suit :

const express = require('express') const app = express() const mysql = require("mysql2/promise") ; const port = (process.env.PORT || '3000') ; function openConnection() { let database_password = 'express' if (process.env.MARIADB_PASSWORD !== undefined) { database_password = process.env.MARIADB_PASSWORD } return mysql.createConnection({ host : (process.env.MARIADB_HOST || '127.0.0.1'), port : (process.env.MARIADB_PORT || '3306'), user : (process.env.MARIADB_USERNAME || 'user'), password : database_password, database : (process.env.MARIADB_PATH || 'express') }) ; } function createTable(connection) { return connection.execute('CREATE TABLE IF NOT EXISTS upsuninfo (uid INT(10) NOT NULL AUTO_INCREMENT, username VARCHAR(64) NULL DEFAULT NULL, departname VARCHAR(128) NULL DEFAULT NULL, created DATE NULL DEFAULT NULL, PRIMARY KEY (uid) ) DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;' ) ; } function insertData(connection) { return connection.execute("INSERT INTO upsuninfo (username, departname, created) VALUES ('upsun', 'Deploy Friday', '2023-09-29')" ) ; } function readData(connection) { return connection.query("SELECT * FROM upsuninfo") ; } function dropTable(connection) { return connection.execute("DROP TABLE upsuninfo") ; } // Définir la route principale. app.get('/', async function(req, res){ // Se connecter à MariaDB. const connection = await openConnection() ; await createTable(connection) ; await insertData(connection) ; const [rows] = await readData(connection) ; const droppedResult = await dropTable(connection) ; // Créer la sortie. const outputString = `Hello, World ! - Un modèle simple de framework web Express pour Upsun MariaDB Tests : * Connexion et ajout d'une ligne : - Row ID (1) : ${rows[0].uid} - Username (upsun) : ${rows[0].username} - Department (Deploy Friday) : ${rows[0].departname} - Créé (2024-04-30) : ${rows[0].created} * Supprimer une ligne : - Statut (0) : ${droppedResult[0].warningStatus}` ; res.set('Content-Type', 'text/plain') ; res.send(outputString) ; }) ; // Obtenir PORT et démarrer le serveur app.listen(port, function() { console.log(`Écoute sur le port ${port}`) }) ;

Enfin, validez vos modifications à l'aide de la commande suivante :

git commit -am "utiliser MariaDB dans index.js" && git push

Remarque: si vous avez déjà installé le CLI Upsun, vous pouvez également utiliser la commande upsun push (au lieu de git push) car elle utilisera le Git remote upsun pour pousser votre code, et ce remote est défini comme étant le même que l'origine.

Lors de l'ajout d'une nouvelle branche à votre dépôt, un nouvel environnement de prévisualisationUpsun inactif sera automatiquement créé , basé sur le code source de votre branche et les données de l'environnement parent (base de données et/ou actifs). Ce nouvel environnement n'est pas actif par défaut, ce qui signifie qu'il ne consomme pas de ressources, donc, pour le tester définitivement, vous devez l'activer, en utilisant la commande suivante :

upsun environment:activate

A la fin de l'activation, votre environnement add-mariadb sera déployé et vous pourrez y accéder via la Console en allant dans l'environnement correspondant et en cliquant sur son URL frontale ou en utilisant la commande CLI suivante :

upsun environment:url --primary

Un petit plus, créer un conteneur Docker local utilisant MariaDB

Pour pouvoir tester MariaDB localement, vous devez utiliser un moteur de base de données MariaDB local. La façon la plus rapide de le faire est d'ouvrir un tunnel SSH vers votre environnement ou d'ajouter un conteneur Docker local. Pour ajouter un conteneur Docker local, à la racine de votre projet, créez un fichier docker-compose.yaml avec ce qui suit :

version : '3.1' volumes : data : services : db : image : mariadb:latest restart : always environment : MARIADB_ROOT_PASSWORD : express MARIADB_PASSWORD : express MARIADB_USER : user MARIADB_DATABASE : express volumes : - data:/var/lib/mysql ports : - "3306:3306"

Vous pouvez ensuite démarrer le conteneur Docker correspondant :

docker-compose up -d

Ensuite, commitez votre fichier pour que d'autres coéquipiers puissent l'utiliser :

git commit -am "Docker-compose file" && git push

Comment exécuter votre application Express localement

Si vous souhaitez tester votre route localement, vous pouvez utiliser les commandes suivantes pour démarrer le serveur Node.js sur votre fichier index.js:

node index.js

Puis ouvrez dans votre navigateur le lien suivant : http://localhost:3000/. Lorsque vous êtes satisfait de vos modifications, fusionnez votre branche add-mariadb à la brancheprincipale en utilisant la procédure normale de Git :

git checkout main git merge add-mariadb git push

Votre environnement principal sera alors automatiquement déployé et vous pourrez y accéder soit en utilisant la console en allant dans l'environnement correspondant et en cliquant sur son URL frontale, soit en utilisant la commande CLI suivante :

upsun environment:url --primary

Remarque: n'oubliez pas de supprimer votre branche Git add-mariadb (localement et à distance) pour vous assurer que vous supprimez l'environnement Upsun correspondant. Ceci peut être fait en utilisant ce qui suit :

git branch -D add-mariadb git push origin --delete add-mariadb

Cela supprimera vos branches locales et distantes, et le processus d'intégration de GitHub désactivera et supprimera l'environnement Upsun correspondant.

Et juste comme ça, vous êtes prêt à jouer avec vos applications Express, maintenant avec des ressources optimisées et la magie de MariaDB. Bon appétit !

Restez au courant des dernières nouvelles sur nos médias sociaux et nos canaux communautaires. Retrouvez-nous sur Dev.to, Reddit et Discord.

Votre meilleur travail
est à l'horizon

Essai gratuit
Discord
© 2025 Platform.sh. All rights reserved.