Websites bereitstellen

Dieser Artikel beschreibt, wie eine Website in der Google Cloud Platform (GCP) gehostet wird. Die GCP ist eine robuste, flexible, zuverlässige und skalierbare Plattform für die Bereitstellung von Websites. Die GCP wurde unter Verwendung derselben Infrastruktur erstellt, die Google auch zur Bereitstellung der Inhalte von Websites wie Google.com, YouTube und Gmail nutzt. Sie können zur Bereitstellung der Inhalte für Ihre Website den für Ihre Bedürfnisse am besten geeigneten Infrastrukturtyp und das am besten geeignete Infrastrukturdesign wählen.

Dieser Artikel kann in den folgenden Fällen für Sie nützlich sein:

  • Sie sind mit der Erstellung einer Website vertraut und haben bereits einmal eine Web-Serving-Infrastruktur erstellt und angewendet
  • Sie möchten evaluieren, ob und wie Sie Ihre Website zur GCP migrieren

Wenn Sie eine einfache Website erstellen möchten, bietet es sich an, Google Sites zu verwenden. Dies ist ein Tool zur Erstellung strukturierter Wiki- und Webseiten. Weitere Informationen erhalten Sie in der Google Sites-Hilfe.

Optionen auswählen

Wenn Sie noch nicht mit GCP gearbeitet haben, ist es sinnvoll, zuerst die Art von Technologie einzusetzen, mit der Sie bereits vertraut sind. Beispiel: Wenn Sie Ihre Website derzeit auf Hardwareservern oder virtuellen Maschinen (VMs) hosten, vielleicht bei einem anderen Cloudanbieter oder auf Ihrer eigenen Hardware, bietet Ihnen Compute Engine ein passendes Modell. Wenn Sie bereits ein PaaS-Angebot (Platform as a Service) wie Heroku oder Engine Yard nutzen, ist App Engine wahrscheinlich der beste Ausgangspunkt.

Nachdem Sie sich mit der GCP besser vertraut gemacht haben, können Sie die vielfältigen Produkte und Dienste erkunden, die die GCP zur Verfügung stellt. Wenn Sie beispielsweise mit Compute Engine begonnen haben, können Sie die Fähigkeiten Ihrer Website mithilfe von Google Kubernetes Engine (GKE) ausbauen oder einige oder alle Funktionen zu App Engine migrieren.

Die folgende Tabelle bietet einen Überblick über Ihre Hosting-Optionen in GCP:

Option Produkt Datenspeicherung Load-Balancing Skalierbarkeit Logging
Statische Website

Cloud Storage

Firebase Hosting

Cloud Storage-Bucket Automatisch
Virtual Machines Compute Engine

Cloud SQL API, Cloud Storage API, Cloud Datastore API und Cloud Bigtable API oder Sie verwenden einen anderen, externen Speicheranbieter

Festplattenbasierte nichtflüchtige Speicher, nichtflüchtige Standardspeicher genannt, sowie nichtflüchtige SSD-Laufwerke

HTTPS

TCP-Proxy

SSL-Proxy

IPv6-Beendigung

Netzwerk

Regionenübergreifend

Intern

Automatisch mit verwalteten Instanzgruppen

Stackdriver Logging

Stackdriver Monitoring

Monitoring-Konsole

Containers GKE Wie Compute Engine, interagiert jedoch unterschiedlich mit nichtflüchtigen Speichern Netzwerk
HTTPS
Cluster Autoscaler

Stackdriver Logging

Stackdriver Monitoring

Monitoring-Konsole

Verwaltete Plattform App Engine Von Google ausgeführt Von Google ausgeführt Von Google ausgeführt Von Google ausgeführt

Dieser Artikel stellt die wichtigsten Technologien vor, die Sie für das Web-Serving auf der GCP nutzen können, und gibt Ihnen einen Einblick in ihre Funktionsweise. Er enthält Links zu vollständigen Dokumentationen, Anleitungen und Lösungsartikeln, mit denen Sie ein tieferes Verständnis aufbauen können, wenn Sie bereit sind.

Die Kosten überblicken

Angesichts der Vielzahl von Variablen und unterschiedlichen Implementierungen würde es den Rahmen dieses Artikels sprengen, eine spezifische Kostenberatung zu liefern. Informationen zum besseren Verständnis der Preise für die GCP finden Sie in der Preisübersicht. Die Preisgestaltung für einzelne Dienste können Sie dem Abschnitt zu Produktpreisen entnehmen. Darüber hinaus stehen verschiedene Tools zum Einschätzen der Kosten für die Nutzung von GCP zur Verfügung.

  • Mit dem Preisrechner können Sie die mit Ihrer GCP-Nutzung verbundenen Kosten abschätzen. Sie können Details zu den Diensten angeben, die Sie nutzen möchten, und dann eine Preisschätzung erhalten.
  • Mit dem TCO-Tool ermitteln Sie die relativen Kosten für die Ausführung Ihrer Computing-Arbeitslast in der GCP. Das Tool bietet mehrere Eingabemöglichkeiten für die Kostenmodellierung, die sich anpassen lassen. Danach werden die geschätzten Kosten für GCP und für Amazon Web Services (AWS) verglichen. Dieses Tool erfasst nicht alle Komponenten einer typischen Anwendung wie z. B. Speicher und Netzwerk.

Domain Name Services einrichten

