Anwendungshosting mit Google Cloud

Google Cloud bietet eine Vielzahl von Optionen für das Hosting von Anwendungen. Sehen Sie sich die unten aufgeführten Tabellen an und finden Sie heraus, welche Option Ihren Anforderungen am besten entspricht.


Anwendungsfälle

Sind Sie nicht ganz sicher, womit Sie beginnen sollen? Unten können Sie sich einige der üblichen Szenarien ansehen.
HTTP-Dienste und Back-End-Anwendungen
Web-Frameworks, Mikrodienste
Beispiele:
  • Flask
  • Django
  • Express.js
  • Symfony
  • Spring Boot
App Engine-Standardumgebung
  • Für kurzfristigen Bedarf skalierbar
  • Sie zahlen nur für die tatsächliche Nutzung
  • Unterstützt API-Endpunkte
Google App Engine Dokumentation
Ereignisgesteuerte Anwendungen und Datenverarbeitungsanwendungen
Nutzergenerierte Daten und Ereignisse bearbeiten
Beispiele:
  • Als Reaktion auf einen GitHub-Commit einen Kommentar in einem Slack-Kanal posten
  • Statistische Analysen durchführen
  • Miniaturansichten für Bilder erstellen
Cloud Functions
  • Für ereignisgesteuerte Arbeitslasten konzipiert
  • Für kurzfristigen Bedarf skalierbar
  • Minimaler Konfigurationsaufwand
Google Cloud Functions Kurzanleitung
Containerbasierte Anwendungen und Dienste
Paketerstellung für Multi-Cloud-Infrastruktur nach Branchenstandards
Beispiele:
  • Benutzerdefinierte Laufzeitumgebungen wie Rust, Kotlin, C++ und Bash
  • Legacy-Webanwendungen in Sprachen wie Python 2.7 und Java 7
Cloud Run (vollständig verwaltet)
  • Unterstützt dem Branchenstandard entsprechende Docker-Container
  • Skaliert Ihre Containeranwendung automatisch
  • Benutzerdefinierte Binärprogramme und Systemabhängigkeiten
  • Unterstützt API-Endpunkte
Cloud Run (vollständig verwaltet) Kurzanleitung
Lokale und monolithische Arbeitslasten
Rohberechnungen, um die bestehenden Infrastrukturanforderungen zu erfüllen
Beispiele:
  • Relationale Datenbanken, SAP HANA
  • CRM-Systeme
  • Legacy-ERP-Systeme
Compute Engine
Google Compute Engine Tutorials
Selbstgehostete, skalierbare Infrastruktur
Selbstverwaltetes Hosting mit serverloser Skalierbarkeit
Beispiele:
  • Containeranwendungen, die kundenspezifische Hardware und Software erfordern (Betriebssystem, GPUs)
  • Vorhandene containerisierte, zustandslose Anwendungen
  • Anwendungen in Kubernetes Engine, die von einer Skalierung auf null profitieren können
Cloud Run for Anthos in Google Cloud
  • Paketerstellung von Docker-Containern nach Branchenstandard
  • Hoch konfigurierbar für Legacy-Arbeitslasten und -Konfigurationen
  • Skalierung nach Bedarf
Cloud Run for Anthos auf der GCP Kurzanleitung
β
Für Beta-Software gibt es kein SLA. Sie ist für Produktionsarbeitslasten unter Umständen nicht geeignet.

Hostingoptionen

Viele Arbeitslasten haben spezifische technische Anforderungen. Die Plattformen sind nach Abstraktionsgrad sortiert.
Compute Engine Kubernetes Engine (GKE) Cloud Run for Anthos in Google Cloud Cloud Run (vollständig verwaltet) Flexible App Engine-Umgebung App Engine-Standardumgebung Cloud Functions
Deployment-Format
VM-Image
Cluster
Container
Container

Anwendung

oder

Container

Anwendung
Funktion
Benutzerdefinierte URLs
Skalierung auf null
~
1
Kostenlose Stufe
Nichtflüchtige Speicher
2
WebSockets
~
3
β
β
Ausführbarkeit mit jeder Sprache
Zeitüberschreitung bei Anfrage
15 Minuten
60 Minuten
60 Minuten
1 Minute
9 Minuten
Hintergrundprozesse
~
4
TPU-/GPU-Zugriff
~
3
VPC-Konnektivität
1
Cloud Run for Anthos in Google Cloud skaliert die Pod-Anzahl auf null. Die Anzahl der Knoten pro Cluster kann jedoch nicht auf null skaliert werden. Diese Knoten werden Ihnen in Rechnung gestellt, wenn keine Anfragen vorhanden sind.
2
Daten aus Container-Instanzen in GKE gehen beim Herunterfahren verloren. Nichtflüchtiger Compute Engine-Speicher kann jedoch auf Containerinstanzen in GKE bereitgestellt werden.
3
Die Verwendung von WebSockets und der TPU-/GPU-Zugriff sind mit Cloud Run for Anthos in Google Cloud zwar technisch möglich, werden jedoch nicht offiziell unterstützt.
4
Die App Engine-Standardumgebung unterstützt Hintergrundaufgaben für die grundlegende und manuelle Skalierung.
β
Für Beta-Software gibt es kein SLA. Sie ist für Produktionsarbeitslasten unter Umständen nicht geeignet.

Wichtige Begriffe

Deployment-Format

Wie wird Ihr Code bei der Bereitstellung auf einer bestimmten Plattform verpackt?

  • VM-Images: Snapshots eines gesamten Dateisystems, einschließlich des zugrunde liegenden Betriebssystems
  • Container: mobile, plattformübergreifende Dateisysteme, die vom zugrunde liegenden Betriebssystem getrennt sind
  • Anwendungen: ein Dienst in einem Verzeichnis mit einem oder mehreren Anwendungsfällen
  • Funktionen: individuelle Code-Snippets, die jeweils einem einzelnen Anwendungsfall entsprechen

Benutzerdefinierte URLs

Können Sie mehrstufige URL-Pfade (z. B. /abc/def) erstellen und/oder Ihren eigenen Domainnamen verwenden?

Nichtflüchtiger Speicher

Kann der Laufwerkstatus beim Herunterfahren einer Instanz gespeichert werden oder müssen Langzeitdaten außerhalb der Instanz gespeichert werden?

Skalierung auf null

Kann dieses Produkt auf null Instanzen herunterskaliert und kann somit vermieden werden, dass Zeiträume, in denen keine Anfragen eingehen, in Rechnung gestellt werden?

WebSockets

Unterstützt dieses Produkt das Websocket-Protokoll?

Ausführbarkeit mit jeder Sprache

Kann dieses Produkt Code in beliebigen Programmiersprachen ausführen?

Zeitüberschreitung bei Anfrage

Wie lange wartet die Plattform maximal auf eine Antwort vom Code der Anwendung?

Hintergrundprozesse

Kann dieses Produkt laufende Hintergrundvorgänge ausführen, wenn keine Anfragen eingehen?

GPUs und TPUs nutzen

Unterstützt dieses Produkt die Hardwarebeschleunigung für GPU-/TPU-optimierte Arbeitslasten?

VPC-Konnektivität

Kann dieses Produkt auf Ressourcen einer Virtual Private Cloud zugreifen?