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 !
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 :
Voici comment adapter vos ressources aux besoins de votre application Express :
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.
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 :
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
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
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
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
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
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
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.