In der Regel werden Sie einen Domainnamen für Ihre Website registrieren. Sie können auf einen öffentlichen Domainnamenregistrator wie Google Domains zurückgreifen, um einen eindeutigen Namen für Ihre Website zu registrieren. Wenn Sie Ihr eigenes Domain Name System (DNS) verwenden und umfassend kontrollieren möchten, können Sie Cloud DNS als DNS-Anbieter nutzen. Die Cloud-DNS-Dokumentation enthält eine Kurzanleitung für den schnellen Einstieg.

Wenn Sie bereits einen DNS-Anbieter haben, den Sie nutzen möchten, müssen Sie in der Regel ein paar Datensätze bei diesem Anbieter erstellen. Für einen Domainnamen wie example.com erstellen Sie einen Datensatz A bei Ihrem DNS-Anbieter. Für die Subdomain www.example.com erstellen Sie einen CNAME-Datensatz für www, um sie auf die Domain example.com zu verweisen. Der Datensatz A ordnet einer IP-Adresse einen Hostnamen zu. Der Datensatz CNAME erstellt einen Alias für den Datensatz A.

Wenn Ihr Domainnamenregistrator zugleich Ihr DNS-Anbieter ist, sind vermutlich keine weiteren Schritte erforderlich. Wenn Sie für die Anmeldung und für DNS verschiedene Anbieter nutzen, müssen Sie dafür sorgen, dass Ihrer Domain beim Domainnamenregistrator die richtigen Nameserver zugeordnet sind.

Nachdem Sie die DNS-Änderungen vorgenommen haben, kann es je nach der Gültigkeitsdauer (TTL) in Ihrer Zone eine Weile dauern, bis die Datensatzaktualisierungen umgesetzt sind. Bei neuen Hostnamen werden die Änderungen schnell wirksam, da die DNS-Resolver keine vorherigen Werte zwischengespeichert haben und den DNS-Anbieter kontaktieren können, um die erforderlichen Informationen zum Weiterleiten von Anfragen abzurufen.

Statische Website hosten

Der einfachste Weg zur Bereitstellung von Websiteinhalten über HTTP(S) ist das Hosting von statischen Webseiten. Statische Webseiten werden unverändert gehostet, d. h. so, wie sie geschrieben wurden (in der Regel in HTML). Eine statische Website ist eine gute Wahl, wenn die Seiten Ihrer Website nach der Veröffentlichung nur selten geändert werden. Dies gilt beispielsweise für Blogposts oder für die Seiten der Website eines kleinen Unternehmens. Statische Webseiten bieten vielfältige Gestaltungsmöglichkeiten. Soll Ihre Website jedoch komplexe Interaktionen mit Nutzern über serverseitigen Code ermöglichen, sollten Sie die weiteren Optionen in Betracht ziehen, die im vorliegenden Artikel erläutert werden.

Statische Website mit Cloud Storage hosten

Für das Hosting einer statischen Website in Cloud Storage müssen Sie einen Cloud Storage-Bucket erstellen, den Inhalt hochladen und Ihre neue Website testen. Sie können Daten direkt über storage.googleapis.com bereitstellen. Alternativ haben Sie die Möglichkeit, zu prüfen, ob Sie Inhaber der Domain sind, und dann Ihren Domainnamen zu verwenden.

Sie können Ihre statischen Webseiten auf beliebige Weise erstellen. Beispielsweise haben Sie die Möglichkeit, Seiten manuell in HTML und CSS anzulegen. Oder Sie nutzen einen Generator für statische Websites wie Jekyll, Ghost oder Hugo, um Inhalte zu erstellen. Wenn Sie mit Generatoren für statische Websites eine statische Website erstellen, schreiben Sie in Markdown und stellen Vorlagen und Tools bereit. Websitegeneratoren stellen in der Regel einen lokalen Webserver bereit, über den Sie eine Vorschau Ihrer Inhalte aufrufen können.

Sobald Ihre statische Website funktionsbereit ist, können Sie die statischen Seiten mit der von Ihnen bevorzugten Vorgehensweise aktualisieren. Dies kann eine ganz einfache Methode wie das manuelle Kopieren einer aktualisierten Seite in den Bucket sein. Sie können auch einen stärker automatisierten Ansatz auswählen, bei dem Sie Ihre Inhalte beispielsweise im GitHub speichern und dann einen Webhook verwenden, um ein Skript zur Aktualisierung des Buckets auszuführen. In einem höher entwickelten System könnte ein Tool für Continuous-Integration/Continuous-Delivery (CI/CD) wie Jenkins zur Aktualisierung des Inhalts im Bucket zum Einsatz kommen. Jenkins bietet ein Cloud Storage-Plug-in, mit dem für Google Cloud Storage Uploader ein Post-Build-Schritt zur Veröffentlichung von Build-Artefakten in Cloud Storage bereitgestellt werden kann.

Bei einer Webanwendung, die statischen Inhalt oder von Nutzern hochgeladene statische Medien bereitstellen soll, kann der Einsatz von Cloud Storage eine kostengünstige und effiziente Möglichkeit zum Hosten und Bereitstellen dieser Inhalte bieten. Gleichzeitig kann die Anzahl der dynamischen Anfragen reduziert werden, die an Ihre Webanwendung gerichtet werden.

Cloud Storage kann darüber hinaus die von Nutzern eingereichten Inhalte direkt entgegennehmen. Mit diesem Feature können Nutzer große Mediendateien direkt und sicher ohne Proxyvermittlung durch Ihre Server hochladen.

