Kapitel 1. Einführung
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
Willkommen bei Google Cloud! Egal, ob du ein erfahrener Cloud-Entwickler oder ein Systemadministrator bist, der zum ersten Mal in die Cloud wechselt: Google Cloud ist eine großartige Plattform, um alles zu entwickeln, von den kleinsten serverlosen Apps bis hin zu den größten Unternehmensanwendungen und Datenpipelines.
Dieses Kapitel bietet einen Überblick über die Plattform und gibt dir einige Tipps für den Einstieg. Wenn du Google Cloud bereits nutzt, kannst du dieses Kapitel wahrscheinlich überspringen. Wenn du neu auf der Plattform bist, egal ob du von On-Premises (vor Ort) oder einem anderen Cloud-Provider kommst, findest du hier einen kurzen Überblick über die Dienste, Tools und Funktionen, die du für den Einstieg kennen musst. Gegen Ende des Kapitels beschreiben wir, wie du dein vorhandenes Wissen über Cloud-Provider schnell umsetzen kannst. Alle weiteren Kapitel sind traditionelle Rezeptsammlungen, wie man sie in einem Kochbuch findet.
Übersicht
Wie die meisten Cloud-Plattformen ist auch Google Cloud eine Sammlung von physischen Ressourcen wie Servern und Speicherung sowie darauf aufbauenden übergeordneten Diensten wie BigQuery oder AppEngine, die alle in Google-Rechenzentren laufen. Die Plattform ist in Zonen, Regionen, Multiregionen (Kontinente) und schließlich den gesamten Globus unterteilt. Tabelle 1-1 zeigt ein grobes mentales Modell, was die einzelnen bedeuten.
Regionalität der Dienstleistung | Beschreibung |
---|---|
Zonal | Ein großer Cluster von Rechnern in einem oder mehreren Rechenzentren. Sollte als eine einzige Ausfalldomäne betrachtet werden.a |
Regional | Eine Ansammlung von Rechenzentrumsgebäuden (Campus). Besteht aus mehreren Zonen. Jede Zone verfügt in der Regel über eine andere Strom- und Netzwerkinfrastruktur und hat einen anderen Zeitplan für die Aufrüstung. Regionale Dienste werden von mehreren Zonen aus bedient oder schlagen automatisch fehl, wenn eine Zone ausfällt. |
Multiregional | Eine Gruppe von Regionen, die in der Regel auf demselben Kontinent liegen. Multiregionale Dienste werden von mehreren Regionen aus bedient und bewältigen einen regionalen Ausfall. |
Global | Ein Dienst, der in allen Google Cloud-Regionen auf der ganzen Welt eingesetzt wird. |
a Technisch gesehen ist eine Zone eine logische Abstraktion einer Region mit den beschriebenen Eigenschaften einer Ausfalldomäne, obwohl diese physikalische Analogie hilfreich sein kann, um den Unterschied zu verstehen, und oft auch so eingesetzt wird. |
Verschiedene Dienste haben unterschiedliche Bereiche; eine virtuelle Maschine (VM) befindet sich zum Beispiel in einer Zone, während ein L7-Netzwerk-Loadbalancer global existiert. Abbildung 1-1 zeigt ein Beispiel für einige grundlegende Rechenressourcen.
Im Allgemeinen solltest du Produktionsdienste so planen, dass sie mindestens in einer Region, wenn nicht sogar in mehreren Regionen, eingesetzt werden. Das ist bei Google Cloud oft einfacher als bei anderen Plattformen, weil es eine große Anzahl von multiregionalen und globalen Diensten gibt und diese Rechenzentren alle mit den Google-eigenen Glasfasern verbunden sind.
Projekte
Einer der wichtigsten Unterschiede zwischen Google Cloud und einigen anderen Cloud-Plattformen ist das Konstrukt eines Projekts. Jede Ressource, die du erstellst oder mit der du interagierst, existiert in einem Projekt, und die Sicherheitsrollen und -regeln werden in der Regel auf Projektebene angewendet, obwohl sie natürlich auch detaillierter sein können. Die Ressourcen innerhalb eines Projekts arbeiten in der Regel zusammen, um eine Anwendung zu bilden. In einem Projekt werden die Ressourcen auf der Grundlage von realen Anwendungsfällen sicher organisiert.
Oft hat eine Anwendung für jeden Lebenszyklus ein eigenes Projekt, zum Beispiel "myapp-dev", "myapp-staging" und "myapp-prod". Jedes aufeinanderfolgende Projekt kann unterschiedliche Sicherheitsregeln und eine andere Kopie deiner Anwendung haben, ohne dass du etwas tun musst, um sie aufzuteilen. Manchmal werden Projekte auch auf Teamebene verwendet. Ein Data-Science-Team, das hauptsächlich Datenpipelines erstellt oder Daten erforscht, nutzt beispielsweise ein gemeinsames Projekt für diese Arbeit, während die Pipelines, die in die Produktion überführt werden, in einem separaten, besser abgesicherten Projekt laufen.
In den meisten Fällen interagieren die meisten Ressourcen und Dienste nur mit Ressourcen innerhalb des Projekts, und die Standardsicherheitsregeln lassen dies zu. Du kannst jedoch Ressourcen zwischen Projekten austauschen, und das wird immer häufiger, je größer deine Anwendung oder Organisation wird. Du kannst z. B. Netzwerke zwischen Projekten austauschen oder Sicherheitsregeln erstellen, um den Zugriff auf Objekte, die auf Google Cloud Storage (GCS) gespeichert sind, projektübergreifend zu ermöglichen. Das Überschreiten einer Projektgrenze erfordert in der Regel einen bewussten Einrichtungsschritt, was die Sicherheit erhöht.
Wie du dein erstes Google Cloud Projekt erstellst
Hier,, richten wir ein leeres Google Cloud-Projekt ein und erhalten 300 $ an Credits.
Gehe auf die Seite Erste Schritte und melde dich mit einem gültigen Gmail-Konto an.
Akzeptiere die Nutzungsbedingungen, wie in Abbildung 1-2 dargestellt.
Aktiviere dein kostenloses Probeabo mit dem Button oben rechts und erhalte 300 $ an Credits.
Füge eine Kreditkarte hinzu, um loszulegen, wie in Abbildung 1-3 gezeigt. Keine Sorge, es gibt keine automatische Aufladung oder zusätzliche Gebühren, wenn du deine 300 Dollar aufgebraucht hast, solange du deine VMs ausschaltest und deine Daten löschst. Angesichts deines Standard-Ressourcenkontingents ist es im Allgemeinen schwer, eine hohe Rechnung aufzustellen.
Du wirst feststellen, dass ein neues Projekt für dich erstellt wurde, wie in Abbildung 1-4. Du kannst den Anzeigenamen ändern (aber nicht die Projekt-ID oder Projektnummer) oder ein neues Projekt mit dem von dir gewünschten Namen erstellen.
Herzlichen Glückwunsch! Du hast jetzt ein Projekt auf Google Cloud zum Laufen gebracht.
Unternehmensprojekte
Mit Google Cloud kannst du ganz einfach ein (oder mehrere) kleine Projekte für den persönlichen Gebrauch mit einem Gmail-Konto erstellen. Wenn du jedoch in einem Unternehmen arbeitest, gehören die Projekte zu einer Organisation (z. B. deinem Unternehmen) und sind in Ordnern organisiert (z. B. Abteilungen). Fast alle Ressourcen gehören nach wie vor zu einzelnen Projekten, mit Ausnahme einiger Sicherheitsregeln und Netzwerkressourcen.
Deine Erfahrungen als privater Entwickler und als Unternehmensentwickler werden sich sehr ähnlich anfühlen, auch wenn es mehr Sicherheitsregeln und Einschränkungen geben kann. Du kannst zum Beispiel keine Projekte nach Belieben erstellen, wie du es mit deinem Gmail-Konto getan hast, und du hast nicht die volle Macht über diese Projekte und Ressourcen. Du wirst wahrscheinlich auch mehr Fehler sehen, die mit organisatorischen Richtlinien und Einschränkungen zusammenhängen - zum Beispiel solltest du nicht den Port 22 für SSH auf all deinen VMs freigeben und du wirst einen Fehler sehen, wenn du es versuchst. Wir empfehlen diesen Leitfaden für die Entwicklung in einer eingeschränkten Google Cloud-Umgebung.
Abbildung 1-5 ist ein Beispiel für eine Google Cloud-Organisationshierarchie, in der Projekte und Ressourcen organisiert sind.
Cloud-Konsole
Ein Großteil deiner täglichen Interaktion mit Google Cloud wird über die Konsole in deinem Browser erfolgen. Du hast die Konsole bereits gesehen, aber du kannst sie noch einmal über die Google Cloud Platform Landing Page aufrufen. Abbildung 1-6 zeigt die Konsole mit vielen der wichtigsten Elemente.
Tabelle 1-2 zeigt einige der am häufigsten verwendeten Teile der Google Cloud Console.
Name | Beschreibung |
---|---|
Navigation Menü | Klicke hier, um auf die vielen GCP-Dienste zuzugreifen. |
Aktuelles Projekt | Wenn du in mehreren Projekten arbeitest, ist es hilfreich zu sehen, in welchem du dich gerade befindest. |
Schnellsuchleiste | Früher war ich stolz darauf, zu wissen, wo alle Dienste im Servicemenü aufgelistet sind, und sie für einen schnelleren Zugriff anzuheften, aber jetzt benutze ich immer öfter die Suchleiste, um schnell zu verschiedenen Seiten zu gelangen. Google ist schließlich ein Suchunternehmen. |
Cloud Shell | Öffne schnell eine Shell in deinem Browser, in der gcloud und andere Tools installiert sind. Mehr dazu in Kürze. |
Girokonto | Hier kannst du ganz einfach sehen, mit welchem Konto du eingeloggt bist - besonders hilfreich, wenn du zwischen deinem Firmenkonto und deinem Gmail-Konto wechselst. |
Aktuelle Projektrechnung | Hier werden deine aktuellen Kosten für das Projekt für den laufenden Monat angezeigt. |
Klicke auf das Navigationsmenü, um die verfügbaren Dienste zu sehen. Du kannst direkt auf Compute Engine klicken, wenn du direkt auf die Standardseite (eine Liste deiner VMs in diesem Projekt) gehen willst, oder du kannst den Mauszeiger über Compute Engine bewegen und die zusätzlichen Unterseiten sehen, auf die du direkt zugreifen kannst, wie in Abbildung 1-7 gezeigt.
Beachte, dass du einzelne Dienste anheften kannst, wenn du sie häufig benutzt, damit sie oben im Navigationsmenü angezeigt werden, wie in Abbildung 1-8 gezeigt.
Oder du kannst die Suchleiste verwenden, was oft schneller geht, wenn du viele Dienste nutzt.
Jetzt zeigen wir dir ein paar Dinge, die du in der Cloud-Konsole tun kannst. Zuerst laden wir eine Datei hoch und dann führen wir eine Abfrage durch.
Dieses Beispiel zeigt, wie wir die Konsole nutzen, um einfache, alltägliche Aktionen durchzuführen, die wir zuvor mit den Tools der Befehlszeilenschnittstelle (CLI) erledigt haben. In diesem Fall erstellen wir einen GCS-Bucket und laden eine Datei in ihn hoch:
-
Öffne in der Cloud-Konsole den Bereich Cloud-Speicherung, wie in Abbildung 1-9 dargestellt.
-
Erstelle einen neuen Bucket, wie in Abbildung 1-10 gezeigt. Nenne ihn, wie du willst.
-
Du solltest deinen neuen Eimer sehen, wie in Abbildung 1-11.
-
Es gibt viele Möglichkeiten, Dateien in die Cloud Speicherung hochzuladen. Erstelle zunächst eine leere Textdatei oder ein Dokument auf deinem Desktop und lade es dann über deinen Browser hoch. Das Ergebnis sieht dann wie in Abbildung 1-12 aus.
-
Herzlichen Glückwunsch! Du hast eine Datei hochgeladen. Du kannst sie anklicken, um mehr Daten über die Datei, die Größe und sogar einen authentifizierten Download-Link zu sehen.
-
Vergiss nicht, das Objekt und den Eimer zu löschen, um langfristige Gebühren zu vermeiden.
gCloud Befehlszeilen-Tool
Ein Großteil deiner Arbeit mit der Google Cloud, sei es das Erstellen von VMs, das Bereitstellen von Apps oder das Ausführen von BigQuery-Abfragen, kann ganz einfach von deiner Workstation aus mit den gcloud-Dienstprogrammen erledigt werden. Zwar hat jeder Google Cloud-Dienst eine API und oft auch eine Client-Bibliothek in deiner bevorzugten Sprache, aber gcloud ist eine äußerst nützliche, weit verbreitete und erstklassige Möglichkeit, mit Google Cloud zu interagieren.
Installieren von gcloud
Das Client Software Development Kit (SDK) (gcloud) ist ein einfacher Weg, um schnell mit diesen Diensten über die CLI und durch Skripte zu arbeiten. Auf deinem System muss Python installiert sein. Wenn du Probleme mit der Installation hast, kannst du mit dem Abschnitt "Cloud Shell" weitermachen, um gcloud ganz einfach im Browser zu nutzen.
Gehe zur Dokumentation des SDK-Installationsprogramms, um den gcloud-Client für dein Betriebssystem herunterzuladen. Deine Installationsreihenfolge sieht etwa so aus (für macOS):
curl https://sdk.cloud.google.com | bash
Wähle ein Verzeichnis aus (normalerweise das Heimatverzeichnis). Drücke einfach Enter für die Voreinstellung.
Erlaube dem Installationsprogramm, deine Umgebungsvariable $PATH zu ändern, damit du gcloud sofort benutzen kannst, indem du es einfach eingibst. Drücke y, um fortzufahren.
Aktualisiere deine .bashrc- oder .bash_profile-Datei so, dass das gcloud-Verzeichnis immer zur Umgebungsvariablen
$PATH
hinzugefügt wird. Lass sie leer und drücke die Eingabetaste, um die Standardeinstellung beizubehalten.Starte deine Shell neu:
exec -l $SHELL
Starte deine gcloud-Installation:
gcloud init
Du musst ein Konto auswählen (dazu musst du eventuell den Browser verlassen, um dich zu authentifizieren und einen Code zu kopieren und einzufügen).
Wähle ein Standardprojekt aus:
You are logged in as: [dhodun@google.com]. Pick cloud project to use: [1] dhodun1 [2] dhodun2 Please enter numeric choice or text value (must exactly match list item):
Du hast auch die Möglichkeit, eine Standardregion oder -zone auszuwählen. Diese sind üblich und hilfreich, insbesondere für VMs (in der Google Compute Engine), vor allem wenn du hauptsächlich in einer einzigen Region oder Zone arbeitest und diese nicht bei jedem gcloud Befehl als Flags angeben möchtest.
gCloud-Befehle
Jetzt du gcloud installiert hast, findest du hier eine Reihe von nützlichen Befehlen, die du verwenden wirst. Ich empfehle dir, sie alle auszuprobieren, um ein Gefühl für das Tool zu bekommen.
Die meisten gcloud-Befehle folgen dem gleichen Format:
`gcloud` + `service` + `resource in that service` + `command`
Gängige Befehle sind list
, create
, delete
, und so weiter.
gcloud config list
Unter findest du deine aktuelle gcloud-Konfiguration, einschließlich des aktuell eingestellten Projekts, Kontos, der Region und der Zone:
dhodun@cloudshell:~ (dhodun2)$ gcloud config list [compute] region = us-central1 zone = us-central1-c [core] account = dhodun@google.com disable_usage_reporting = True project = dhodun2
gcloud auth login
- Diese fügt ein weiteres Konto mit Berechtigungsnachweis zu gcloud hinzu, das den browserbasierten Autorisierungsworkflow in Gang setzt.
gcloud auth list
Diese Seite listet alle Konten auf, die derzeit bei gcloud angemeldet sind. Das kommt häufig vor, wenn du ein Firmenkonto und ein persönliches Konto hast (und irgendwie in beiden auf demselben System eingeloggt sein kannst) oder wenn du mehrere persönliche Konten für verschiedene Projekte hast.
dhodun@cloudshell:~ (dhodun2)$ gcloud auth list Credentialed Accounts ACTIVE ACCOUNT * dhodun@google.com dhodun@mycorp.com
gcloud config set project <project_ID>
- Dieser Befehl legt dein aktuell konfiguriertes Standardprojekt für gcloud fest. Viele andere gcloud-Befehle und sogar Client-Bibliotheken ermitteln das Projekt, auf das sie zeigen sollen, anhand der Konfiguration von gcloud. Oft ist es bequemer, dein Standardprojekt mit diesem Befehl zu setzen, als "-p <project_ID>" an jeden anderen gcloud-Befehl anzuhängen.
gcloud auth set account <your_name@gmail.com>
- Mit kannst du Konten ändern, wenn einige von ihnen in gcloud authentifiziert sind.
gcloud components update
- Diese aktualisiert gcloud. Erinnere dich daran, dies regelmäßig zu tun, denn es werden ständig neue Befehle, Dienste und Funktionen für Google Cloud eingeführt.
gcloud compute instances create my-new-vm --image-family ubuntu-1604-lts --image-project ubuntu-os-cloud
-
Diese erstellt eine neue Ubuntu-VM mit allen anderen Standardeinstellungen in deinem Projekt. Ausgabe:
Created [https://www.googleapis.com/compute/v1/projects/dhodun2/zones/us-central1-c/instances/my-new-vm]. NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS my-new-vm us-central1-c n1-standard-1 10.128.0.29 35.223.11.69 RUNNING
gcloud compute instances list
- Unter sind alle VMs in deinem aktuell eingestellten Projekt aufgelistet.
gcloud container clusters list
- Unter werden alle aktuellen Google Kubernetes Engine (GKE)-Cluster aufgelistet, die in deinem Projekt laufen. Du wirst nichts sehen, wenn du noch keinen Cluster erstellt hast.
gcloud compute instances delete my-new-vm
- Dieser Befehl löscht die gleiche VM, die du im vorherigen Beispiel erstellt hast. Bestätige mit y.
gcloud projects list --format="json"
-
Du kannst jeder gcloud Formatierungs- und Filtermuster hinzufügen, um sie besser lesbar zu machen. Dieser Befehl zeigt, was passiert, wenn du die Details all deiner Projekte im hübschen JSON-Format sehen willst.
[ { "createTime": "2021-08-06T11:02:22.009Z", "lifecycleState": "ACTIVE", "name": "dhodun2", "projectId": "dhodun2", "projectNumber": "181626564526" } ]
Wenn du tiefer in gcloud eintauchen willst, schau dir den offiziellen Spickzettel an.
Andere gcloud Tools
Jetzt du gcloud installiert hast, hast du auch noch ein paar andere Tools:
bq für CLI-Zugriff auf BigQuery, das serverlose Data Warehouse von Google Cloud
kubectl, das Open-Source-Tool für den Zugriff auf und die Interaktion mit Kubernetes-Clustern
Diese Werkzeuge werden in späteren Kapiteln behandelt, aber hier sind ein paar Beispielbefehle, um dir einen Eindruck zu vermitteln:
gsutil ls
- Unter sind alle GCS-Eimer aufgelistet, auf die du Zugriff hast.
gsutil ls gs://gcp-public-data-landsat/
-
Dies ist der normale Listenbefehl für einen Ordner in einem Bucket.
dhodun@cloudshell:~ (dhodun2)$ gsutil ls gs://gcp-public-data-landsat/ gs://gcp-public-data-landsat/index.csv.gz gs://gcp-public-data-landsat/LC08/ gs://gcp-public-data-landsat/LE07/ gs://gcp-public-data-landsat/LM01/ gs://gcp-public-data-landsat/LM02/ gs://gcp-public-data-landsat/LM03/ gs://gcp-public-data-landsat/LM04/ gs://gcp-public-data-landsat/LM05/ gs://gcp-public-data-landsat/LO08/ gs://gcp-public-data-landsat/LT04/ gs://gcp-public-data-landsat/LT05/ gs://gcp-public-data-landsat/LT08/
bq ls -project_id bigquery-public-data
-
Unter findest du eine Liste aller Datensätze, auf die du im jeweiligen Projekt Zugriff hast. Du kannst auch das Projekt-Flag leer lassen, um alles zu sehen, worauf du im aktuellen Projekt Zugriff hast. (Wenn du ein neues Projekt hast, wirst du nichts sehen.)
dhodun@cloudshell:~ (dhodun2)$ bq ls -project_id bigquery-public-data datasetId ------------------------------------- austin_311 austin_bikeshare austin_crime austin_incidents Austin_waste ...
bq query --nouse_legacy_sql \
-
'SELECT COUNT(*) FROM `bigquery-public-data`.samples.shakespeare'
Diese führt eine Abfrage auf einem BigQuery-Datensatz aus, in diesem Fall einfach das Zählen der Anzahl der Zeilen in einer öffentlich zugänglichen Tabelle. Du wirst diese Ausgabe sehen:
dhodun@cloudshell:~ (dhodun2)$ bq query --nouse_legacy_sql \ > 'SELECT > COUNT(*) > FROM > `bigquery-public-data`.samples.shakespeare' Waiting on bqjob_r5dc0d7cca7a2a56_0000017b2be329b3_1 ... (0s) Current status: DONE +--------+ | f0_ | +--------+ | 164656 | +--------+
gcloud container clusters get-credentials CLUSTER_NAME --zone ZONE
-
Authentifiziere und speichere die Anmeldeinformationen für einen Google Kubernetes Engine-Cluster, damit du anschließend die Kubernetes-CLI kubectl verwenden kannst. In der Ausgabe siehst du, dass die Anmeldeinformationen zwischengespeichert und ein kubeconfig-Eintrag erstellt wird, damit du kubectl natürlich verwenden kannst.
dhodun@cloudshell:~ (dhodun2)$ gcloud container clusters get-credentials my-first-cluster-1 --zone us-central1-c Fetching cluster endpoint and auth data. kubeconfig entry generated for my-first-cluster-1.
kubectl get pods
Jetzt kannst du kubectl verwenden, um mit deinem Cluster zu interagieren, wie du es mit jedem Kubernetes-Cluster tun würdest. Du wirst dies in Kapitel 6 verwenden.
dhodun@cloudshell:~ (dhodun2)$ kubectl get pods NAME READY STATUS RESTARTS AGE Redis 3/3 Running 0 2m1s web-server 3/3 Running 0 79s
Cloud Shell
Eine der großartigen Funktionen für den Einstieg in die Google Cloud ist Cloud Shell, eine browserbasierte Entwicklungs- und Betriebsumgebung. Dabei handelt es sich im Wesentlichen um eine kleine VM, die mit gcloud, kubectl, Client-Bibliotheken und anderen Tools gebootet wird und mit deinem Konto bei Google Cloud authentifiziert ist. Sie verfügt sogar über eine webbasierte integrierte Entwicklungsumgebung (IDE). Damit kannst du mit deiner Cloud-Umgebung arbeiten, ohne dass du Software auf deinem Desktop installieren musst. Außerdem kannst du dich damit über deinen Browser bei VMs anmelden, ohne dass du SSH-Schlüssel herunterladen und verwalten musst.
Hier erfährst du, wie mit Hilfe von Cloud Shell eine Verbindung zu einer VM herstellt:
Klicke in der Cloud-Konsole auf das Cloud-Shell-Symbol oben rechts, wie in Abbildung 1-13 dargestellt.
Sobald es bereitgestellt ist, führst du
gcloud config list
wie in Abbildung 1-14 aus, um zu sehen, dass du authentifiziert bist, auf dein aktuelles Projekt verweist und bereit bist, andere Befehle auszuführen.Du kannst auch die Cloud Shell auf der GCE-Seite verwenden, um SSH direkt auf einer VM zu nutzen. Wenn du die Test-VM noch nicht gelöscht hast, kannst du auf die Google Compute Engine-Seite gehen und auf die SSH-Schaltfläche rechts neben der VM klicken, um dies zu testen, wie in Abbildung 1-15.
Es öffnet sich ein neues Fenster, in dem neue SSH-Schlüssel auf die VM übertragen werden, damit du dich sicher verbinden kannst. Hinweis: Du musst dich nicht selbst um die Übertragung dieser Schlüssel kümmern!
Jetzt, wo du dich auf der VM befindest (siehe Abbildung 1-16), kannst du überprüfen, ob du Zugriff auf gcloud hast. Allerdings wirst du mit dem Standarddienstkonto authentifiziert und nicht mit deinem Benutzerkonto. Es ist nicht empfehlenswert, deine Benutzerdaten auf VMs zu hinterlegen, denn jeder, der Zugang zu diesem Rechner erhält, könnte sich für dich ausgeben, wenn er andere Google Cloud APIs aufruft.
Kundenbibliotheken
Da du zunehmend Cloud-native Anwendungen schreibst, wirst du in deinem Code mit immer mehr Cloud-Diensten interagieren. Du kannst zum Beispiel Dateien auf Google Cloud Storage speichern oder Nachrichten an den Pub/Sub-Nachrichtenbus schreiben. Anstatt direkt in die API zu schreiben, bietet Google Cloud Client-Bibliotheken in vielen Sprachen an, die das viel einfacher machen, darunter Go, Java, Node.js, Python, Ruby, PHP, C# und C++. Oft werden sie für einzelne Dienste oder Gruppen von Diensten ausgeliefert. Du kannst sie alle in den Cloud-Client-Bibliotheken sehen.
Hier ist ein sehr einfaches Beispiel für die Verwendung einer Client-Bibliothek im Vergleich zu gcloud und ähnlichen CLI-Befehlen, die wir bisher verwendet haben. Wir werden einen Bucket mit der Storage Client Library und der Cloud Shell erstellen. Wir verwenden ein Python-Skript und die Client-Bibliothek, um einen Google Cloud Storage Bucket zu erstellen und eine Datei hochzuladen.
Dieses Codebeispiel sowie alle anderen Codebeispiele für dieses Kapitel findest du im GitHub-Repository dieses Buches. Du kannst mitmachen und den Code für dieses Beispiel kopieren.
Öffne eine Cloud Shell-Umgebung, wie wir es gerade getan haben.
Klicke oben rechts in der Cloud Shell auf Editor öffnen, um die Cloud Shell IDE zu öffnen, wie in Abbildung 1-17 dargestellt.
Klicke im Datei-Explorer auf Datei und dann auf Neue Datei und nenne sie storage_script.py. Gib den folgenden Code in diese Datei ein. Ändere den Bucket-Namen in etwas Einzigartiges und Zufälliges. Dein Projektname ist eine gute Wahl. Speichere die Datei. Du findest das Skript auch im GitHub Repo, das du in deine Cloud Shell Umgebung klonen kannst.
from google.cloud import storage BUCKET_NAME = "INSERT-NEW-BUCKET-NAME" FILE = "file.txt" client = storage.Client() # create a new bucket bucket = client.bucket(BUCKET_NAME) bucket.storage_class = "STANDARD" new_bucket = client.create_bucket(bucket, location="us") # get the bucket (useful if it already exists) bucket = client.get_bucket(BUCKET_NAME) # create and upload a new blob from text blob = bucket.blob('remote/path/new_file.txt') blob.upload_from_string('New file!') print(blob.download_as_string()) # create and upload a new blob from file blob2 = bucket.blob('remote/path/file.txt') blob2.upload_from_filename(filename='file.txt') print(blob2.download_as_string())
Erstelle eine weitere Datei und nenne sie Datei.txt. Füge einen Text wie "Hello World!" hinzu und speichere die Datei.
Wenn du mit der Bearbeitung fertig bist, klicke auf Terminal öffnen auf der rechten Seite der Cloud Shell, wie in Abbildung 1-18, um wieder in den Terminalmodus zu gelangen.
Bevor du dein Skript ausführst, musst du mit dem Pip-Tool die Cloud Storage Client-Bibliothek für Python aus PyPi, dem Paket-Repository von Python, installieren.
pip3 install google-cloud-storage
Jetzt kannst du dein Skript ausführen.
python3 storage_script.py
Wenn das Skript die Inhalte beider Dateien liest, solltest du folgende Ausgabe sehen:
b'New file!' b'Hello World!'
Lösche deine Dateien und den Eimer, indem du den Browser benutzt, um zusätzliche Gebühren zu vermeiden.
Du hast gerade eine der Client-Bibliotheken verwendet, um dich programmatisch mit einem Google Cloud-Dienst zu verbinden. Es gibt viele Client-Bibliotheken, abhängig von den Diensten, mit denen du arbeitest.
Wenn du eher auf der Infrastrukturseite arbeitest, wirst du hauptsächlich die CLI-Tools oder Infrastruktur-Workflow-Tools wie Terraform verwenden, aber wenn du auf der Anwendungsseite arbeitest, wirst du häufig diese Client-Bibliotheken nutzen.
Beachte auch, dass wir bei der Erstellung des Clients client = storage.Client()
keine Anmeldedaten oder eine Projekt-ID angegeben haben. Das liegt daran, dass die Client-Bibliotheken die Anmeldedaten aus einer Reihe von Einstellungen auf dem lokalen Rechner ableiten können, angefangen bei den Standardanmeldedaten der Anwendung. In der Cloud Shell sind diese bereits für dein Benutzerkonto festgelegt worden.
Das würde den Rahmen dieser Einführung sprengen ( ), aber du solltest wissen, dass jeder Code, der auf deinem Computer läuft und auf eine Google Cloud API zugreift, versucht, deine potenziell mächtigen Nutzerdaten zu verwenden, wenn du deine eigenen Anmeldedaten als Standard-Anmeldedaten verwendest. Mehr dazu findest du in diesem Leitfaden.
Abrechnung
Auch wenn fortgeschrittene Einrichtung von Abrechnungskonten für Unternehmen den Rahmen dieses Buches sprengen würde, solltest du die Grundlagen der Abrechnung verstehen. Wenn du Google Cloud-Ressourcen in einem Projekt verbrauchst, werden die Gebühren aufgelistet und in der Regel nachts in der Konsole aktualisiert. Wenn du den Bereich Abrechnung in der Konsole öffnest, siehst du eine Zusammenfassung deiner aktuellen Kosten, wie in Abbildung 1-19.
Ein Projekt ist immer einem Abrechnungskonto zugeordnet, über das das Projekt bezahlt wird. Wenn du ein Projekt auf deiner Kreditkarte erstellt hast, hast du auch ein Rechnungskonto erstellt. In einem Unternehmen wird dir wahrscheinlich ein Projekt mit einem bereits zugewiesenen Rechnungskonto zugeteilt. Das Finanz- oder Beschaffungsteam kann dieses Konto verwalten, sodass sie die Kontrolle über den Zahlungsprozess haben und du die Kontrolle über deine Projektressourcen. Du kannst die aktuellen Kosten deines Projekts aber immer noch sehen, .
Preisgestaltung
Die Dienste von Google Cloud werden nach Verbrauch abgerechnet. Das heißt, es fallen keine Vorabkosten an, und die Dienste werden oft sekundenweise oder sogar noch weniger abgerechnet. Wenn du eine VM für 95 Sekunden eingeschaltet hast, zahlst du nur für 95 Sekunden Computernutzung.
Jeder Dienst hat ein anderes Preismodell. Bei BigQuery zum Beispiel zahlst du für die zugrunde liegende Speicherung, je nachdem, wie viele Daten du hast und wie lange sie gespeichert werden, und dann zahlst du auch für jede Abfrage, je nachdem, wie viele Daten gescannt werden. Bei Google Compute Engine hingegen zahlst du pro Sekunde für die Ressourcen, die für die eingeschalteten VMs verbraucht werden, z. B. Kerne, Arbeitsspeicher und Festplattenspeicher.
Wenn du gerade erst ein Konto erstellt hast, kannst du für ein paar Monate 300 $ kostenloses Guthaben nutzen. Viele Dienste haben auch eine kostenlose Stufe für eine geringe Nutzung, um dir den Einstieg zu erleichtern. Weitere Informationen findest du in der Dokumentation des jeweiligen Dienstes. Ein gutes Tool, um deine Kosten zu verstehen und vorherzusagen, ist der Google Cloud Preisrechner. Du kannst Dienste hinzufügen, um deine Rechnung zu schätzen, wie in Abbildung 1-20.
Cloud Code (IDE-Erweiterungen)
Ein weiteres Tool, das du unbedingt installieren solltest, ist Cloud Code, ein Plug-in für beliebte IDEs, VSCode und IntelliJ sowie Cloud Shell. Cloud Code bietet Autovervollständigung und In-IDE-Tools für Kubernetes- und Cloud Run-basierte Anwendungen. Er überbrückt die Lücke zwischen lokaler Entwicklung und der Bereitstellung in Cloud-Umgebungen, bietet Live-Debugging für deine Container-Workloads und ermöglicht es dir, diese Umgebungen mit einem einzigen Klick zu verwalten. Abbildung 1-21 zeigt die einfache Ausführung einer Anwendung aus der IDE, die auf einen lokalen Kubernetes-Minikube-Cluster ausgerichtet ist. Du kannst genauso einfach einen Cluster in der Cloud ansteuern.
Umzug von einer anderen Cloud
Wenn du von einer anderen Cloud zu Google wechselst, findest du eine Reihe sehr hilfreicher Leitfäden, um dein vorhandenes Wissen über Tools, Produkte, Dienste und Architekturen auf die Google Cloud-Welt zu übertragen. Wir empfehlen dir, dich schon früh mit diesen Informationen vertraut zu machen:
Dieses Kochbuch
Der Rest des Buches ist nach Technologie- oder Produktbereichen unterteilt. Spezielle Kapitel behandeln zum Beispiel Themen wie Kubernetes und BigQuery. Die restlichen Kapitel sind ebenfalls in das typische Kochbuchformat unterteilt, mit einem zu lösenden Problem und einer Lösung unter Verwendung von Cloud-Tools, begleitet von Beispielcode oder Skripten. Kommen wir nun zu Kapitel 2, in dem es um Google Cloud Functions geht.
Get Google Cloud Kochbuch now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.