Node.js-Anwendung erstellen und bereitstellen

Das Erstellen einer Node.js-Anwendung ist nur der erste Teil des Softwareentwicklungszyklus. Damit sie in einer Live-Umgebung zugänglich, leistungsstark und robust ist, kommt es auf die Bereitstellung der Anwendung an. Bei der Bereitstellung moderner Webanwendungen muss eine Architektur ausgewählt werden, die zu Ihrem Trafficprofil, Ihrer Lebenszyklusphase und Ihrem Ressourcenbudget passt.

Ganz gleich, ob Sie einen KI-gestützten Full-Stack-Prototyp starten oder einen produktionsreifen Backend-Dienst bereitstellen möchten – moderne Cloud-Umgebungen bieten sowohl automatisierte als auch containerisierte Pfade. In diesem Leitfaden werden die Kernkonzepte der Node.js-Webarchitektur behandelt, wichtige Überlegungen zur Bereitstellung erläutert und Schritt für Schritt beschrieben, wie Sie eine Node.js-Anwendung auf einer verwalteten Infrastruktur mit kostenlosen Kontingenten erstellen und bereitstellen.

Was ist die Node.js-Laufzeit?

Node.js ist eine plattformübergreifende Open-Source-JavaScript-Laufzeitumgebung, die auf der Chrome V8-JavaScript-Engine basiert. Damit kann JavaScript serverseitig außerhalb des Webbrowsers ausgeführt werden, sodass Entwickler einheitliche Full-Stack-Codebasen mit einer einzigen Programmiersprache schreiben können.

Im Gegensatz zu herkömmlichen Multithread-Webservern, die für jede gleichzeitige Verbindung einen isolierten Betriebssystem-Thread erzeugen, arbeitet Node.js mit einem ereignisgesteuerten, nicht blockierenden Single-Thread-E/A-Modell. Diese Architektur macht Node.js schlank und effizient für die Verarbeitung Tausender gleichzeitiger Verbindungen – wie RESTful APIs, Echtzeit-Messaging, Streamingdienste und KI-Agenten-Orchestratoren.

Herkömmliche Node.js-Bereitstellung im Vergleich zu serverlosen Containerplattformen

Bei der Vorbereitung der Bereitstellung eines Node.js-Backends hat die Auswahl der richtigen Compute-Umgebung direkten Einfluss auf den Wartungsaufwand, die Skalierungsgeschwindigkeit und die Kosteneffizienz.

Funktion

Virtuelle Maschinen (IaaS/VPS)

PaaS-/Buildpack-Hosting

Moderne serverlose Container

Infrastrukturverwaltung

Manuelle Betriebssystem-Patches, Firewallverwaltung und Laufzeitupdates

Vollständig verwaltete Plattformebene mit Laufzeitsperren des Anbieters

Vollständig verwaltete Infrastruktur; keine Betriebssystemverwaltung

Skalierungsmechanismus

Messwertbasiertes VM-Autoscaling (das Hochfahren von Instanzen dauert Minuten)

Autoscaling nach Instanzanzahl oder Worker-Limits

Anfragegesteuertes sofortiges Autoscaling, einschließlich Skalierung auf null

Verpackungsformat

Rohquelldateien, systemd-Dienste oder PM2-Prozessmanager

Git-Push-Repository-Einbindung mit automatisierten Buildpacks.

Standard-OCI-/Docker-Container-Images

Kostenprofil für inaktive Ressourcen

Abrechnung rund um die Uhr, unabhängig vom eingehenden HTTP-Traffic

Oft ist ein Mindestpreis für die Basisinstanz erforderlich.

Abrechnung erfolgt sekundengenau während der aktiven Anfrageverarbeitung

Portabilität

Hohe Portabilität, aber hohes Risiko von Umgebungsabweichungen

Geringe Portabilität; an Plattformkonventionen gebunden

Hohe Portabilität; in jeder Umgebung wird ein identischer Container ausgeführt

Funktion

Virtuelle Maschinen (IaaS/VPS)

PaaS-/Buildpack-Hosting

Moderne serverlose Container

Infrastrukturverwaltung

Manuelle Betriebssystem-Patches, Firewallverwaltung und Laufzeitupdates

Vollständig verwaltete Plattformebene mit Laufzeitsperren des Anbieters