Informationen zur optimalen Leistung Ihrer statischen Website finden Sie unter Best Practices für Cloud Storage.

Weitere Informationen finden Sie auf den folgenden Seiten:

Statische Website mit Firebase Hosting bereitstellen

Firebase Hosting stellt schnelles und sicheres statisches Hosting für Ihre Webanwendung bereit. Mit Firebase Hosting können Sie Webanwendungen und statische Inhalte mit einem einzigen Befehl in einem globalen Content Delivery Network (CDN) bereitstellen.

Der Einsatz von Firebase Hosting bietet u. a. die folgenden Vorteile:

  • SSL ist ohne zusätzlichen Konfigurationsaufwand in Firebase Hosting eingebunden. In benutzerdefinierten Domains werden SSL-Zertifikate kostenlos bereitgestellt.
  • Alle Ihre Inhalte werden über HTTPS bereitgestellt.
  • Ihre Inhalte werden von den CDN-Rändern weltweit für Ihre Nutzer bereitgestellt.
  • Mit der Firebase CLI ist Ihre Anwendung in kürzester Zeit einsatzbereit. Mit Befehlszeilentools binden Sie Deployment-Ziele in Ihren Build-Prozess ein.
  • Sie können auf Releaseverwaltungsfeatures, wie z. B. ein detailliertes Deployment neuer Assets, eine komplette Versionsverwaltung und Rollbacks, mit nur einem Klick zurückgreifen.
  • Hosting bietet eine Konfiguration, die für Anwendungen mit nur einer Seite sowie für andere anwendungsähnliche Websites geeignet ist.
  • Das Hosting ist für die nahtlose Zusammenarbeit mit anderen Firebase-Features konzipiert.

Weitere Informationen finden Sie auf den folgenden Seiten:

Virtuelle Maschinen mit Compute Engine verwenden

Für IaaS-Anwendungsfälle (Infrastructure as a Service) stellt die GCP Compute Engine zur Verfügung. Compute Engine bietet eine robuste Computerinfrastruktur, aber Sie müssen die Plattformkomponenten, die Sie verwenden möchten, auswählen und konfigurieren. Beim Einsatz von Compute Engine sind Sie für die Konfiguration, Verwaltung und Überwachung der Systeme verantwortlich. Google sorgt dafür, dass Ressourcen verfügbar, zuverlässig und betriebsbereit sind, aber die Bereitstellung und Verwaltung dieser Ressourcen liegt in Ihrer Hand. Der Vorteil dieser Vorgehensweise liegt darin, dass Sie vollständige Kontrolle über die Systeme haben und uneingeschränkte Flexibilität genießen.

Mit Compute Engine können Sie beinahe jedes gewünschte Website-Serving-System entwerfen und bereitstellen. Sie haben die Möglichkeit, virtuelle Maschinen (VMs), sogenannte Instanzen, zum Erstellen Ihrer Anwendung zu verwenden, ähnlich wie Sie es mit Ihrer eigenen Hardwareinfrastruktur tun würden. Compute Engine bietet eine Vielzahl von Maschinentypen, mit denen Sie Ihre Konfiguration ganz auf Ihre Anforderungen und Ihr Budget zuschneiden können. Wählen Sie Ihre bevorzugten Betriebssysteme, Entwicklungspakete, Sprachen, Frameworks, Dienste und andere Softwaretechnologien aus.

Automatisch mit GCP Marketplace einrichten

Die einfachste Methode zur Bereitstellung eines vollständigen Web-Serving-Stapels ist die Verwendung von GCP Marketplace. Mit wenigen Klicks können Sie eine der über 100 vollständig realisierten Lösungen mithilfe von Google Click-to-Deploy oder Bitnami bereitstellen.

GCP Marketplace

Beispielsweise können Sie mit GCP Marketplace ein LAMP-Paket oder WordPress einrichten. Das System erstellt in wenigen Minuten ein vollständiges funktionsfähiges Softwarepaket in einer einzigen Instanz. Vor der Bereitstellung bietet GCP Marketplace eine Kostenschätzung für den Betrieb der Website und informiert Sie darüber, welche Versionen der Softwarekomponenten installiert werden. Außerdem können Sie Ihre Konfiguration beispielsweise durch Änderung der Komponenteninstanznamen sowie durch Auswahl des Maschinentyps und einer Laufwerksgröße anpassen. Nach der Bereitstellung haben Sie die volle Kontrolle über die Compute Engine-Instanzen und deren Konfiguration sowie über die Software.

Manuelles Einrichten

Sie können Ihre Infrastruktur auch manuell auf Compute Engine erstellen. Dazu definieren Sie entweder die Konfiguration von Grund auf neu oder Sie greifen auf eine GCP Marketplace-Bereitstellung zurück. Sie können beispielsweise eine Version einer Softwarekomponente verwenden, die nicht von GCP Marketplace angeboten wird, oder Sie ziehen es vor, sie selbst zu installieren und zu konfigurieren.

