Vorwort
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
Mit der allgemeinen Einführung von Microservices und Containern in den letzten Jahren hat sich die Art und Weise, wie wir Software entwerfen, entwickeln und betreiben, radikal verändert. Heutige Anwendungen sind auf Verfügbarkeit, Skalierbarkeit und schnelle Markteinführung optimiert. Aufgrund dieser neuen Anforderungen erfordern moderne Anwendungen andere Muster und Praktiken. Dieses Buch soll Entwicklern dabei helfen, die gängigsten Muster für die Erstellung von Cloud-nativen Anwendungen mit Kubernetes zu entdecken und kennenzulernen. Werfen wir zunächst einen kurzen Blick auf die beiden Hauptbestandteile dieses Buches: Kubernetes und Entwurfsmuster.
Kubernetes
Kubernetes ist eine Container-Orchestrierungsplattform. Der Ursprung von Kubernetes liegt irgendwo in den Google-Rechenzentren, wo Googles interne Container-Orchestrierungsplattform, Borg, geboren wurde. Google nutzte Borg viele Jahre lang, um seine Anwendungen auszuführen. Im Jahr 2014 beschloss Google, seine Erfahrungen mit Borg in ein neues Open-Source-Projekt namens "Kubernetes" (griechisch für "Steuermann" oder "Lotse") zu übertragen. Im Jahr 2015 wurde es als erstes Projekt an die neu gegründete Cloud Native Computing Foundation (CNCF) gespendet.
Von Anfang an gewann Kubernetes eine ganze Gemeinschaft von Nutzern, und die Zahl der Mitwirkenden wuchs unglaublich schnell. Heute gilt Kubernetes als eines der beliebtesten Projekte auf GitHub. Man kann mit Fug und Recht behaupten, dass Kubernetes die am weitesten verbreitete und funktionsreichste Container-Orchestrierungsplattform ist. Kubernetes bildet auch die Grundlage für andere Plattformen, die darauf aufbauen. Das bekannteste dieser Platform-as-a-Service-Systeme ist Red Hat OpenShift, das verschiedene zusätzliche Funktionen zu Kubernetes bietet. Dies sind nur einige Gründe, warum wir Kubernetes als Referenzplattform für die Cloud Native Patterns in diesem Buch gewählt haben.
Dieses Buch setzt voraus, dass du einige Grundkenntnisse über Kubernetes hast. In Kapitel 1 rekapitulieren wir die wichtigsten Kubernetes-Konzepte und legen die Grundlage für die folgenden Muster.
Entwurfsmuster
Das Konzept von für Entwurfsmuster stammt aus den 1970er Jahren und kommt aus dem Bereich der Architektur. Christopher Alexander, ein Architekt und Systemtheoretiker, und sein Team veröffentlichten 1977 das bahnbrechende Werk A Pattern Language (Oxford University Press), das architektonische Muster für die Gestaltung von Städten, Gebäuden und anderen Bauprojekten beschreibt. Einige Zeit später wurde diese Idee von der neu entstandenen Softwareindustrie übernommen. Das bekannteste Buch in diesem Bereich ist Design Patterns-Elements of Reusable Object-Oriented Software von Erich Gamma, Richard Helm, Ralph Johnson und John Vlissides-the Gang of Four (Addison-Wesley). Wenn wir über die berühmten Singleton, Factories oder Delegation Patterns sprechen, dann ist das auf dieses wegweisende Werk zurückzuführen. Seitdem wurden viele weitere großartige Pattern-Bücher für verschiedene Bereiche und mit unterschiedlichem Detaillierungsgrad geschrieben, wie Enterprise Integration Patterns von Gregor Hohpe und Bobby Woolf (Addison-Wesley) oder Patterns of Enterprise Application Architecture von Martin Fowler (Addison-Wesley).
Kurz gesagt, ein Muster beschreibt eine wiederholbare Lösung für ein Problem.1 Diese Definition gilt auch für die Muster, die wir in diesem Buch beschreiben, nur dass wir wahrscheinlich nicht so viele unterschiedliche Lösungen haben. Ein Muster unterscheidet sich von einem Rezept, weil es keine Schritt-für-Schritt-Anleitung zur Lösung eines Problems gibt, sondern eine Blaupause für die Lösung einer ganzen Klasse von ähnlichen Problemen. Das alexandrinische Muster Beer Hall beschreibt zum Beispiel, wie öffentliche Trinkhallen gebaut werden sollten, in denen "Fremde und Freunde Trinkgenossen sind" und nicht "Anker der Einsamen". Alle Hallen, die nach diesem Muster gebaut wurden, sehen unterschiedlich aus, haben aber gemeinsame Merkmale, wie z. B. offene Alkoven für Gruppen von vier bis acht Personen und einen Ort, an dem sich hundert Menschen treffen können, um Getränke, Musik und andere Aktivitäten zu genießen.
Ein Muster bietet jedoch mehr als nur eine Lösung. Es geht auch darum, eine Sprache zu bilden. Die Muster in diesem Buch bilden eine dichte, nomenorientierte Sprache, in der jedes Muster einen eigenen Namen hat. Wenn diese Sprache etabliert ist, rufen diese Namen automatisch ähnliche mentale Repräsentationen hervor, wenn Menschen über diese Muster sprechen. Wenn wir zum Beispiel von einem Tisch sprechen, geht jeder, der Englisch spricht, davon aus, dass es sich um ein Stück Holz mit vier Beinen und einer Platte handelt, auf die man Dinge stellen kann. Das Gleiche passiert in der Softwareentwicklung, wenn man von einer "Fabrik" spricht. Im Kontext einer objektorientierten Programmiersprache assoziieren wir mit einer "Fabrik" sofort ein Objekt, das andere Objekte produziert. Weil wir sofort die Lösung hinter dem Muster kennen, können wir uns an noch ungelöste Probleme machen.
Es gibt noch weitere Merkmale einer Mustersprache. Zum Beispiel sind Muster miteinander verbunden und können sich überschneiden, sodass sie den größten Teil des Problemraums abdecken. Wie bereits im Original von A Pattern Language beschrieben, haben Patterns einen unterschiedlichen Grad an Granularität und Umfang. Allgemeinere Muster decken einen großen Problemraum ab und bieten eine grobe Anleitung zur Lösung des Problems. Granulare Muster haben einen sehr konkreten Lösungsvorschlag, sind aber weniger breit anwendbar. Dieses Buch enthält alle Arten von Patterns, und viele Patterns verweisen auf andere Patterns oder enthalten sogar andere Patterns als Teil der Lösung.
Ein weiteres Merkmal von Mustern ist, dass sie einem festen Format folgen. Allerdings definiert jeder Autor eine andere Form; leider gibt es keinen gemeinsamen Standard dafür, wie Muster aufgebaut sein sollten. Martin Fowler gibt unter "Writing Software Patterns" einen hervorragenden Überblick über die Formate, die für Pattern-Sprachen verwendet werden .
Wie dieses Buch strukturiert ist
Für dieses Buch haben wir ein einfaches Musterformat gewählt. Wir halten uns nicht an eine bestimmte Musterbeschreibungssprache. Für jedes Muster verwenden wir die folgende Struktur:
- Name
-
Jedes Muster trägt einen Namen, der auch der Titel des Kapitels ist. Der Name ist das Zentrum der Sprache des Musters.
- Problem
-
Dieser Abschnitt gibt den breiteren Kontext wieder und beschreibt den Musterraum im Detail.
- Lösung
-
Dieser Abschnitt zeigt, wie das Muster das Problem auf eine Kubernetes-spezifische Weise löst. Dieser Abschnitt enthält auch Querverweise zu anderen Mustern, die entweder mit dem Muster verwandt oder Teil des Musters sind.
- Diskussion
-
Dieser Abschnitt enthält eine Diskussion über die Vor- und Nachteile der Lösung für den gegebenen Kontext.
- Mehr Informationen
-
Dieser letzte Abschnitt enthält zusätzliche Informationsquellen zu dem Muster.
Wir haben die Muster in diesem Buch wie folgt organisiert:
-
Teil I, "Foundational Patterns", behandelt die Kernkonzepte von Kubernetes. Das sind die grundlegenden Prinzipien und Praktiken für die Entwicklung von Container-basierten Cloud-Native-Anwendungen.
-
Teil II, "Verhaltensmuster", beschreibt Muster, die auf den Grundmustern aufbauen und die Konzepte für die Verwaltung verschiedener Containertypen um den Laufzeitaspekt erweitern.
-
Teil III, "Strukturelle Muster", enthält Muster für die Organisation von Containern innerhalb eines Pods, dem Atom der Kubernetes-Plattform.
-
Teil IV, "Konfigurationsmuster", gibt einen Einblick in die verschiedenen Möglichkeiten, wie die Anwendungskonfiguration in Kubernetes gehandhabt werden kann. Dabei handelt es sich um granulare Muster, einschließlich konkreter Rezepte für die Verbindung von Anwendungen mit ihrer Konfiguration.
-
Teil V, "Sicherheitspatterns", befasst sich mit verschiedenen Sicherheitsproblemen, die entstehen, wenn eine Anwendung containerisiert und auf Kubernetes bereitgestellt wird.
-
Teil VI, "Advanced Patterns", ist eine Sammlung von fortgeschrittenen Konzepten, z. B. wie die Plattform selbst erweitert werden kann oder wie man Container-Images direkt im Cluster erstellt.
Je nach Kontext kann ein und dasselbe Muster in mehrere Kategorien passen. Jedes Musterkapitel ist in sich abgeschlossen; du kannst die Kapitel einzeln und in beliebiger Reihenfolge lesen.
Für wen dieses Buch ist
Dieses Buch richtet sich an Entwickler, die Cloud-native Anwendungen entwerfen und entwickeln und Kubernetes als Plattform nutzen wollen. Es eignet sich vor allem für Leser/innen, die mit Containern und Kubernetes-Konzepten vertraut sind und diese auf die nächste Stufe heben wollen. Du musst jedoch nicht die Details von Kubernetes kennen, um die Anwendungsfälle und Muster zu verstehen. Auch Architekten, Berater und anderes technisches Personal werden von den hier beschriebenen wiederholbaren Mustern profitieren.
Das Buch basiert auf Anwendungsfällen und Erkenntnissen aus realen Projekten. Es ist eine Sammlung bewährter Methoden und Muster aus jahrelanger Arbeit in diesem Bereich. Wir wollen dir helfen, die Kubernetes-First-Mentalität zu verstehen und bessere Cloud-native Anwendungen zu entwickeln - und nicht das Rad neu zu erfinden. Es ist in einem lockeren Stil geschrieben und ähnelt einer Reihe von Aufsätzen, die unabhängig voneinander gelesen werden können.
Schauen wir uns kurz an, was dieses Buch nicht ist:
-
Dieses Buch ist weder eine Einführung in Kubernetes noch ein Referenzhandbuch. Wir gehen auf viele Kubernetes-Funktionen ein und erklären sie ausführlich, aber wir konzentrieren uns auf die Konzepte hinter diesen Funktionen. Kapitel 1, "Einführung", bietet eine kurze Auffrischung der Kubernetes-Grundlagen. Wenn du ein umfassendes Buch über Kubernetes suchst, empfehlen wir dir Kubernetes in Action von Marko Lukša (Manning Publications).
-
Dieses Buch ist keine Schritt-für-Schritt-Anleitung, wie du einen Kubernetes-Cluster selbst einrichtest. Jedes Beispiel geht davon aus, dass du Kubernetes bereits eingerichtet und in Betrieb hast. Du hast mehrere Möglichkeiten, die Beispiele auszuprobieren. Wenn du lernen möchtest, wie du einen Kubernetes-Cluster einrichtest, empfehlen wir dir Kubernetes: Up and Running von Brendan Burns, Joe Beda, Kelsey Hightower und Lachlan Evenson (O'Reilly).
-
In diesem Buch geht es nicht um den Betrieb und die Verwaltung eines Kubernetes-Clusters für andere Teams. Wir haben die administrativen und betrieblichen Aspekte von Kubernetes bewusst übersprungen und Kubernetes aus der Sicht eines Entwicklers betrachtet. Dieses Buch kann Betriebsteams dabei helfen zu verstehen, wie ein Entwickler Kubernetes nutzt, aber es reicht nicht aus, um einen Kubernetes-Cluster zu verwalten und zu automatisieren. Wenn du lernen möchtest, wie man einen Kubernetes-Cluster betreibt, empfehlen wir Kubernetes Best Practices von Brendan Burns, Eddie Villalba, Dave Strebel und Lachlan Evenson (O'Reilly).
Was du lernen wirst
In diesem Buch gibt es eine Menge zu entdecken. Einige Muster lesen sich auf den ersten Blick wie Auszüge aus einem Kubernetes-Handbuch, aber bei näherem Hinsehen wirst du feststellen, dass die Muster aus einem konzeptionellen Blickwinkel heraus präsentiert werden, der in anderen Büchern zu diesem Thema nicht zu finden ist. Andere Muster werden mit detaillierten Schritten zur Lösung eines konkreten Problems erklärt, wie in Teil IV, "Konfigurationsmuster". In einigen Kapiteln erklären wir Kubernetes-Funktionen, die nicht so recht in eine Musterdefinition passen. Lass dich nicht davon irritieren, ob es ein Muster oder ein Feature ist. In allen Kapiteln befassen wir uns mit den Kräften, die von den ersten Prinzipien ausgehen, und konzentrieren uns auf Anwendungsfälle, Erfahrungen und bewährte Methoden. Das ist der wertvolle Teil.
Unabhängig von der Granularität des Musters lernst du alles, was Kubernetes für jedes einzelne Muster bietet, mit vielen Beispielen zur Veranschaulichung der Konzepte. Alle Beispiele wurden getestet und wir verraten dir, wie du den kompletten Quellcode in "Codebeispiele verwenden" bekommst .
Was ist neu in der zweiten Ausgabe?
Das Kubernetes-Ökosystem ist seit dem Erscheinen der ersten Ausgabe vor vier Jahren weiter gewachsen. Infolgedessen gab es viele Kubernetes-Veröffentlichungen, und immer mehr Tools und Muster für die Nutzung von Kubernetes sind zu De-facto-Standards geworden.
Glücklicherweise haben sich die meisten der in unserem Buch beschriebenen Muster bewährt und sind weiterhin gültig. Deshalb haben wir diese Muster aktualisiert, neue Funktionen bis zu Kubernetes 1.26 hinzugefügt und veraltete und veraltete Teile entfernt. Größtenteils waren nur geringfügige Änderungen notwendig, mit Ausnahme von Kapitel 29, "Elastic Scale", und Kapitel 30, "Image Builder", die aufgrund neuer Entwicklungen in diesen Bereichen erhebliche Änderungen erfuhren.
Außerdem haben wir fünf neue Muster aufgenommen und eine neue Kategorie, Teil V, "Sicherheitsmuster", eingeführt , die eine Lücke in der ersten Ausgabe schließt und wichtige sicherheitsrelevante Muster für Entwickler enthält.
Unsere GitHub-Beispiele wurden aktualisiert und erweitert. Und schließlich haben wir unseren Lesern 50 % mehr Inhalte zur Verfügung gestellt.
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.
Wie bereits erwähnt, bilden Muster eine einfache, miteinander verknüpfte Sprache. Um dieses Netz von Mustern zu betonen, wird jedes Muster groß und kursiv geschrieben (z. B. Sidecar). Wenn der Name eines Musters auch ein Kubernetes-Kernkonzept ist (z. B. Init Container oder Controller), verwenden wir diese spezielle Formatierung nur, wenn wir direkt auf das Muster selbst verweisen. Wo es sinnvoll ist, verlinken wir die Kapitel der Muster auch untereinander, um die Navigation zu erleichtern.
Wir verwenden außerdem die folgenden Konventionen:
-
Alles, was du in einer Shell oder einem Editor eingeben kannst, wird in
constant width font
wiedergegeben. -
Kubernetes-Ressourcennamen werden immer in Großbuchstaben dargestellt (z. B. Pod). Wenn es sich bei der Ressource um einen kombinierten Namen wie ConfigMap handelt, behalten wir ihn aus Gründen der Klarheit und um deutlich zu machen, dass er sich auf ein Kubernetes-Konzept bezieht, zugunsten des natürlicheren "config map" bei.
-
Manchmal ist der Name einer Kubernetes-Ressource identisch mit einem gängigen Konzept wie "Service" oder "Node". In diesen Fällen verwenden wir das Format des Ressourcennamens nur, wenn wir uns auf die Ressource selbst beziehen.
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
Jedes Muster ist mit vollständig ausführbaren Beispielen unterlegt, die du auf der zugehörigen Webseite finden kannst. Den Link zu den Beispielen findest du im Abschnitt "Weitere Informationen" des jeweiligen Kapitels.
Der Abschnitt "Weitere Informationen" enthält auch Links zu weiteren Informationen über das Muster. Wir halten diese Listen im Beispiel-Repository auf dem neuesten Stand.
Der Quellcode für alle Beispiele in diesem Buch ist auf GitHub verfügbar. Im Repository und auf der Website findest du auch Hinweise und Anleitungen, wie du einen Kubernetes-Cluster zum Ausprobieren der Beispiele bekommst. Bitte schau dir die bereitgestellten Ressourcendateien an, wenn du die Beispiele durcharbeitest. Sie enthalten viele wertvolle Kommentare, die dein Verständnis für den Beispielcode fördern werden.
Viele Beispiele verwenden einen REST-Dienst namens random-generator, der Zufallszahlen liefert, wenn er aufgerufen wird. Er ist speziell für die Beispiele in diesem Buch entwickelt worden. Der Quellcode ist ebenfalls auf GitHub zu finden, und das Container-Image k8spatterns/random-generator
ist auf Docker Hub zu finden.
Wir verwenden eine JSON-Pfadnotation, um Ressourcenfelder zu beschreiben (z. B. verweist .spec.replicas
auf das Feld replicas
im Abschnitt spec
der Ressource).
Wenn du einen Fehler im Beispielcode oder in der Dokumentation findest oder eine Frage hast, zögere nicht, ein Ticket im GitHub Issue Tracker zu öffnen. Wir überwachen diese GitHub-Themen und beantworten gerne alle Fragen.
Der gesamte Beispielcode wird unter der Creative Commons Attribution 4.0 (CC BY 4.0) Lizenz verbreitet. Der Code ist frei verwendbar und du kannst ihn für kommerzielle und nicht-kommerzielle Projekte weitergeben und anpassen. Wenn du den Beispielcode kopierst oder weiterverteilst, solltest du jedoch auf dieses Buch verweisen.
Diese Angabe kann ein Verweis auf das Buch sein, einschließlich Titel, Autor, Verlag und ISBN, wie in "Kubernetes Patterns, 2nd Edition, von Bilgin Ibryam und Roland Huß (O'Reilly). Copyright 2023 Bilgin Ibryam und Roland Huß, 978-1-098-13168-5." Alternativ kannst du auch einen Link zur zugehörigen Website mit einem Copyright-Hinweis und einem Link zur Lizenz hinzufügen.
Wir freuen uns auch über Code-Beiträge! Wenn du denkst, dass wir unsere Beispiele verbessern können, freuen wir uns, von dir zu hören. Eröffne einfach ein GitHub-Problem oder erstelle einen Pull-Request und lass uns ins Gespräch kommen.
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 findest 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-889-8969 (in den Vereinigten Staaten oder Kanada)
- 707-829-7019 (international oder lokal)
- 707-829-0104 (Fax)
- support@oreilly.com
- https://www.oreilly.com/about/contact.html
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/kubernetes_patterns-2e aufrufen .
Neuigkeiten und Informationen über unsere Bücher und Kurse findest du unter https://oreilly.com.
Finde uns auf LinkedIn: https://linkedin.com/company/oreilly-media
Folge uns auf Twitter: https://twitter.com/oreillymedia
Schau uns auf YouTube: https://youtube.com/oreillymedia
Folge den Autoren auf Twitter: https: //twitter.com/bibryam, https://twitter.com/ro14nd
Folge den Autoren auf Mastodon: https://fosstodon.org/@bilgin, https://hachyderm.io/@ro14nd
Finde die Autoren auf GitHub: https://github.com/bibryam, https://github.com/rhuss
Folge ihren Blogs: https: //www.ofbizian.com, https://ro14nd.de
Danksagungen
Bilgin ist seiner wunderbaren Frau Ayshe unendlich dankbar für ihre unermüdliche Unterstützung und Geduld, während er an einem weiteren Buch arbeitete. Er ist auch dankbar für seine bezaubernden Töchter Selin und Esin, die es immer verstehen, ihm ein Lächeln ins Gesicht zu zaubern. Sie bedeuten ihm die Welt. Schließlich möchte Bilgin seinem fantastischen Koautor Roland dafür danken, dass er dieses Projekt in die Tat umgesetzt hat.
Roland ist seiner Frau Tanja zutiefst dankbar für ihre unermüdliche Unterstützung und Nachsicht während des gesamten Schreibprozesses, und er dankt auch seinem Sohn Jakob für seine Ermutigung. Außerdem möchte Roland Bilgin seine besondere Anerkennung für seine außergewöhnlichen Einsichten und seine schriftstellerische Arbeit aussprechen, ohne die das Buch nicht zustande gekommen wäre.
Die Erstellung von zwei Ausgaben dieses Buches war eine lange, mehrjährige Reise, und wir möchten uns bei unseren Rezensenten bedanken, die uns auf dem richtigen Weg gehalten haben.
Für die erste Ausgabe gebührt unser besonderer Dank Paolo Antinori und Andrea Tarocchi, die uns auf unserem Weg begleitet haben. Ein großes Dankeschön an Marko Lukša, Brandon Philips, Michael Hüttermann, Brian Gracely, Andrew Block, Jiri Kremser, Tobias Schneck und Rick Wagner, die uns mit ihrem Fachwissen und Ratschlägen unterstützt haben. Nicht zuletzt möchten wir uns bei unseren Redakteuren Virginia Wilson, John Devins, Katherine Tozer, Christina Edwards und all den großartigen Leuten bei O'Reilly bedanken, die uns geholfen haben, dieses Buch fertigzustellen.
Die Fertigstellung der zweiten Ausgabe war keine leichte Aufgabe, und wir sind allen dankbar, die uns dabei unterstützt haben. Wir danken unseren technischen Prüfern Ali Ok, Dávid Šimanský, Zbyněk Roubalík, Erkan Yanar, Christoph Stäbler, Andrew Block und Adam Kaplan sowie unserer Entwicklungsredakteurin Rita Fernando für ihre Geduld und Ermutigung während des gesamten Prozesses. Ein großes Lob geht an das O'Reilly-Produktionsteam, insbesondere an Beth Kelly, Kim Sandoval und Judith McConville, für ihre sorgfältige Arbeit an der Fertigstellung des Buches.
Wir möchten uns ganz besonders bei Abhishek Koserwal für seinen unermüdlichen und engagierten Einsatz in Kapitel 26, "Zugriffskontrolle", bedanken. Seine Beiträge kamen zu einem Zeitpunkt, an dem wir sie am dringendsten brauchten, und haben viel bewirkt.
1 Alexander und sein Team definierten die ursprüngliche Bedeutung im Kontext der Architektur wie folgt: "Jedes Muster beschreibt ein Problem, das in unserer Umgebung immer wieder auftritt, und beschreibt dann den Kern der Lösung für dieses Problem, und zwar so, dass man diese Lösung millionenfach verwenden kann, ohne es je zweimal auf die gleiche Weise zu tun."(A Pattern Language, Christopher Alexander et al., 1977.)
Get Kubernetes Patterns, 2. Auflage 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.