- Fonctionnalités
- Pricing

Tu as peut-être déjà consulté notre précédent guide de démarrage rapide sur l'hébergement d'Express sur Upsun, qui explique en détail comment configurer tes applications Express rapidement et efficacement sur la plateforme PaaS d'Upsun. Eh bien, nous avons voulu aller encore plus loin avec ce guide, en te proposant des conseils pour optimiser les performances de tes applications Express grâce à l'allocation flexible des ressources et aux services de base de données MariaDB gérés dans le cloud. C'est parti !
Les projets Upsun sont basés sur des conteneurs, chaque service/environnement d'exécution disposant de son propre conteneur, chacun avec ses propres ressources CPU/RAM et de stockage disponibles. Grâce à l'allocation flexible des ressources, tu peux facilement augmenter ou réduire la capacité en modifiant simplement le stockage et les ressources CPU/RAM par conteneur, par environnement, à tout moment.
Lors du premier déploiement de ton environnement de production, Upsun utilisera la taille par défaut pour chacun de tes conteneurs de service/d'application. En général, les ressources suivantes devraient être suffisantes, mais tu peux toujours adapter ces valeurs aux besoins de ton application :
Voici comment tu peux adapter tes ressources pour répondre aux besoins de ton application Express :
Une fois tes choix confirmés, Upsun prendra en compte tes sélections, rassemblera les images précédemment construites, leur appliquera tes choix de ressources et redéploiera l'intégralité de ton application. Pour plus d'informations, consulte 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 bases 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. Tu souhaites profiter de ces avantages ? Voici comment commencer à utiliser MariaDB avec tes applications Express sur Upsun :
Pour mettre à jour ton application, crée une nouvelle branche Git comme d'habitude via ton terminal, implémente les modifications que tu souhaites apporter, puis pousse la branche vers ton dépôt GitHub.
git switch -c add-mariadb && git push -u origin add-mariadbPour ajouter un nouveau service MariaDB à ton application, tu dois d'abord ajouter une nouvelle définition de service dans ton fichier `.upsun/config.yaml`, sous la clé de niveau supérieur `services:` :
# .upsun/config.yaml
services:
mariadb:
type: mariadb:11.0Ensuite, ajoute un paramètre de relation dans ton application correspondant au nom du service mariadb :
# .upsun/config.yaml
applications:
app:
relationships:
mariadb: Enregistre ensuite tes modifications dans ton dépôt :
git commit -am "Adding MariadDB 11 service" && git pushTout d'abord, tu dois importer un module Node.js nommé mysql2 pour interagir avec ta base de données locale. Importe-le à l'aide de la commande suivante :
npm install mysql2Mets ensuite à jour ton 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");
}
// Define the main route.
app.get('/', async function(req, res){
// Connect to MariaDB.
const connection = await openConnection();
await createTable(connection);
await insertData(connection);
const [rows] = await readData(connection);
const droppedResult = await dropTable(connection);
// Make the output.
const outputString = `Hello, World! - A simple Express web framework template for Upsun
MariaDB Tests:
* Connect and add row:
- Row ID (1): ${rows[0].uid}
- Username (upsun): ${rows[0].username}
- Department (Deploy Friday): ${rows[0].departname}
- Created (2024-04-30): ${rows[0].created}
* Delete row:
- Status (0): ${droppedResult[0].warningStatus}`;
res.set('Content-Type', 'text/plain');
res.send(outputString);
});
// Get PORT and start the server
app.listen(port, function() {
console.log(`Listening on port ${port}`)
});Enfin, valide tes modifications à l'aide de la commande suivante :
git commit -am "use MariaDB in index.js" && git pushLorsque tu pousses une nouvelle branche vers ton dépôt, un nouvel environnement de test Upsun inactif est automatiquement créé, basé sur le code source de ta branche et les données de l'environnement parent (base de données et/ou ressources). Cet environnement n'est pas actif par défaut, ce qui signifie qu'il ne consomme pas de ressources. Pour le tester, tu dois donc l'activer à l'aide de la commande suivante :
upsun environment:activateÀ la fin de l'activation, ton environnement d'add-mariadbs sera déployé et tu pourras y accéder via la console en te rendant dans l'environnement correspondant et en cliquant sur son URL principale, ou en utilisant la commande CLI suivante :
upsun environment:url --primaryPour pouvoir tester MariaDB localement, tu dois utiliser un moteur de base de données MariaDB local. Le moyen le plus rapide d'y parvenir est soit d'ouvrir un tunnel SSH vers ton environnement, soit d'ajouter un conteneur Docker local. Pour ajouter un conteneur Docker local, à la racine de ton projet, crée un fichier `docker-compose.yaml` contenant 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"Tu peux ensuite démarrer le conteneur Docker correspondant :
docker-compose up -dEnsuite, valide ton fichier pour que tes collègues puissent l'utiliser :
git commit -am "Docker-compose file" && git pushSi tu veux tester ta route localement, tu peux utiliser les commandes suivantes pour démarrer le serveur Node.js à partir de ton fichier `index.js` :
node index.jsPuis ouvre dans ton navigateur le lien suivant : http://localhost:3000/. Lorsque tu es satisfait de tes modifications, fusionne ta branche de fonctionnalité add-mariadb avec la branche main en suivant le processus Git habituel :
git checkout main
git merge add-mariadb
git pushTon environnement main sera alors automatiquement déployé et tu pourras y accéder soit en utilisant la console (en te rendant dans l'environnement correspondant et en cliquant sur son URL principale), soit en utilisant la commande CLI suivante :
upsun environment:url --primaryEt voilà, tu es désormais prêt à tester tes applications Express, désormais dotées de ressources optimisées et de la magie de MariaDB. Amuse-toi bien !
Reste au courant de toutes nos dernières actualités sur nos réseaux sociaux et nos canaux communautaires. Retrouve-nous sur Dev.to, Reddit et notre communauté.
