Vorwort
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
Als ich im April 2019 von Cloud Run erfuhr, erkannte ich schnell, dass es sich um ein Produkt handelt, das die Entwicklung, Bereitstellung und Skalierung von "cloud-nativen" Webanwendungen radikal vereinfachen würde.
Die öffentliche Cloud hat Entwicklern und Unternehmen die Möglichkeit gegeben, physische Server und Rechenzentren in virtuelle zu verwandeln. Virtuelle Maschinen und virtuelle Netzwerke sind jedoch immer noch eine relativ niedrige Abstraktionsebene. Du kannst einen noch größeren Sprung machen, wenn du deine Anwendung so gestaltest, dass sie die Vorteile der modernen Cloud-Plattform voll ausnutzt. Cloud Run bietet eine höhere Abstraktionsebene als die eigentliche Serverinfrastruktur und ermöglicht es dir, dich auf den Code und nicht auf die Infrastruktur zu konzentrieren.
Dieses Buch ist der praktische Leitfaden, mit dem du den Einstieg in Cloud Run schaffst.
Warum ich dieses Buch geschrieben habe
In meinem Hauptberuf als Berater bei Binx.io arbeite ich als Ingenieur und Trainer. Ein großer Teil meiner Arbeit besteht darin, ein tiefes Verständnis dafür zu entwickeln, wie Technologie funktioniert, und das Gelernte an andere weiterzugeben, damit sie bessere Systeme bauen können.
Für mich ist die Veröffentlichung dieses Buches eine Möglichkeit, mehr Menschen zu erreichen und ihnen zu helfen, weiterzukommen. Ich habe dieses Buch für dich geschrieben! Dieses Buch wird dir helfen, dein Wissen zu erweitern, damit du in deinem Job effektiver arbeiten kannst. Ich hoffe, dass dir das mehr Spaß macht und dir neue Möglichkeiten eröffnet. Wenn dich mein Buch inspiriert hat, würde ich mich freuen, mit dir in Kontakt zu treten und mehr über dich zu erfahren! Schick mir eine Nachricht auf Twitter, meine DMs sind offen.
Für wen dieses Buch ist
Wenn du Webanwendungen erstellst, wartest oder bereitstellst, ist dieses Buch genau das Richtige für dich. Du könntest dich als Softwareentwicklung, Entwickler, Systemadministrator, Lösungsarchitekt oder Cloud Engineer bezeichnen. Ich habe ein ausgewogenes Verhältnis zwischen praktischen Demonstrationen und der Vertiefung der Grundlagen geschaffen, damit du von meinem Buch profitierst, egal ob du ein angehender, ein junger oder ein erfahrener Entwickler bist.
Warum die Sprache Go verwenden?
Die wenigen Code-Listings in diesem Buch verwenden Go, eine von Google entwickelte Programmiersprache. Sie eignet sich gut für die Entwicklung von serverloser Software und ihre Syntax ist leicht zu verstehen, was sie zu einer guten Sprache für die Codelisten macht.
Mit Go kannst du leistungsstarke, in sich geschlossene Programme erstellen, die wenig Ressourcen verbrauchen. Mit Go ist es außerdem einfach, Programme zu erstellen, die sehr schnell starten. Das ist ein Vorteil, wenn du Container baust, die bei Bedarf gestartet werden, um eingehende Anfragen zu bearbeiten.
Navigieren in diesem Buch
Dieses Buch ist wie folgt aufgebaut. Kapitel 1, Einführung, gibt einen allgemeinen Überblick darüber, was eine serverlose Anwendung ist, und führt dich in die Google Cloud und ihre serverlosen Produkte ein, ohne zu sehr in die Tiefe zu gehen. Wenn du neu in der Google Cloud bist, ist dies eine gute Einführung.
Kapitel 2, Cloud Run verstehen, ist eine praktische Einführung in Cloud Run. Ich zeige dir, wie du mit Google Cloud loslegst und deinen ersten Cloud Run-Dienst bereitstellst. Danach aktualisierst du deinen Dienst auf eine neue Version und änderst die Konfiguration. Während sich der erste Teil des Kapitels auf die Nutzung von Cloud Run konzentriert, erkläre ich im zweiten Teil die Laufzeitmerkmale von Cloud Run und wie sie die Art und Weise beeinflussen, wie du deine Anwendung erstellst. Außerdem vergleiche ich Cloud Run mit den anderen Serverless-Laufzeiten in der Google Cloud: App Engine und Cloud Functions.
In Kapitel 3, Erstellen von Containern, findest du eine gründliche Einführung in die Anwendungsentwicklung mit Containern. In diesem Kapitel zeige ich dir, wie du Container mit Docker auf deinem lokalen Rechner ausführst, deine eigenen Container-Images (mit und ohne Docker) erstellst und die Grundlagen von Containern kennenlernst.
Die Container von Cloud Run sind Einwegprodukte. Deshalb musst du Daten, die du über die Lebensdauer einer einzelnen Anfrage hinaus aufbewahren willst, in einer Datenbank oder einem anderen nachgelagerten System speichern. In Kapitel 4, Arbeiten mit einer relationalen Datenbank, gehe ich auf das verwaltete Produkt Cloud SQL (verwaltete relationale Datenbanken wie MySQL und PostgreSQL) ein, in Kapitel 5, Arbeiten mit HTTP-Sitzungen, folge ich MemoryStore (Redis). Ich spreche über Skalierbarkeit und Zuverlässigkeit, denn Cloud Run kann sehr schnell auf 1.000 Container skalieren. Man kann es sogar als hyper-skalierbar bezeichnen.
Vor allem, wenn du eine ernsthaftere Anwendung entwickelst, solltest du sicherstellen, dass jeder Cloud Run-Dienst in deinem System nur genau die Berechtigungen hat, die er braucht. In der Informationssicherheit ist dies auch als das Prinzip der geringsten Privilegien bekannt: Es hilft, die Auswirkungen einer Schwachstelle in einem Teil des Systems zu verringern. Deshalb stelle ich dir in Kapitel 6, Service-Identität und Authentifizierung, das Cloud-Identitäts- und Zugriffsmanagement (IAM) vor. In diesem Kapitel findest du eine praktische Demo von zwei Cloud Run-Diensten, von denen nur ein Dienst öffentlichen Datenverkehr empfängt, während der andere mit Cloud IAM geschützt wird.
Die meisten Anwendungen müssen Aufgaben planen, die zu einem späteren Zeitpunkt ausgeführt werden sollen, entweder direkt nach der Bearbeitung einer HTTP-Anfrage oder zu einem festgelegten Zeitpunkt. In Kapitel 7, Aufgabenplanung, stelle ich dir Cloud Tasks vor, wenn ich auf die Muster für die Aufgabenplanung eingehe.
In Kapitel 8, Infrastructure as Code Using Terraform, zeige ich dir, wie du mit Terraform, einem Infrastructure as Code (IaC) Tool, arbeitest. Mit Terraform kannst du dein gesamtes Projekt mit einem einzigen Befehl neu erstellen, was sich als nützlich erweist, wenn deine Anwendung über "Hello World" hinaus wächst. Wenn du noch dabei bist, Anwendungen zu erstellen, solltest du dieses Kapitel und die letzten beiden Kapitel vorerst auslassen und später darauf zurückkommen.
Ich möchte sicherstellen, dass du einen guten Überblick darüber hast, was in deinem System vor sich geht, wenn du für die Endnutzer in Betrieb gehst. Deshalb behandle ich strukturiertes Logging und Tracing in Kapitel 9, Strukturiertes Logging und Tracing. Wenn du ein System in der Produktion betreibst, ist es von grundlegender Bedeutung, dies richtig zu tun.
In Kapitel 10, Cloud Run und Knative Serving, gehe ich schließlich über die alltäglichen Probleme hinaus und denke über die Zukunft nach. Wenn du deine Anwendung auf einer herstellergesteuerten Plattform aufbaust, solltest du die Portabilität berücksichtigen.
In diesem Buch verwendete Konventionen
In diesem Buch werden die folgenden typografischen Konventionen verwendet:
- Kursiv
-
Weist auf neue Begriffe, URLs, E-Mail-Adressen, Dateinamen und Dateierweiterungen hin.
Constant width
-
Wird für Programmlistings sowie innerhalb von Absätzen verwendet, um auf Programmelemente wie Variablen- oder Funktionsnamen, Datenbanken, Datentypen, Umgebungsvariablen, Anweisungen und Schlüsselwörter hinzuweisen.
Constant width bold
-
Zeigt Befehle oder anderen Text an, der vom Benutzer wortwörtlich eingetippt werden sollte.
Constant width italic
-
Zeigt Text an, der durch vom Benutzer eingegebene Werte oder durch kontextabhängige Werte ersetzt werden soll.
Tipp
Dieses Element steht für einen Tipp oder eine Anregung.
Hinweis
Dieses Element steht für einen allgemeinen Hinweis.
Warnung
Dieses Element weist auf eine Warnung oder einen Warnhinweis hin.
Code-Beispiele verwenden
Zusätzliches Material (Code-Beispiele, Übungen usw.) steht unter zum Download bereit: https: //wietsevenema.eu/cloud-run-book.
Wenn du eine technische Frage oder ein Problem mit den Codebeispielen hast, sende bitte eine E-Mail an bookquestions@oreilly.com.
Dieses Buch soll dir helfen, deine Arbeit zu erledigen. Wenn in diesem Buch Beispielcode angeboten wird, darfst du ihn in deinen Programmen und deiner Dokumentation verwenden. Du musst uns nicht um Erlaubnis fragen, es sei denn, du reproduzierst einen großen Teil des Codes. Wenn du zum Beispiel ein Programm schreibst, das mehrere Teile des Codes aus diesem Buch verwendet, brauchst du keine Erlaubnis. Der Verkauf oder die Verbreitung von Beispielen aus O'Reilly-Büchern erfordert jedoch eine Genehmigung. Die Beantwortung einer Frage mit einem Zitat aus diesem Buch und einem Beispielcode erfordert keine Genehmigung. Wenn du einen großen Teil des Beispielcodes aus diesem Buch in die Dokumentation deines Produkts aufnimmst, ist eine Genehmigung erforderlich .
Wir freuen uns über eine Namensnennung, verlangen sie aber in der Regel nicht. Eine Quellenangabe umfasst normalerweise den Titel, den Autor, den Verlag und die ISBN. Zum Beispiel: "Building Serverless Applications with Google Cloud Run by Wietse Venema (O'Reilly). Copyright 2021 Wietse Venema, 978-1-492-05709-3."
Wenn du der Meinung bist, dass die Verwendung von Code-Beispielen nicht unter die Fair-Use-Regelung oder die oben genannte Erlaubnis fällt, kannst du uns gerne unter permissions@oreilly.com kontaktieren .
O'Reilly Online Learning
Hinweis
Seit mehr als 40 Jahren bietet O'Reilly Media Schulungen, Wissen und Einblicke in Technologie und Wirtschaft, um Unternehmen zum Erfolg zu verhelfen.
Unser einzigartiges Netzwerk von Experten und Innovatoren teilt sein Wissen und seine Erfahrung durch Bücher, Artikel und unsere Online-Lernplattform. Die Online-Lernplattform von O'Reilly bietet dir On-Demand-Zugang zu Live-Trainingskursen, ausführlichen Lernpfaden, interaktiven Programmierumgebungen und einer umfangreichen Text- und Videosammlung von O'Reilly und über 200 anderen Verlagen. Weitere Informationen erhältst du unter http://oreilly.com.
Wie du uns kontaktierst
Bitte richte Kommentare und Fragen zu diesem Buch an den Verlag:
- O'Reilly Media, Inc.
- 1005 Gravenstein Highway Nord
- Sebastopol, CA 95472
- 800-998-9938 (in den Vereinigten Staaten oder Kanada)
- 707-829-0515 (international oder lokal)
- 707-829-0104 (Fax)
Wir haben eine Webseite für dieses Buch, auf der wir Errata, Beispiele und zusätzliche Informationen auflisten. Du kannst diese Seite unter https://oreil.ly/BSA aufrufen .
Schreib eine E-Mail an bookquestions@oreilly.com, um Kommentare oder technische Fragen zu diesem Buch zu stellen.
Neuigkeiten und Informationen über unsere Bücher und Kurse findest du unter http://oreilly.com.
Finde uns auf Facebook: http://facebook.com/oreilly
Folge uns auf Twitter: http://twitter.com/oreillymedia
Schau uns auf YouTube: http://youtube.com/oreillymedia
Danksagungen
Ein Buch zu schreiben (vor allem dein erstes) ist ein entmutigendes Projekt, und das gilt im Jahr 2020 umso mehr. Kein Autor schreibt ein Buch allein. Mein Name steht auf dem Umschlag dieses Buches, aber hinter mir steht ein Team von unsichtbaren Unterstützern - und sie waren genauso wichtig für die Fertigstellung dieses Werks wie ich selbst.
Stell dir vor, du bekommst eine E-Mail oder eine Direktnachricht auf Twitter von jemandem, den du nicht kennst und von dem du noch nie gehört hast, der ein Buch schreibt und deine Hilfe braucht. Was würdest du tun? Ich habe gelernt, dass viele Menschen aus Großzügigkeit und Freundlichkeit sagen: "Klar, wie kann ich helfen?". Ich bin dankbar, dass ich all diese wunderbaren Menschen auf meinem Weg getroffen habe. Einige von euch haben sich stundenlang mit meinen Entwürfen oder Diagrammen beschäftigt und mir geholfen, mich zu verbessern, zu reflektieren und neue Dinge zu lernen. Die meisten von euch habe ich noch nie persönlich getroffen. Ich hoffe, wir treffen uns irgendwann einmal!
Viele Leute haben mir mit Kapitelkritiken geholfen, meine Diagramme kommentiert, mich ermutigt oder mir geholfen, die richtigen Leute zu finden, mit denen ich Kontakt aufnehmen konnte. Dank ihnen ist dieses Buch von wesentlich besserer Qualität. In alphabetischer Reihenfolge, vielen Dank an:
Albert Brand, Armon Dadgar, Arne Timmerman, Bart Kooijman, Benjamin Komen, Bill Kennedy, Carl Tanner, Daniel Zivkovic, David Linthicum, Dean Shanahan, Femke Buijs, Graham Polley, Greg Wilson, Jason Polites, Jeff Bleiel, Joe Beda, Karolína Netolická, Kerim Satirli, Kyle Ruddy, Lak Lakshmanan, Liz Rice, Nagalenoj HariNagaSampath, Mattijs Bliek, Mike Truty, Oren Teich, Taylor Dolezal, Thijs Elferink, Tein de Vries, Vinod Ramachandran.
Ich möchte mich auch bei den Management-Teams von Binx und Xebia für ihre Unterstützung bedanken. Danke, dass ihr mir geholfen habt, trotz beruflicher Verpflichtungen Zeit zum Schreiben zu finden, und dass ihr eine großartige Unternehmenskultur geschaffen habt, die mich bei der Konzeption und Umsetzung des Plans, ein O'Reilly-Buch zu schreiben, unterstützt hat: Andrew de la Haije, Bart Verlaat, Daan Teunissen, Elaine Versloot, Martijn Botermans, Mark van Holstein, Walter van der Scheer.
Dem Produktionsteam bei O'Reilly danke ich dafür, dass ihr meine Entwürfe in ein greifbares Buch verwandelt und den Prozess reibungslos gestaltet habt: Beth Kelly, Holly Bauer Forsyth, Rachel Monaghan, Sue Klefstad, Rob Romano und David Futato.
Christopher Chedeau und David Lužar, vielen Dank, dass ihr das Open-Source-Projekt excalidraw ins Leben gerufen habt (das Tool, mit dem ich die Zeichnungen in diesem Buch erstellt habe). Euer Tool war von unschätzbarem Wert für meinen Denkprozess.
Ich möchte mich besonders bei Abdellfetah Sghiouar, Cen Liu, Jose Andrade und Suchit Puri von Google PSO bedanken. Ihr habt mir von Anfang an geholfen und maßgeblich dazu beigetragen, dass ich mich zu einem O'Reilly-Autor entwickelt habe. Abdel, du hast dir sehr viel Mühe gegeben, alle Kapitel zu prüfen, selbst als ich dir jede Woche ein Kapitel schickte, als der Abgabetermin nahte. Ich danke dir!
Robbert Brak, vielen Dank, dass du mir ein so großartiger Freund und Mentor warst, vor allem als ich gerade anfing, dieses Buch zu schreiben. Dein Feedback war immer sehr durchdacht und ehrlich. Du bist der Einzige, der alle Kapitel gelesen hat, auch die Kapitel, die es nicht ins Buch geschafft haben, und alle Kapitelüberarbeitungen. Es ist eine Tatsache, dass es dieses Buch ohne deine Unterstützung nicht gegeben hätte.
Richard Seroter, vielen Dank, dass du das gesamte Buch rezensiert hast. Deine Unterstützung, deine Ermutigung und dein kritisches Denken haben mir wirklich geholfen, die Ziellinie zu erreichen.
Chris Tippett, du bist einfach der freundlichste Fremde, den ich je im Internet getroffen habe. Vielen Dank, dass du mich auf der letzten Meile unterstützt hast! Ich verspreche dir: Wenn du dein Buch schreibst, werde ich jede einzelne Seite rezensieren!
Kathleen Carr, danke, dass du etwas in mir erkannt hast, das ich zu diesem Zeitpunkt noch gar nicht gesehen habe. Deine Unterstützung, deine Freundlichkeit und dein Vertrauen haben mir von Anfang an sehr viel bedeutet.
Jennifer Pollock, danke, dass du das Buch mitten in einer Pandemie nach Hause gebracht hast.
Steren Giannini, vielen Dank, dass du unermüdlich alle meine Fragen beantwortet, meine Diagramme überprüft und mir geholfen hast, sicherzustellen, dass alles, was ich geschrieben habe, richtig war.
Yuki Furuyama, ich habe mich mit ein paar einfachen Fragen kurz vor dem Abgabetermin an dich gewandt. Du hast nicht nur meine Fragen beantwortet, sondern bist auch sehr weit in die Tiefe gegangen, um ein grundlegendes Problem zu lösen, das du in dem Kapitel gesehen hast. Vielen Dank für deine Freundlichkeit und deine wertvollen Einblicke. Ohne dich wäre Kapitel 9 nicht das geworden, was es heute ist.
Kelsey Hightower, ich bin dankbar für deine Unterstützung und Ermutigung und möchte dir dafür danken, dass du ein tolles Vorwort geschrieben hast. Deine Führung war eine Inspiration für mich und für viele andere in der Tech-Community.
Sarah Grey, du weißt, dass ich das Buch ohne dich nicht fertiggestellt hätte. Ich habe so viel von dir gelernt und eines muss ich sagen: Ich weiß immer noch nicht, wie du es geschafft hast, dass ich mich an den Zeitplan gehalten habe. Ich vermisse unsere Lektoratssitzungen sehr - sie waren sowohl sehr lustig als auch produktiv.
Davy Landman, du hast mir beigebracht, wie man richtige Diagramme erstellt. Wenn es in diesem Buch einen unbeschrifteten Pfeil gibt, ist das allein meine Schuld. Ich erinnere mich auch noch gut an ein entscheidendes Treffen im Dezember 2019, als du mir geholfen hast, das Durcheinander zu strukturieren, das mein Manuskript zu diesem Zeitpunkt war. Und vor allem danke ich dir, dass du meine beste Freundin bist.
Danke, Annemieke, Merel und Jasmijn, für euer Verständnis und dafür, dass ihr all die Stunden (und Nächte) ertragen habt, die ich mit Schreiben und Programmieren verbracht habe. Ihr seid der Grund, warum es das alles wert ist.
Get Serverlose Anwendungen mit Google Cloud Run erstellen 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.