Im Rahmen dieses Artikels können weder ein vollständiges Framework noch die Best Practices für die Einrichtung einer Website umfassend behandelt werden. Allgemein betrachtet gelten jedoch die folgenden technischen Voraussetzungen für die Einrichtung einer Web-Serving-Infrastruktur in Compute Engine:

  • Anforderungen verstehen. Zum Erstellen einer neuen Website müssen Sie die benötigten Komponenten kennen, wie beispielsweise Instanzen, Speicherbedarf und Netzwerkinfrastruktur. Wenn Sie Ihre Anwendung von einer vorhandenen Lösung migrieren, sind Ihnen diese Anforderungen unter Umständen bereits vertraut. Sie sollten aber auch bedenken, wie die vorhandene Einrichtung den GCP-Diensten zugeordnet werden kann.
  • Design planen. Konzipieren Sie Ihre Architektur im Detail und halten Sie das gewünschte Design schriftlich fest. Dies sollte so konkret wie möglich geschehen.
  • Komponenten erstellen. Komponenten, die in der Regel als physische Ressourcen bezeichnet werden (z. B. Computer und Netzwerk-Switches), werden in Compute Engine als Dienste bereitgestellt. Wenn Sie beispielsweise einen Computer benötigen, müssen Sie eine entsprechende Compute Engine-Instanz erstellen. Wenn Sie ein nichtflüchtiges Festplattenlaufwerk benötigen, müssen Sie dieses ebenfalls erstellen. Cloud Deployment Manager bietet hierfür einen einfachen und wiederholbaren Prozess.
  • Konfigurieren und anpassen. Sobald alle gewünschten Komponenten vorhanden sind, müssen Sie diese konfigurieren, Software installieren und konfigurieren sowie eventuell erforderlichen Anpassungscode schreiben und erstellen. Sie können die Konfiguration durch die Ausführung von Shell-Skripten replizieren, um zukünftige Deployments zu beschleunigen. Auch dafür bietet Deployment Manager eine hilfreiche Unterstützung. Damit werden deklarative flexible Konfigurationsvorlagen für das automatisierte Deployment von Ressourcen zur Verfügung gestellt. Außerdem können Sie auf IT-Automatisierungstools wie Puppet und Chef zurückgreifen.
  • Assets bereitstellen. Vermutlich haben Sie Webseiten und Bilder.
  • Testen. Achten Sie darauf, dass alles so funktioniert, wie Sie es erwarten.
  • Für die Produktion bereitstellen. Geben Sie Ihre Website für die allgemeine Nutzung frei.

Für einen schnellen Einstieg und zum besseren Verständnis der manuellen Einrichtung von Compute Engine-Instanzen sollten Sie sich eine oder mehrere der folgenden Anleitungen ansehen:

Daten mit Compute Engine speichern

Die meisten Websites benötigen irgendeine Art von Speicher. Möglicherweise benötigen Sie Speicher aus verschiedenen Gründen, z. B. zum Speichern der Dateien, die Ihre Nutzer hochladen, und zum Speichern der Assets, auf die Ihre Website zurückgreift.

GCP stellt eine Vielzahl von Speicherdiensten bereit. Dazu gehören unter anderem:

  • SQL-Datenbank in Cloud SQL, die auf MySQL basiert.
  • Zwei Optionen für die NoSQL-Datenspeicherung: Cloud Datastore und Cloud Bigtable.
  • Konsistenter, skalierbarer Objektspeicher mit hoher Kapazität in Cloud Storage. Cloud Storage gibt es in mehreren Klassen:
    • Die multiregionale Version bietet maximale Verfügbarkeit und Geo-Redundanz.
    • Die regionale Version bietet maximale Verfügbarkeit und einen lokalen Speicherort.
    • Nearline bietet eine kostengünstige Alternative, die ideal für Daten ist, auf die höchstens einmal im Monat zugegriffen wird.
    • Coldline bietet die günstigste Alternative für Archivierung, Sicherung und Notfallwiederherstellung.
  • Nichtflüchtige Speicher in Compute Engine zur Nutzung als Hauptspeicher für Ihre Instanzen. Compute Engine bietet sowohl festplattenbasierte nichtflüchtige Speicher, sogenannte nichtflüchtige Standardspeicher, als auch nichtflüchtige SSD-Laufwerke. Sie haben auch die Möglichkeit, Ihre bevorzugte Speichertechnologie über nichtflüchtige Speicher in Compute Engine einzurichten. Beispielsweise können Sie PostgreSQL als SQL-Datenbank oder MongoDB als NoSQL-Speicher einrichten. Eine ausführliche Darstellung der gesamten Bandbreite und Vorteile der Speicherdienste auf der GCP finden Sie im Abschnitt Speicheroption auswählen.

Load-Balancing mit Compute Engine

