- Funktionen
- Pricing

Vielleicht hast du schon unseren früheren Schnellstart-Leitfaden zum Hosten von Express auf Upsun gesehen, in dem detailliert beschrieben wird, wie du deine Express-Anwendungen schnell und effektiv auf der Upsun PaaS einrichten kannst. Nun, wir wollten diesen Leitfaden noch einen Schritt weiterführen und dir zeigen, wie du die performance deiner Express-Anwendungen optimieren kannst, indem du die flexible Ressourcenzuweisung und die cloud-verwalteten MariaDB-Datenbankdienste nutzt. Lass uns gleich loslegen!
Upsun-Projekte sind containerbasiert, wobei jeder Dienst/jede Laufzeitumgebung einen eigenen Container erhält, der jeweils über eigene CPU-, RAM- und Speicherressourcen verfügt. Dank der flexiblen Ressourcenzuweisung kannst du jederzeit ganz einfach nach oben oder unten skalieren, indem du den Containerspeicher sowie CPU und RAM pro Container und pro Umgebung anpasst.
Beim ersten Push deiner Produktionsumgebung verwendet Upsun die Standardgröße für jeden deiner Service-/Anwendungscontainer. Im Allgemeinen sollten die folgenden Ressourcen ausreichend sein, du kannst diese Werte jedoch jederzeit an die Anforderungen deiner Anwendung anpassen:
So kannst du deine Ressourcen an die Anforderungen deiner Express-Anwendung anpassen:
Sobald du deine Auswahl bestätigt hast, übernimmt Upsun deine Einstellungen, ruft die zuvor erstellten Images ab, wendet deine Ressourcenauswahl darauf an und stellt deine gesamte Anwendung neu bereit. Weitere Informationen findest du in unserer Dokumentation zur Verwaltung von Ressourcen auf Upsun.
MariaDB ist eine beliebte open source-Datenbank und ein Anbieter von cloud-verwalteten Datenbankdiensten, die darauf ausgelegt sind, die performance, Effizienz und den Umfang von Datenbanken zu verbessern. Möchtest du diese Vorteile für dich nutzen? So fängst du an, MariaDB mit deinen Express-Anwendungen auf Upsun zu verwenden:
Um deine Anwendung zu aktualisieren, erstelle wie gewohnt über dein Terminal einen neuen Git-Branch, nimm die gewünschten Änderungen vor und pushe den Branch in dein GitHub-Repository.
git switch -c add-mariadb && git push -u origin add-mariadbUm einen neuen MariaDB-Dienst zu deiner Anwendung hinzuzufügen, musst du zunächst eine neue Dienstdefinition in deine Datei „.upsun/config.yaml“ einfügen, und zwar innerhalb des obersten Schlüssels „services:“:
# .upsun/config.yaml
services:
mariadb:
type: mariadb:11.0Füge anschließend in deiner Anwendung eine Beziehungseinstellung hinzu, die dem Servicenamen mariadb entspricht:
# .upsun/config.yaml
applications:
app:
relationships:
mariadb: Schicke deine Änderungen anschließend an dein Repository:
git commit -am "Adding MariadDB 11 service" && git pushZunächst musst du ein Node.js-Modul namens „mysql2“ importieren, um mit deiner lokalen Datenbank zu interagieren. Importiere es mit dem folgenden Befehl:
npm install mysql2Aktualisiere dann deine Datei „index.js“ mit folgendem Inhalt:
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}`)
});Übertrage deine Änderungen schließlich mit dem folgenden Befehl:
git commit -am "use MariaDB in index.js" && git pushWenn du einen neuen Branch in dein Repository pushst, wird automatisch eine neue, inaktive Upsun-Preview-Umgebung erstellt, basierend auf dem Quellcode deines Branches und den Daten der übergeordneten Umgebung (Datenbank und/oder Assets). Diese neue Umgebung ist standardmäßig nicht aktiv, was bedeutet, dass sie keine Ressourcen verbraucht. Um sie schließlich zu testen, musst du sie also mit dem folgenden Befehl aktivieren:
upsun environment:activateNach Abschluss der Aktivierung wird deine „add-mariadb“-Umgebung bereitgestellt und du kannst über die Konsole darauf zugreifen, indem du zur entsprechenden Umgebung navigierst und auf deren Frontend-URL klickst oder den folgenden CLI-Befehl verwendest:
upsun environment:url --primaryUm MariaDB lokal testen zu können, musst du eine lokale MariaDB-Datenbank-Engine verwenden. Der schnellste Weg, dies zu tun, ist entweder einen SSH-Tunnel zu deiner Umgebung zu öffnen oder einen lokalen Docker-Container hinzuzufügen. Um einen lokalen Docker-Container hinzuzufügen, erstelle im Stammverzeichnis deines Projekts eine Datei „docker-compose.yaml“ mit folgendem Inhalt:
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"Anschließend kannst du den entsprechenden Docker-Container starten:
docker-compose up -dCommitte deine Datei anschließend, damit andere Teammitglieder sie nutzen können:
git commit -am "Docker-compose file" && git pushWenn du deine Route lokal testen möchtest, kannst du die folgenden Befehle verwenden, um den Node.js-Server in deiner Datei „index.js“ zu starten:
node index.jsÖffne anschließend in deinem Browser den folgenden Link: http://localhost:3000/. Wenn du mit deinen Änderungen zufrieden bist, füge deinen Feature-Branch „add-mariadb“ mithilfe des normalen Git-Workflows in den Branch „main“ ein:
git checkout main
git merge add-mariadb
git pushDeine „main“-Umgebung wird dann automatisch bereitgestellt und du kannst darauf zugreifen, indem du entweder in der Konsole zur entsprechenden Umgebung wechselst und auf deren Front-URL klickst oder den folgenden CLI-Befehl verwendest:
upsun environment:url --primaryUnd schon kannst du mit deinen Express-Anwendungen loslegen – jetzt komplett mit optimierten Ressourcen und MariaDB-Magie. Viel Spaß!
Bleib über unsere Social-Media- und Community-Kanäle über alle Neuigkeiten auf dem Laufenden. Besuche uns auf Dev.to, Reddit und in unserer Community.