Vollständig verwaltete Infrastruktur; keine Betriebssystemverwaltung

Skalierungsmechanismus

Messwertbasiertes VM-Autoscaling (das Hochfahren von Instanzen dauert Minuten)

Autoscaling nach Instanzanzahl oder Worker-Limits

Anfragegesteuertes sofortiges Autoscaling, einschließlich Skalierung auf null

Verpackungsformat

Rohquelldateien, systemd-Dienste oder PM2-Prozessmanager

Git-Push-Repository-Einbindung mit automatisierten Buildpacks.

Standard-OCI-/Docker-Container-Images

Kostenprofil für inaktive Ressourcen

Abrechnung rund um die Uhr, unabhängig vom eingehenden HTTP-Traffic

Oft ist ein Mindestpreis für die Basisinstanz erforderlich.

Abrechnung erfolgt sekundengenau während der aktiven Anfrageverarbeitung

Portabilität

Hohe Portabilität, aber hohes Risiko von Umgebungsabweichungen

Geringe Portabilität; an Plattformkonventionen gebunden

Hohe Portabilität; in jeder Umgebung wird ein identischer Container ausgeführt

Wichtige Überlegungen beim Erstellen einer Node.js-Anwendung

Bei der Entwicklung einer produktionsreifen Node.js-Anwendung müssen Architekturmuster berücksichtigt werden, die Engpässe verhindern und die Verfügbarkeit sicherstellen:

  • Zustandsloser Anwendungsstatus: Moderne serverlose Plattformen starten und beenden Containerinstanzen dynamisch als Reaktion auf eingehenden Traffic. Vermeiden Sie es, den Status von Nutzersitzungen, hochgeladene Mediendateien oder Hintergrundwarteschlangen im lokalen Containerspeicher oder auf lokalen Laufwerkspfaden zu speichern, da Dateien, die auf temporäre Containerlaufwerke geschrieben werden, bei der erneuten Bereitstellung oder beim Herunterskalieren verschwinden. Verwenden Sie dedizierte verwaltete Dienste wie Cloud Firestore, Cloud SQL for PostgreSQL oder Cloud Storage für den persistenten Zustand.
  • Umgebungsvariablen und Secret-Isolierung: Das Hardcodieren von API-Schlüsseln, Datenbankanmeldedaten oder Secret Keys in die Versionsverwaltung führt zu kritischen Sicherheitslücken. Isolieren Sie Laufzeitkonfigurationen immer in Umgebungsvariablen (process.env) und schleusen Sie sie sicher auf der Containerlaufzeitebene ein.
  • Portbindung und Systemdiagnosen: Serverlose Containerumgebungen leiten HTTP-Traffic weiter, indem sie einen Standardzielport wie die Umgebungsvariable PORT (normalerweise Port 8080) einfügen. Ihr Node.js-Server muss dynamisch auf process.env.PORT || 8080 hören, um Systemdiagnosen und Bereitschaftsprüfungen zu bestehen.
  • Ordnungsgemäßes Herunterfahren und Signal-Trapping: Node.js-Anwendungen sollten die Betriebssystemsignale SIGTERM und SIGINT abfangen. Wenn ein Infrastruktur-Autoscaler ein Herunterskalieren einleitet, sorgt die Verarbeitung dieser Signale dafür, dass die Verarbeitung vorhandener HTTP-Anfragen abgeschlossen wird, bevor die Datenbankverbindungen geschlossen und der Container beendet wird.

Node.js-Anwendung erstellen und bereitstellen

Sie können Node.js-Anwendungen über zwei primäre Workflows erstellen und bereitstellen: Schnelles KI-gestütztes Prototyping (keine lokale Einrichtung erforderlich) oder Standardmäßige containerbasierte Bereitstellung (für vorhandene Codebasen).

Pfad A: Schnelles Prototyping, z. B. mit dem Build-Modus von AI Studio und der Starter-Stufe (kostenlose Bereitstellung)

Für Rapid Prototyping und KI-Anwendungen können Entwickler im Build-Modus von Google AI Studio Full-Stack-Node.js-Architekturen in natürlicher Sprache beschreiben und in Cloud Run bereitstellen, ohne lokale Befehlszeilentools oder obligatorische Abrechnungseinrichtungen.

