Vielleicht kennen Sie unsere frühere Schnellstart-Anleitung zum Hosting von Express auf Upsun, in der beschrieben wird, wie Sie Ihre Express-Anwendungen schnell und effektiv auf dem Upsun PaaS einrichten können . Wir wollten in diesem Leitfaden noch einen Schritt weiter gehen und Ihnen zeigen, wie Sie die Leistung Ihrer Express-Anwendungen optimieren können, indem Sie die flexible Ressourcenzuweisung und die vonMariaDB in der Cloud verwalteten Datenbankdienste nutzen . Fangen wir gleich an!
Upsun-Projekte basieren auf Containern, wobei jedem Dienst/jeder Laufzeit ein eigener Container mit jeweils eigenen CPU/RAM- und Festplattenressourcen zur Verfügung steht. Mit der flexiblen Ressourcenzuweisung können Sie einfach den Containerspeicher und CPU/RAM pro Container, pro Umgebung, jederzeit erhöhen oder verringern.
Während der ersten Inbetriebnahme Ihrer Produktionsumgebung verwendet Upsun die Standardgröße für jeden Ihrer Dienst-/Anwendungscontainer. Im Allgemeinen sollten die folgenden Ressourcen effektiv sein, aber Sie können diese Werte immer an die Bedürfnisse Ihrer Anwendung anpassen:
Hier erfahren Sie, wie Sie Ihre Ressourcen an die Bedürfnisse Ihrer Express-Anwendung anpassen können:
Sobald Sie Ihre Auswahl bestätigt haben, wird Upsun Ihre Auswahl übernehmen, die zuvor erstellten Images sammeln, Ihre Ressourcenselektion auf sie anwenden und Ihre vollständige Anwendung erneut bereitstellen. Weitere Informationen finden Sie in unserer Dokumentation über die Verwaltung von Ressourcen auf Upsun.
MariaDB ist eine beliebte Open-Source-Datenbank und ein Anbieter von Cloud-verwalteten Datenbankdiensten, der die Leistung, Effizienz und den Umfang von Datenbanken verbessert. Möchten Sie diese Vorteile auch für sich nutzen? Hier erfahren Sie, wie Sie MariaDB mit Ihren Express-Anwendungen auf Upsun verwenden können:
Um Ihre Anwendung zu aktualisieren, erstellen Sie wie gewohnt über Ihr Terminal einen neuen Git-Zweig, implementieren die gewünschten Änderungen und pushen den Zweig in Ihr GitHub-Repository.
git switch -c add-mariadb && git push -u origin add-mariadb
Um einen neuen MariaDB-Dienst zu Ihrer Anwendung hinzuzufügen, müssen Sie zunächst eine neue Dienstdefinition in Ihre .upsun/config.
yaml-Datei einfügen , und zwar innerhalb der services:
top-level key:
# .upsun/config.yaml services: mariadb: type: mariadb:11.0
Fügen Sie dann eine Beziehungseinstellung in Ihrer Anwendung hinzu, die dem Dienstnamen mariadb
entspricht :
# .upsun/config.yaml applications: app: relationships: mariadb:
Pushen Sie dann Ihre Änderungen in Ihr Repository:
git commit -am "Hinzufügen des Dienstes MariadDB 11" && git push
Zuerst müssen Sie ein Node.js-Modul namens mysql2
importieren , um mit Ihrer lokalen Datenbank zu interagieren. Importieren Sie es mit dem folgenden Befehl:
npm install mysql2
Dann aktualisieren Sie Ihre index.
js-Datei mit folgendem:
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"); } // Definieren Sie die Hauptroute. app.get('/', async function(req, res){ // Verbinden Sie sich mit MariaDB. const connection = await openConnection(); await createTable(connection); await insertData(connection); const [rows] = await readData(connection); const droppedResult = await dropTable(connection); // Erstellen Sie die Ausgabe. const outputString = `Hallo, Welt! - Eine einfache Express-Webframework-Vorlage für Upsun MariaDB Tests: * Verbinden und Zeile hinzufügen: - Zeilen-ID (1): ${rows[0].uid} - Benutzername (upsun): ${rows[0].username} - Abteilung (Deploy Friday): ${rows[0].departname} - Erstellt (2024-04-30): ${rows[0].created} * Zeile löschen: - Status (0): ${droppedResult[0].warningStatus}`; res.set('Content-Type', 'text/plain'); res.send(outputString); }); // PORT abfragen und den Server starten app.listen(port, function() { console.log(`Listening on port ${port}`) });
Übertragen Sie schließlich Ihre Änderungen mit folgendem Befehl:
git commit -am "use MariaDB in index.js" && git push
Wenn Sie einen neuen Zweig in Ihr Repository pushen, wird automatisch eine neue, inaktive Upsun-Vorschau-Umgebungerstellt , die auf dem Quellcode Ihres Zweigs und den Daten der übergeordneten Umgebung (Datenbank und/oder Assets) basiert. Diese neue Umgebung ist standardmäßig nicht aktiv, was bedeutet, dass sie keine Ressourcen verbraucht. Um sie schließlich zu testen, müssen Sie sie mit dem folgenden Befehl aktivieren:
upsun environment:activate
Am Ende der Aktivierung wird Ihre add-mariadb-Umgebung bereitgestellt und Sie können über die Konsole darauf zugreifen, indem Sie zur entsprechenden Umgebung gehen und auf ihre vordere URL klicken oder indem Sie den folgenden CLI-Befehl verwenden:
upsun environment:url --primary
Um MariaDB lokal testen zu können, müssen Sie eine lokale MariaDB-Datenbank-Engine verwenden. Am schnellsten geht das, indem Sie entweder einen SSH-Tunnel zu Ihrer Umgebung öffnen oder einen lokalen Docker-Container hinzufügen. Um einen lokalen Docker-Container hinzuzufügen, erstellen Sie im Stammverzeichnis Ihres 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 können Sie den entsprechenden Docker-Container starten:
docker-compose up -d
Übertragen Sie anschließend Ihre Datei, damit andere Teammitglieder sie verwenden können:
git commit -am "Docker-compose file" && git push
Wenn Sie Ihre Route lokal testen möchten, können Sie die folgenden Befehle verwenden, um den Node.js-Server für Ihre index.
js-Datei zu starten :
node index.js
Und öffnen Sie dann in Ihrem Browser den folgenden Link: http://localhost:3000/. Wenn Sie mit Ihren Änderungen zufrieden sind, führen Sie Ihren Funktionszweig add-mariadb
mit dem Hauptzweigzusammen , indem Sie den normalen Git-Arbeitsablauf verwenden:
git checkout main git merge add-mariadb git push
Ihre Hauptumgebung wird dann automatisch bereitgestellt und Sie können darauf zugreifen, indem Sie entweder die Konsole verwenden, indem Sie zur entsprechenden Umgebung gehen und auf ihre vordere URL klicken, oder indem Sie den folgenden CLI-Befehl verwenden:
upsun environment:url --primary
Und schon sind Sie bereit, mit Ihren Express-Anwendungen zu spielen, die nun mit optimierten Ressourcen und MariaDB-Magie ausgestattet sind. Viel Spaß!
Bleiben Sie auf unseren Social Media- und Community-Kanälen immer auf dem Laufenden . Besuchen Sie uns auf Dev.to, Reddit und Discord.