Bei der Mehrzahl der Websites, die in größerem Umfang genutzt werden, ist der Einsatz von Technologien für das Load-Balancing häufig eine unverzichtbare Voraussetzung, um die Arbeitslast auf mehrere Server zu verteilen. Bei der Konzeption Ihrer Webserver mit Load-Balancing in Compute Engine stehen Ihnen verschiedene Optionen zur Verfügung. Dazu gehören die Folgenden:

  • HTTP(S)-Load-Balancing. Erläutert die Grundlagen der Verwendung von Cloud Load Balancing.
  • TCP-Proxy-Load-Balancing. Veranschaulicht, wie globales TCP-Proxy-Load-Balancing für einen Dienst in zwei Regionen eingerichtet wird.
  • SSL-Proxy-Load-Balancing. Veranschaulicht, wie globales SSL-Proxy-Load-Balancing für einen Dienst in mehreren Regionen eingerichtet wird.
  • IPv6-Beendigung für HTTP(S)-, SSL-Proxy- und TCP-Proxy-Load-Balancing. Erläutert die Beendigung von IPv6 und die Optionen zum Konfigurieren von Load-Balancern und Verarbeiten von IPv6-Anfragen.
  • Netzwerk-Load-Balancing. Beschreibt ein grundlegendes Szenario, in dem eine Layer-3-Load-Balancing-Konfiguration eingerichtet wird, um den HTTP-Traffic auf fehlerfreie Instanzen zu verteilen.
  • Regionenübergreifendes Load-Balancing mit Microsoft IIS-Back-Ends. Veranschaulicht die Nutzung des Compute Engine-Load-Balancers für die Trafficverteilung auf IIS-Server (Server mit Microsoft Internet Information Services).
  • Internes Load-Balancing einrichten. Sie können einen Load-Balancer einrichten, der den Traffic auf ein privates Netzwerk verteilt, das nicht über das Internet erreichbar ist. Das interne Load-Balancing ist nicht nur für Intranetanwendungen nützlich, bei denen sich der gesamte Traffic innerhalb der Grenzen eines privaten Netzwerks bewegt. Es eignet sich auch für komplexe Webanwendungen, bei denen ein Front-End-Server über ein privates Netzwerk Anfragen an Back-End-Server sendet.

Das Deployment des Load-Balancings ist flexibel und Sie können Compute Engine mit bereits vorhandenen Lösungen verwenden. Beispiele dazu finden Sie in den Informationen zum Autoscaling auf der Ebene des HAProxy-Load-Balancings und der Back-End-Serverstufe unter Automatisch skaliertes internes Load-Balancing mit HAProxy und Consul. Unter HTTP(S)-Load-Balancing mit NGINX finden Sie eine mögliche Lösung, die Sie anstelle des Compute Engine-Load-Balancings verwenden können.

Inhaltsverteilung mit Compute Engine

Da die Antwortzeit einen wichtigen Messwert für jede Website darstellt, ist die Verwendung eines CDNs zur Senkung der Latenz und Erhöhung der Leistung häufig ein Muss, vor allem bei Websites mit globalem Internet-Traffic.

Cloud CDN greift auf die global verteilten Edge Points of Presence von Google zurück, um Inhalte aus den Cache-Speicherorten, die den Nutzern am nächsten liegen, bereitzustellen. Cloud CDN kann mit HTTP(S)-Load-Balancing bereitgestellt werden. Wenn Sie Inhalte aus Compute Engine und/oder aus Cloud Storage über eine einzige IP-Adresse bereitstellen möchten, aktivieren Sie Cloud CDN für HTTP(S)-Load-Balancing.

Autoscaling mit Compute Engine

Sie können Ihre Architektur so einrichten, dass je nach Bedarf Server eingebunden oder entfernt werden. Dieser Ansatz kann hilfreich sein, damit Ihre Website auch bei Lastspitzen zuverlässig arbeitet und in Phasen mit typischer Nachfrage die Kosten im kontrollierten Rahmen bleiben. Für diese Zwecke stellt Compute Engine Autoscaling bereit.

Autoscaling ist ein Feature verwalteter Instanzgruppen. Eine verwaltete Instanzgruppe ist ein Pool mit homogenen VM-Instanzen, die auf der Basis einer gemeinsamen Instanzvorlage erstellt wurden. Beim Autoscaling werden Instanzen zu einer verwalteten Instanzgruppe hinzugefügt oder daraus entfernt. Compute Engine enthält zwar verwaltete und nicht verwaltete Instanzgruppen, aber das Autoscaling ist nur auf verwaltete Instanzgruppen anwendbar. Weitere Informationen finden Sie unter Autoscaling in Compute Engine.

Umfassende Informationen zum Erstellen einer skalierbaren und stabilen Webanwendungslösung finden Sie unter Skalierbare und stabile Webanwendungen erstellen.

Logging und Monitoring mit Compute Engine

GCP bietet Features, mit denen Sie überwachen können, was mit Ihrer Website geschieht.

Stackdriver Logging sammelt und speichert Logs von Anwendungen und Diensten auf der GCP. Sie können Logs aufrufen oder exportieren und Logs von Drittanbietern mithilfe von Logging-Agents einbinden.

Logging

Stackdriver Monitoring stellt Dashboards und Benachrichtigungen für Ihre Website bereit. Monitoring wird mit der Monitoring-Konsole konfiguriert. Sie können die Leistungsmesswerte für Cloud-Dienste, virtuelle Maschinen und häufig verwendete Open-Source-Server wie MongoDB, Apache, Nginx und Elasticsearch überprüfen. Mit der Stackdriver Monitoring API können Sie Überwachungsdaten abrufen und benutzerdefinierte Messwerte erstellen.

Monitoring-Dashboard

DevOps mit Compute Engine verwalten

Informationen zur Verwaltung von DevOps mit Compute Engine finden Sie in den folgenden Artikeln:

Container mit GKE verwenden

