Watch a demoFree trial
Blog

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

ExpressconfigurationMariaDBGitHubl'allocation des ressourcesressources
04 août 2025
Florent Huck
Florent Huck
Ingénieur DevRel
Partager
Cet article est également disponible en Allemande et Anglais.

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ées MariaDB gérés dans le cloud. 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/runtime 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");
}
// 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, 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évisualisation Upsun 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 main 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 réseaux 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.