Schritt 1: Anwendung im Build-Modus initialisieren

  1. Rufen Sie Google AI Studio auf und wechseln Sie in den Build-Modus.
  2. Geben Sie einen Prompt ein, der die erforderliche Geschäftslogik und Frontend-Oberfläche beschreibt (z. B. „Erstelle ein Dashboard zur Inventarverfolgung mit einem Node.js-Backend und einer persistenten Aufgabenverwaltung“).
  3. Der integrierte KI-Agent generiert die Anwendungsdateien, konfiguriert die Serverrouten, installiert relevante npm-Abhängigkeiten und startet eine interaktive Vorschau.

Schritt 2: Integrierte Daten und Authentifizierung konfigurieren

  • Für nichtflüchtigen Speicher: Wenn Ihr Prompt Datenspeicher erfordert, aktivieren Sie Cloud Firestore oder Cloud SQL for PostgreSQL (Developer Edition). AI Studio entwirft automatisch Ihr Schema, Ihre Modelle und Ihre Clientverbindungsdateien.
  • Für die Nutzeridentität: Schalten Sie die Firebase-Authentifizierung ein, um vorkonfigurierte Google Log-in-Abläufe zu aktivieren, ohne separate OAuth-Weiterleitungs-Handler manuell einrichten zu müssen.

Schritt 3: In verwaltetem Cloud Run veröffentlichen

  1. Klicken Sie oben auf der Benutzeroberfläche auf Veröffentlichen > Erste Schritte > App veröffentlichen.
  2. Wählen Sie die gewünschte Bereitstellungsregion aus.
  3. Geben Sie eine benutzerdefinierte <user-defined>.ai.studio-URL für Ihre Anwendung an und veröffentlichen Sie sie.
  4. Die Plattform verpackt Ihren Container, stellt die zugrunde liegende Rechenleistung bereit und liefert in Sekundenschnelle eine Live-HTTPS-Produktions-URL vom Typ <user-defined>.ai.studio.

Pfad B: Benutzerdefinierte Node.js-Anwendung wie Docker und Cloud Run bereitstellen

Für bereits vorhandene Codebasen und benutzerdefinierte Mikrodienste können Sie Ihre Node.js-Anwendung in einen OCI-konformen Container verpacken und direkt in Cloud Run bereitstellen.

Schritt 1: Node.js-Servercode strukturieren

Erstellen Sie einen minimalen HTTP-Server mit Express, Fastify oder Standard-Node.js-Bibliotheken (index.js):

  • JavaScript
Wird geladen...

 Hinweis: Cloud Run fügt die Umgebungsvariable PORT automatisch zur Laufzeit ein. Der Fallback || 8080 im obigen Code ist in erster Linie enthalten, um einfache lokale Tests auf Ihrem Computer vor der Bereitstellung zu ermöglichen.

Schritt 2: Sicheres, mehrstufiges Dockerfile erstellen

Verpacken Sie Ihre Anwendung mit einem mehrstufigen Build, um ein minimales, sicheres Produktions-Image zu erhalten.

Best Practice: Erstellen Sie eine .dockerignore-Datei in Ihrem Stammverzeichnis und fügen Sie node_modules und .env hinzu. So wird verhindert, dass lokale Entwicklungsdateien versehentlich in Ihr Container-Image eingebunden werden, sodass es sauber und sicher bleibt.

Erstellen Sie eine Datei mit dem Namen „Dockerfile“ im Stammverzeichnis:

  • Dockerfile
Wird geladen...

Schritt 3: In Cloud Run bereitstellen

Führen Sie die Bereitstellung mit der Google Cloud CLI aus Ihrem lokalen Stammordner aus. Sie können optional auch eine benutzerdefinierte URL im Format <user-defined>.cloud.run für Ihre Anwendung erstellen:

  • Bash
Wird geladen...

Wenn Sie eine benutzerdefinierte Domain nachträglich zuordnen möchten, verwenden Sie:

  • Bash
Wird geladen...

Preisgestaltung für die kostenlose Stufe und die Starter-Stufe

Wenn Sie wissen, wie kostenlose Kontingente funktionieren, können Sie Ihre Node.js-Anwendung zuverlässig prototypisieren und skalieren:

Stufentyp

Compute- und Ressourcenkontingente

Anforderungen/Limits

Google Cloud Starter-Stufe (Prototyping)

• Cloud Run: Bis zu zwei aktive Webanwendungen

• Cloud Firestore: 1 GiB Speicher, 50.000 Lesevorgänge/Tag, 40.000 Schreibvorgänge/Tag

• Cloud SQL: PostgreSQL Developer Edition (Skalierung auf null)

• Firebase Auth: Google-Anmeldung enthalten

• Gültiges Google-Konto

• Weder Kreditkarte noch Rechnungskonto erforderlich

• Sperre für einzelne Bereitstellungsregion

Standardmäßige kostenlose Stufe von Google Cloud (Standardkonto)

• Cloud Run: 2 Millionen Anfragen/Monat, 180.000 vCPU-Sekunden/Monat, 360.000 GiB-Sekunden/Monat, 1 GB ausgehender Traffic in Nordamerika/Monat

• Startguthaben in Höhe von 300 $ für die ersten 90 Tage



• Verknüpftes Cloud-Rechnungskonto

• Vollständiger Zugriff auf die Plattform-API in allen Regionen

Stufentyp

Compute- und Ressourcenkontingente

Anforderungen/Limits

Google Cloud Starter-Stufe (Prototyping)

• Cloud Run: Bis zu zwei aktive Webanwendungen

• Cloud Firestore: 1 GiB Speicher, 50.000 Lesevorgänge/Tag, 40.000 Schreibvorgänge/Tag

• Cloud SQL: PostgreSQL Developer Edition (Skalierung auf null)

• Firebase Auth: Google-Anmeldung enthalten

• Gültiges Google-Konto

• Weder Kreditkarte noch Rechnungskonto erforderlich

• Sperre für einzelne Bereitstellungsregion

Standardmäßige kostenlose Stufe von Google Cloud (Standardkonto)

• Cloud Run: 2 Millionen Anfragen/Monat, 180.000 vCPU-Sekunden/Monat, 360.000 GiB-Sekunden/Monat, 1 GB ausgehender Traffic in Nordamerika/Monat

• Startguthaben in Höhe von 300 $ für die ersten 90 Tage



• Verknüpftes Cloud-Rechnungskonto

• Vollständiger Zugriff auf die Plattform-API in allen Regionen

Meistern Sie Ihre geschäftlichen Herausforderungen mit Google Cloud

Neukunden erhalten ein Guthaben im Wert von 300 $ für Google Cloud.
Sprechen Sie mit einem Google Cloud-Vertriebsexperten, um Ihre besonderen Herausforderungen im Detail zu besprechen.

Best Practices für die Ausführung von Node.js in serverlosen Umgebungen

  1. Kaltstarts mit schlanken Abhängigkeiten optimieren: Entfernen Sie nicht verwendete Entwicklungspakete (npm prune --production) und bündeln Sie Servercode mit modernen Modul-Tree-Shakern (wie esbuild oder tsup), um die Image-Größe zu verringern und die Containerinitialisierung zu beschleunigen.
  2. Maximale Anzahl an Instanzen konfigurieren: Wenn Sie von einer Sandbox zu einem Live-Produktionsprojekt wechseln, geben Sie einen Grenzwert für die Nebenläufigkeit an und legen Sie „--max-instances“ fest (z. B. „--max-instances 5“), um sicherzustellen, dass unerwartete Traffic-Spitzen das Zielbetriebsbudget nicht überschreiten.
  3. Logs strukturell beibehalten: Streamen Sie Logs im strukturierten JSON-Format an stdout und stderr. Verwaltete Logging-Systeme parsen JSON-Objekte automatisch, sodass Sie nach HTTP-Statuscodes, Schweregraden und Ausführungslatenz filtern können.
  4. Native Systemdiagnosen verwenden: Implementieren Sie eindeutige HTTP-Endpunktprüfungen (z. B. /healthz), die die Downstream-Datenbankverbindung prüfen, bevor sie die Bereitschaft für eingehende Routing-Proxys signalisieren.

Gleich loslegen

Profitieren Sie von einem Guthaben über 300 $, um Google Cloud und mehr als 20 immer kostenlosen Produkten kennenzulernen.

Google Cloud