Vielleicht verwenden Sie bereits Container, z. B. Docker-Container. Container bieten in Bezug auf das Web-Serving mehrere Vorteile. Dazu gehören die Folgenden:

  • Einteilung in Komponenten. Sie können Container verwenden, um die verschiedenen Komponenten der Webanwendung voneinander zu trennen. Beispiel: Sie führen auf Ihrer Website einen Webserver und eine Datenbank aus. Sie können diese Komponenten nun in getrennten Containern ausführen und so dafür sorgen, dass sich Änderungen und Aktualisierungen für eine Komponente nicht auf andere auswirken. Mit zunehmender Komplexität des Anwendungsdesigns sind Container eine besonders geeignete Lösung für eine dienstorientierte Architektur, einschließlich Mikrodiensten. Diese Art von Design zeichnet sich unter anderem durch die Skalierbarkeit aus.
  • Portabilität. Ein Container enthält alles, was für die Ausführung erforderlich ist. Ihre Anwendung und die zugehörigen Abhängigkeiten sind darin zu einem Bundle zusammengefasst. Sie können Ihre Container auf einer Vielzahl von Plattformen ausführen, ohne sich mit den zugrunde liegenden Systemdetails beschäftigen zu müssen.
  • Schnelle Bereitstellung. Wenn es an das Deployment geht, wird Ihr System aus einer Reihe von Definitionen und Images erstellt, d. h. die Bestandteile können schnell, zuverlässig und automatisch erstellt werden. Container sind in der Regel klein und lassen sich sehr viel schneller erstellen als beispielsweise virtuelle Maschinen.

Das Container-Computing in GCP bietet noch weitere Vorteile für das Web-Serving. Dazu gehören die Folgenden:

  • Orchestrierung. GKE ist ein verwalteter Dienst, der auf Kubernetes basiert, einem von Google entwickelten Open-Source-System zur Orchestrierung von Containern. Mit GKE wird Ihr Code in Containern ausgeführt, die Teil eines Clusters aus Compute Engine-Instanzen sind. Anstatt einzelne Container zu verwalten oder jeden Container einzeln zu erstellen und manuell herunterzufahren, können Sie den vollständigen Cluster über GKE mit der von Ihnen definierten Konfiguration verwalten.
  • Registrierung von Images. Container Registry stellt privaten Speicher für Docker-Images auf der GCP bereit. Sie können über einen HTTPS-Endpunkt auf Container Registry zugreifen und so Images von einer beliebigen Maschine abrufen. Dies kann eine Compute Engine-Instanz oder Ihre eigene Hardware sein. Der Registry-Dienst hostet Ihre benutzerdefinierten Images in Cloud Storage unter Ihrem GCP-Projekt. Dieser Ansatz gewährleistet, dass standardmäßig nur Mitglieder Ihres Projekts auf Ihre benutzerdefinierten Images zugreifen können.
  • Mobilität. Sie können Arbeitslasten flexibel verschieben und mit anderen Cloudanbietern kombinieren oder Arbeitslasten in der Cloud mit Implementierungen vor Ort zu einer Hybridlösung verbinden.

Daten mit GKE speichern

Da GKE auf der GCP ausgeführt wird und Compute Engine-Instanzen als Knoten verwendet, weisen Ihre Speicheroptionen eine Reihe von Gemeinsamkeiten mit dem Speicher in Compute Engine auf. Sie können Cloud SQL, Cloud Storage, Cloud Datastore und Cloud Bigtable über die zugehörigen APIs aufrufen oder, falls Sie das möchten, einen anderen externen Speicheranbieter verwenden. Die Interaktion von GKE mit dem nichtflüchtigen Speicher in Compute Engine unterscheidet sich allerdings von normalen Compute Engine-Instanzen.

Eine Compute Engine-Instanz enthält ein hinzugefügtes Laufwerk. Wenn Sie Compute Engine verwenden, verbleibt das Laufwerksvolume bei der Instanz, solange die Instanz besteht. Sie können das Laufwerk sogar trennen und mit einer anderen Instanz verwenden. Bei einem Container sind die auf dem Laufwerk gespeicherten Dateien jedoch flüchtig. Sobald ein Container neu gestartet wird, z. B. nach einem Absturz, gehen die auf dem Laufwerk gespeicherten Dateien verloren. Kubernetes löst dieses Problem durch Volumeabstraktion. Als ein Volumetyp wird gcePersistentDisk verwendet. Das bedeutet, dass Sie nichtflüchtigen Speicher in Compute Engine mit Containern verwenden können, um den Verlust Ihrer Datendateien bei Verwendung von GKE zu vermeiden.

Die Features und Vorzüge eines Volumes erschließen sich erst, wenn Sie mit dem Konzept der Pods vertraut sind. Stellen Sie sich einen Pod als anwendungsspezifischen logischen Host für einen oder mehrere Container vor. Ein Pod wird auf einer Knoteninstanz ausgeführt. Wenn Container Mitglieder eines Pods sind, können sie mehrere Ressourcen gemeinsam nutzen, darunter eine Reihe freigegebener Speichervolumes. Diese Volumes sorgen dafür, dass Daten Container-Neustarts überleben und von den Containern innerhalb des Pods gemeinsam genutzt werden können. Natürlich können Sie auch einen einzelnen Container und nur ein Volume in einem Pod verwenden. Der Pod ist eine erforderliche Abstraktionsebene, um diese Ressourcen logisch miteinander zu verbinden.

Ein Beispiel finden Sie in der Anleitung Nichtflüchtige Speicher mit WordPress und MySQL verwenden.

Load-Balancing mit GKE

In vielen umfangreichen Web-Serving-Architekturen werden mehrere aktive Server benötigt, damit die Trafficanforderungen verteilt werden können. Da Sie mit GKE mehrere Container, Knoten und Pods erstellen und verwalten können, ist dies eine natürliche Ergänzung für ein Web-Serving-System mit Load-Balancing.

Netzwerk-Load-Balancing verwenden

Die einfachste Methode zum Erstellen eines Load-Balancers in GKE ist die Verwendung des Netzwerk-Load-Balancings von Compute Engine. Mit dem Netzwerk-Load-Balancing können Sie die Belastung Ihrer Systeme auf der Grundlage eingehender Internetprotokolldaten wie Adresse, Port und Protokolltyp ausgleichen. Beim Netzwerk-Load-Balancing kommen Weiterleitungsregeln zum Einsatz. Diese Regeln verweisen auf Zielpools, die angeben, auf welche Instanzen beim Load-Balancing zurückgegriffen werden kann.

Mit dem Netzwerk-Load-Balancing können Sie die Arbeitslast für weitere TCP/UDP-basierte Protokolle (z. B. SMTP-Traffic) ausgleichen und Ihre Anwendung kann die Pakete direkt überprüfen.

Die Bereitstellung des Netzwerk-Load-Balancings ist denkbar einfach: Sie fügen einfach das Feld type: LoadBalancer zu Ihrer Dienstkonfigurationsdatei hinzu.

HTTP(S)-Load-Balancing verwenden

Wenn Sie erweiterte Load-Balancing-Features wie HTTPS-Load-Balancing, inhaltsbasiertes Load-Balancing oder regionsübergreifendes Load-Balancing benötigen, können Sie den GKE-Dienst in das HTTP/HTTPS-Load-Balancing von Compute Engine einbinden. Kubernetes stellt die Ingress-Ressource zur Verfügung, die eine Sammlung von Regeln für das Routing von externem Traffic zu Kubernetes-Endpunkten enthält. In GKE übernimmt eine Ingress-Ressource die Bereitstellung und Konfiguration des HTTP/HTTPS-Load-Balancers von Compute Engine.

Weitere Informationen zur Verwendung des HTTP/HTTPS-Load-Balancers von GKE finden Sie unter HTTP-Load-Balancing mit Ingress einrichten.

Mit GKE skalieren

Zum automatischen Anpassen der Clustergröße können Sie Cluster Autoscaler verwenden. Dieses Feature überprüft regelmäßig, ob Pods auf einen Knoten mit freien Ressourcen warten, aber nicht geplant werden. Falls solche Pods vorhanden sind, passt der Autoscaler den Knotenpool an, wenn dadurch das Planen der wartenden Pods ermöglicht würde.

Cluster Autoscaler überwacht außerdem die Nutzung aller Knoten. Wenn ein Knoten längere Zeit nicht benötigt wird und alle zugehörigen Pods an anderer Stelle geplant werden können, wird der Knoten gelöscht.

Weitere Informationen zu Cluster Autoscaler sowie den zugehörigen Einschränkungen und Best Practices finden Sie in der Dokumentation zu Cluster Autoscaler.

Logging und Monitoring mit GKE

Wie bei Compute Engine stehen Ihnen mit Logging und Monitoring Logging- und Monitoringdienste zur Verfügung. Logging erfasst und speichert Logs aus Anwendungen und Diensten. Mit einem Logging-Agent können Sie Logs ansehen oder exportieren und Logs anderer Anbieter einbinden.

Monitoring stellt Dashboards und Benachrichtigungen für Ihre Website bereit. Monitoring wird mit der Monitoring-Konsole konfiguriert. Sie können die Leistungsmesswerte für Clouddienste, virtuelle Maschinen und häufig verwendete Open-Source-Server wie MongoDB, Apache, Nginx und Elasticsearch überprüfen. Mit der Monitoring API können Sie Monitoringdaten abrufen und benutzerdefinierte Messwerte erstellen.

DevOps mit GKE verwalten

Wenn Sie GKE verwenden, genießen Sie bereits viele Vorteile, durch die sich DevOps auszeichnet. Dies gilt insbesondere für die schnelle und einfache Paketerstellung, Bereitstellung und Verwaltung. Für die Anforderungen Ihrer CI/CD-Workflows können Sie auf weit verbreitete Tools wie Jenkins zurückgreifen. Entsprechende Informationen finden Sie in den folgenden Artikeln:

Mit App Engine auf eine verwaltete Plattform aufbauen

Auf der GCP wird die verwaltete PaaS-Plattform (Platform as a Service) als App Engine bezeichnet. Wenn Sie Ihre Website auf App Engine aufbauen, können Sie sich ganz auf die Codierung Ihrer Features konzentrieren und Google die Verwaltung der unterstützenden Infrastruktur überlassen. App Engine stellt eine Vielzahl von Features bereit, mit denen Skalierung, Load-Balancing, Logging, Monitoring und Sicherheit viel einfacher gestaltet werden können, als in einem Szenario, in dem Sie allein für deren Erstellung und Verwaltung zuständig sind. Mit App Engine können Sie in den unterschiedlichsten Programmiersprachen programmieren und eine Vielzahl anderer GCP-Dienste verwenden.

App Engine stellt die Standardumgebung bereit, mit der Sie Anwendungen in einer sicheren Sandbox-Umgebung ausführen können. Die App Engine-Standardumgebung verteilt Anfragen auf mehrere Server und skaliert die Server entsprechend den Trafficanforderungen. Ihre Anwendung wird in einer eigenen sicheren und zuverlässigen Umgebung ausgeführt, die von der Hardware, dem Betriebssystem oder dem physischen Standort des Servers unabhängig ist.

Webanwendung verwendet App Engine und andere Komponenten

App Engine stellt die flexible Umgebung bereit, um Ihnen noch mehr Optionen anbieten zu können. Wenn Sie die flexible Umgebung verwenden, wird Ihre Anwendung auf konfigurierbaren Compute Engine-Instanzen ausgeführt, aber App Engine verwaltet die Hosting-Umgebung für Sie. Dies bedeutet, dass Sie zusätzliche Laufzeiten nutzen können, darunter benutzerdefinierte Laufzeiten, und dadurch noch mehr Programmiersprachen zur Auswahl haben. Außerdem können Sie die Flexibilität von Compute Engine nutzen und beispielsweise unter einer Vielzahl von CPU- und Speicheroptionen auswählen.

Programmiersprachen

Die App Engine-Standardumgebung stellt Standardlaufzeiten bereit und Sie schreiben Quellcode in bestimmten Versionen der unterstützten Programmiersprachen.

In der flexiblen Umgebung schreiben Sie Quellcode in einer Version einer beliebigen unterstützten Programmiersprache. Sie können diese Laufzeiten anpassen oder eine eigene Laufzeitumgebung mit einem benutzerdefinierten Docker-Image oder einer Dockerfile bereitstellen.

Wenn für Sie die verwendete Programmiersprache ausschlaggebend ist, müssen Sie entscheiden, ob die von der App Engine-Standardumgebung bereitgestellten Laufzeiten Ihren Anforderungen entsprechen. Ist dies nicht der Fall, sollten Sie die Verwendung der flexiblen Umgebung in Betracht ziehen.

Informationen dazu, welche Umgebung den Anforderungen Ihrer App am besten entspricht, finden Sie unter App Engine-Umgebung auswählen.

Anleitungen für erste Schritte nach Programmiersprache

Die folgenden Anleitungen unterstützen Sie bei den ersten Schritten im Umgang mit der App Engine-Standardumgebung:

Die folgenden Anleitungen unterstützen Sie bei den ersten Schritten im Umgang mit der flexiblen Umgebung:

Daten mit App Engine speichern

App Engine stellt Optionen für die Speicherung Ihrer Daten bereit:

Name Struktur Konsistenz
Cloud Datastore Schemalos Sehr konsistent, außer bei der Durchführung globaler Abfragen
Cloud SQL Relational Hohe Konsistenz
Cloud Storage Dateien und zugehörige Metadaten Sehr konsistent, außer bei der Durchführung von Listenvorgängen, bei denen eine Liste von Buckets oder Objekten abgerufen wird

Sie können in Verbindung mit der Standardumgebung auch mehrere Datenbanken von Drittanbietern verwenden.

Wenn Sie weitere Informationen zum Speicher in App Engine erhalten möchten, rufen Sie Speicheroption auswählen auf und wählen Sie anschließend die gewünschte Programmiersprache aus.

Wenn Sie die flexible Umgebung verwenden, können Sie dieselben Speicheroptionen nutzen wie in der Standardumgebung. Außerdem steht eine breitere Palette von Drittanbieter-Datenbanken zur Verfügung. Weitere Informationen zu Datenbanken von Drittanbietern in der flexiblen Umgebung finden Sie unter Datenbanken von Drittanbietern verwenden.

Load-Balancing und automatische Skalierung mit App Engine

Wenn Sie auf App Engine aufbauen, werden Load-Balancing und Autoscaling automatisch für Sie verwaltet.

Logging und Monitoring mit App Engine

In App Engine werden Anfragen automatisch protokolliert und Sie können diese Logs in der GCP Console aufrufen. App Engine arbeitet außerdem mit standardmäßigen sprachspezifischen Bibliotheken, die Logging-Funktionen bereitstellen, und leitet die Log-Einträge an die Logs in der GCP Console weiter. In Python können Sie beispielsweise das standardmäßige Python-Logging-Modul und in Java die API java.util.logging.Logger verwenden.

Monitoring bietet Features für das Monitoring Ihrer App Engine-Anwendungen. In der GCP Console können Sie Vorfälle, Verfügbarkeitsdiagnosen und andere Details überwachen.

Content-Management-Systeme erstellen

Das Bereitstellen einer Website ist gleichbedeutend mit dem Verwalten Ihrer Website-Assets. Cloud Storage stellt ein globales Repository für diese Assets bereit. In einer gemeinsamen Architektur werden statische Inhalte für Cloud Storage bereitgestellt und anschließend mit Compute Engine synchronisiert, um dynamische Seiten zu rendern. Cloud Storage kann mit vielen Content-Management-Systemen (CMS) von Drittanbietern eingesetzt werden, darunter WordPress, Drupal und Joomla. Darüber hinaus stellt Cloud Storage eine mit Amazon S3 kompatible API bereit. Demnach ist jedes mit S3 kompatible System auch mit Cloud Storage kompatibel.

Eine Beispielarchitektur für ein Content-Management-System finden Sie unter Content-Management.

Content-Management-System auf der GCP

Weitere Informationen

  • Weitere Google Cloud Platform-Features ausprobieren: Anleitungen
Hat Ihnen diese Seite weitergeholfen? Teilen Sie uns Ihr Feedback mit:

Feedback geben zu...