Vorwort

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Microservice-Architekturen können ein sehr effektiver Ansatz sein, um die Bereitstellung von Werten für dein Unternehmen und deine Kunden zu beschleunigen. Wenn du es richtig machst.

Wenn du es falsch anstellst, kannst du mit einem komplexen Chaos enden, das den Betrieb und die Wartung sehr schwierig macht und dich mit kleinen Teams zurücklässt, die versuchen, viele Dienste zu unterstützen, von denen sie einige noch nie angefasst haben.

Die Einführung von Microservices geht über die Auswahl eines Architekturansatzes hinaus. Um mit Microservices erfolgreich zu sein, musst du kulturelle und organisatorische Veränderungen vornehmen. Du musst zu autonomen, befähigten Teams übergehen.

Das bedeutet, dass viele Dinge, für die früher jemand anderes zuständig war, jetzt in der Verantwortung der Ingenieurteams liegen. Du musst über Systemdesign, Architektur und Implementierung hinaus denken. Dazu gehört auch, dass du dir überlegst, wie du Systeme baust, die du erfolgreich in der Produktion betreiben kannst, und wie du sie langfristig warten und verwalten kannst. Du musst die Architektur verteilter Systeme verstehen und wirst wahrscheinlich zumindest bei einigen Teilen deiner Infrastruktur selbst Hand anlegen müssen.

Dieses Buch hilft dir bei all dem. Es gibt dir praktische Ratschläge, wie du eine Microservice-Architektur einführst und wie du sicherstellst, dass sie auch nach mehreren Jahren noch funktioniert, indem du deine Systeme wartest und pflegst, während sie reifen.

Warum ich dieses Buch geschrieben habe

In diesem Buch geht es darum, wie du langfristig von Microservices profitieren kannst. Ich möchte vermeiden, dass du nach ein paar Jahren feststellst, dass die Komplexität ungewollt hoch ist und die Entwickler ihre Zeit mit Dingen verbringen, die keinen geschäftlichen Nutzen bringen. Wenn du bereits an diesem Punkt angelangt bist, möchte ich dir helfen, das Problem zu lösen.

Ich habe meine ersten Microservices 2013 entwickelt und bin acht Jahre später immer noch im selben Unternehmen und baue und betreibe die gleichen Systeme. Das bedeutet, dass ich die Probleme gesehen habe, versucht habe, sie zu lösen, und lange genug dabei war, um zu wissen, ob diese Lösungen tatsächlich funktionieren.

In dieser Zeit habe ich in der Produktentwicklung, im Betriebs- und Störungsmanagement und im Engineering Enablement gearbeitet. Dadurch habe ich einen umfassenden Einblick in den Umgang mit Microservices bekommen. Mein Ziel ist es, dich dabei zu unterstützen, eine Microservice-Architektur erfolgreich und nachhaltig zu nutzen.

Wer sollte dieses Buch lesen?

Dieses Buch richtet sich an leitende Ingenieure, Architekten und technische Führungskräfte, die auf Microservices umsteigen und sich fragen, was das für all die Techniken und Prozesse bedeutet, die sie derzeit nutzen. Es richtet sich auch an diejenigen, die bereits Microservices einsetzen, mit der Komplexität kämpfen und erfahren wollen, wie andere diese Herausforderungen erfolgreich gemeistert haben.

Ich gehe davon aus, dass du mit den grundlegenden Konzepten der Softwareentwicklung und -architektur vertraut bist, aber ich gehe nicht davon aus, dass du bereits Erfahrung mit Microservice-Architekturen hast.

Ich werde nicht viel Zeit auf die Details bestimmter Technologien verwenden oder Schritt für Schritt erklären, wie man etwas macht. Es gibt bereits Bücher, die diese Dinge abdecken, und ich werde sie an den entsprechenden Stellen empfehlen. Dieses Buch wird sich auf praktische Ratschläge konzentrieren, aber nicht auf eine bestimmte Technologie, sondern auf die Grundsätze, die dir helfen zu entscheiden, welche Werkzeuge du brauchst.

Wenn du diesen Architekturstil noch nicht kennst, ist Kapitel 1 ein einführendes Kapitel, in dem ich einen Überblick darüber gebe, was Microservices sind, welche Vor- und Nachteile sie haben und mit welchen Technologien sie sich durchgesetzt haben. Wenn du das Gefühl hast, dass du diese Dinge bereits verstehst, kannst du dieses Kapitel überspringen und mit Kapitel 2 beginnen.

Navigieren in diesem Buch

Jedes Kapitel in diesem Buch behandelt ein anderes Thema. Wenn du direkt zu einem bestimmten Kapitel springen willst, solltest du alles finden, was du brauchst, aber wenn du das Buch von Anfang bis Ende liest, wirst du sehen, dass jedes Kapitel auf dem vorherigen aufbaut.

Dieses Buch ist in drei Hauptteile gegliedert: Kontext, Organisationsstruktur und -kultur sowie Aufbau und Betrieb. Schauen wir uns an, was sie behandeln.

Teil I: Kontext

Damit ist der Rahmen abgesteckt - was sind Microservices, wie sieht Erfolg aus und sind Microservices das richtige Architekturmuster für dich?

Kapitel 1, "Microservices verstehen"

Wir beginnen mit einer ausführlichen Definition des Microservices-Architekturstils. Auch wenn du schon länger mit Microservices arbeitest, lohnt es sich, sich die Kernkonzepte in Erinnerung zu rufen und zu erfahren, warum Microservices überhaupt eingeführt wurden.

Kapitel 2, "Effektive Softwarebereitstellung"

Was macht eine effektive Softwareentwicklung aus? In diesem Kapitel geht es darum, wie wichtig es ist, schnell voranzukommen, an den wertvollsten Funktionen zu arbeiten, stabile und widerstandsfähige Systeme zu bauen, die Kontrolle über die Risiken zu behalten, einen Neuanfang zu vermeiden und schließlich eine Umgebung zu schaffen, in der die Mitarbeiter die meiste Zeit mit sinnvoller Arbeit verbringen können. Du kannst dir dieses Kapitel als Leitfaden vorstellen. Ich stelle die Konzepte vor, über die ich im weiteren Verlauf des Buches sprechen werde, um die wichtigsten Themen miteinander zu verknüpfen, bevor wir sie später im Detail aufschlüsseln.

Kapitel 3, "Sind Microservices das Richtige für dich?"

Microservices können eine sehr effektive Architektur sein, aber sie sind nicht der einzige Ansatz. Sind sie also die richtige Lösung für dich? Dieses Kapitel hilft dir bei dieser Einschätzung und erläutert, was du brauchst, um den Wechsel zu Microservices in Angriff nehmen zu können.

Teil II: Organisatorische Struktur und Kultur

Um mit Microservices erfolgreich zu sein, musst du mehr tun, als die Architekturmuster zu übernehmen. Es gibt organisatorische und kulturelle Überlegungen, auf die du dich als Erstes konzentrieren solltest, denn wenn du das nicht hinbekommst, nimmst du eine Menge zusätzlicher Komplexität auf dich, die dir nicht viel bringt. In diesem Teil geht es um die organisatorischen und kulturellen Herausforderungen.

Kapitel 4, "Das Conway'sche Gesetz und die Suche nachden richtigen Grenzen"

Das Conway'sche Gesetz besagt, dass Organisationen ihre Organisationsstruktur verfrachten: Wenn du zwei Entwicklungsgruppen hast, hast du auch zwei Systeme. Dieses Kapitel befasst sich mit den Auswirkungen. Es ist wichtig, dass du deine organisatorischen Grenzen an der richtigen Stelle ziehst.

Kapitel 5, "Effektive Teams aufbauen"

Um mit Microservices erfolgreich zu sein, brauchst du eine bestimmte Art von Organisationskultur: offen, lernfähig und für Veränderungen optimiert. In diesem Kapitel geht es um die Kultur, die nötig ist, um effektive Teams zu bilden, die autonom und funktionsübergreifend arbeiten und über alle Fähigkeiten verfügen, die für das Entwerfen, Erstellen und Bereitstellen vonFunktionen erforderlich sind.

Kapitel 6, "Ermöglichung von Autonomie"

Teams müssen in der Lage sein, sich in ihrem eigenen Tempo zu bewegen, anstatt darauf warten zu müssen, dass jemand außerhalb des Teams etwas tut. In diesem Kapitel geht es darum, wie man die Autonomie von Teams unterstützt, welche Erwartungen an sie gestellt werden und wie sie zusammenarbeiten.

Kapitel 7, "Engineering Enablement undWegbereiter"

Du kannst nicht alle Fähigkeiten in jedem Entwicklungsteam haben. Du musst zwischen den Plattform- und Infrastrukturdiensten, die jeder braucht, und den zu entwickelnden Produkten unterscheiden. Die Plattformteams sollten die Plattform entwickeln und betreiben, während die Entwicklungsteams die Dienste entwickeln und betreiben. Die Interaktionen zwischen den Teams müssen so reibungsarm wie möglich sein und gleichzeitig ein Maß an Sicherheit, Qualität und Kostenkontrolle gewährleisten, das dein Unternehmen erwarten würde. In diesem Kapitel geht es darum, wie du eine gepflasterte Straße bauen kannst: eine Reihe von Tools und Diensten, die allen deinen Produktentwicklungsteams das Leben leicht machen.

Kapitel 8, "Sicherstellen von 'You Build It, You Run It'"

Du kannst nicht schnell vorankommen, wenn jeder Dienst an jemand anderen übergeben werden muss, damit er läuft. Die Dienste müssen in der Produktion dem Team gehören, das den Code geschrieben hat. Das bringt Vorteile mit sich: Du baust die Dinge anders, wenn du die Person bist, die nachts um 2 Uhr angerufen werden könnte. Und du wirst wahrscheinlich einige Teams haben, die zu klein sind, um einen Bereitschaftsdienst außerhalb der Arbeitszeit zu organisieren. In diesem Kapitel erfährst du, wie du mit den veränderten Anforderungen umgehen kannst, damit der Bereitschaftsdienst nicht zu einem Reinfall wird.

Teil III: Bau und Betrieb

Der dritte Teil befasst sich mit den praktischen Aspekten des Aufbaus und Betriebs von Microservices. Jedes Kapitel behandelt Techniken, um das Beste aus Microservices herauszuholen. Es wird erklärt, wo sie einen anderen Ansatz als der Monolith erfordern, und es wird auf fast ein Jahrzehnt an Erfahrung zurückgegriffen.

Jedes Kapitel in diesem Abschnitt befasst sich damit, wie du es vermeiden kannst, in Schwierigkeiten zu geraten, aber auch damit, was du tun kannst, wenn du in den Sumpf gerätst.

Kapitel 9, "Aktiver Dienst - Eigentum"

Dienstleistungen müssen stark und aktiv in die Hand genommen werden. Und das muss von einem Team und nicht von einer Person gemacht werden. Aktive Verantwortung bedeutet, dass Abhängigkeiten aktualisiert, Warnungen überwacht, der Code überprüft und Sicherheitslücken geschlossen werden. In diesem Kapitel erfährst du, was aktive Verantwortung bedeutet und wie du sie erlangen kannst.

Kapitel 10, "Wert aus Tests ziehen"

In diesem Kapitel geht es um das Testen von Microservices. Schnelle, automatisierte Unit-Tests sind sehr wertvoll, aber Testen in der Produktion und eine gute Überwachung sind oft effektiver als End-to-End-Tests im Staging, die zu einer Hölle für die Wartung von Geräten werden können. Manuelle Tests müssen auf ein Minimum reduziert werden: Es dauert einfach zu lange, wenn du von einmal pro Woche auf mehrmals täglich umstellst.

Kapitel 11, "Governance und Standardisierung: Das Gleichgewicht finden"

Eines der Verkaufsargumente für Microservices ist die Möglichkeit, "das richtige Werkzeug für den Job" zu wählen. Die Flexibilität bei Programmiersprachen oder Datenspeicherung erhöht jedoch die Komplexität deines Unternehmens, verringert die Flexibilität, Mitarbeiter für die wichtigsten Aufgaben einzusetzen, und kann sowohl die Kosten als auch das Risiko erhöhen. In diesem Kapitel wird erörtert, wie du das richtige Gleichgewicht findest, wobei der Schwerpunkt auf der Einführung von Leitplanken, der Auswahl etablierter Technologien und einer leichtfüßigen Verwaltung liegt.

Kapitel 12, "Aufbau von Resilienz in"

Microservices sind verteilte Systeme und wir müssen sie anders aufbauen. In diesem Kapitel erfährst du, wie du widerstandsfähige Dienste aufbaust und wie du sie zu einem widerstandsfähigen System kombinierst.

Kapitel 13, "Betrieb deines Systems in der Produktion"

Hast du Slack-Kanäle, die aufgrund der Menge an Benachrichtigungen unbrauchbar sind? Oder hast du viele Benachrichtigungen, die alle ignorieren? Beides sind schlechte Nachrichten. Dieses Kapitel befasst sich mit den betrieblichen Herausforderungen von Microservices und erklärt, wie du Beobachtbarkeit einbaust und sicherstellst, dass du weißt, wann es ein echtes Problem gibt.

Kapitel 14, "Die Dinge auf dem neuesten Stand halten"

Bei so vielen verschiedenen Technologien und Diensten kannst du viel Zeit damit verbringen, Abhängigkeiten zu aktualisieren und von alten auf neue Softwareversionen umzusteigen. Noch schlimmer wird es, wenn ein dringender Sicherheitspatch Hunderte deiner Dienste betrifft. In diesem Kapitel geht es darum, wie du die Auswirkungen all dieser Änderungen so gering wie möglich halten kannst und wie du die Änderungen , die du vornehmen musst , effektiv verwaltest.

Anhänge

Am Ende des Buches fasse ich die Dinge zusammen. Ich erkläre, warum Microservices in vielen Fällen die richtige Wahl sind, und gebe dir Hinweise, wie du herausfinden kannst, ob sie für dich geeignet sind und ob du die notwendigen Voraussetzungen in Bezug auf Struktur, Kultur, Werkzeuge und Prozesse hast, um sie erfolgreich einzusetzen. Zum Schluss folgt eine kurze Liste mit Leseempfehlungen: die Bücher, die in Reichweite auf meinem Schreibtisch liegen, während ich dies schreibe; die Beiträge, die in den Tabs meines Webbrowsers geöffnet sind.

In diesem Buch verwendete Konventionen

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.

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 https://oreilly.com.

Wie du uns kontaktierst

Bitte richte Kommentare und Fragen zu diesem Buch an den Verlag:

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/enabling-microservice-success aufrufen .

Neuigkeiten und Informationen über unsere Bücher und Kurse findest du unter https://oreilly.com.

Du findest uns auf LinkedIn: https://linkedin.com/company/oreilly-media.

Sieh uns auf YouTube: https://youtube.com/oreillymedia.

Danksagungen

Zunächst einmal möchte ich den vielen Menschen danken, mit denen ich bei der Financial Times zusammengearbeitet habe. Ich habe in meiner Zeit bei der FT so viel gelernt und so viele Möglichkeiten bekommen.

Ich war über ein Jahrzehnt dort und könnte Hunderte von Menschen nennen, die mich beeinflusst haben, also möchte ich nur ein paar besonders hervorheben. Cait O'Riordan und John Kundert, die die Abteilung durch bedeutende Veränderungen geführt und mich ermutigt haben, aufzustehen und eine Führungsrolle zu übernehmen. Rob Shilston, der mich herausforderte, einen Vorschlag für die Velocity-Konferenz 2015 einzureichen, und mich auf den Weg brachte, eine Autorin zu werden. MeineKolleginnen und Kollegen in den Bereichen Content Programme, Operations & Reliability und Engineering Enablement: Danke, dass ihr so oft Ideen geteilt habt, Feedback gegeben habt und einfach großartig wart. Danke an euch alle!

Vielen Dank an: Daniel Bryant und Sam Newman für ihr Feedback zum Vorschlag und für ihre Hilfe in jeder Phase seither; Benji Weber, Abby Bangser, Tanya Reilly, Nicky Wrightson und Anna Shipman für ihr großartiges Feedback zu einem frühen Entwurf für das Buch und dem ersten Entwurf des ersten Kapitels, das ich geschrieben habe. Sie alle gaben mir großartiges, korrigierendes Feedback, das dieses Buch zu einem viel besseren gemacht hat.

Sam, Daniel, Anna, Nicky, Abby und Suhail Patel haben das gesamte Buch rezensiert. Vielen Dank dafür! Ihr wart alle so großzügig mit eurer Zeit und euer umfassendes Feedback hat dieses Buch deutlich gestrafft und verbessert. Natürlich sind alle verbleibenden Fehler meine eigenen.

Danke an Philip Müller für eine faszinierende Diskussion über Shopify und die Art und Weise, wie der modulare Monolith funktioniert; Matt Clarke für Informationen darüber, wie Spotify Plattform-Engineering betreibt; Charles Humble für die Einladung zu einem Gespräch in seinem Podcast Hacking the Org, bei dem mir die Diskussionen über Engineering Enablement beim ersten Entwurf des Kapitels über die Wegbereitung sehr geholfen haben; Matthew Skelton für sein Feedback zu den Kapiteln 4 und 5, die sich stark auf sein Buch Team Topologies stützen, und für den Austausch darüber, wie sich sein und Manuel Pais' Denken über Teamtypen weiterentwickelt; und an Simon Brown für die Erlaubnis, Inhalte aus seinem GOTO 2018-Vortrag "Modular Monoliths" wiederzuverwenden.

Ich war erstaunt, wie viele Menschen mir Fragen beantwortet haben, mir Details zu ihrer Arbeitsweise mitgeteilt haben, mich darüber aufgeklärt haben, ob ich etwas verstanden habe, was sie geschrieben haben, oder mir allgemein geholfen und mich ermutigt haben. In keiner besonderen Reihenfolge danke ich Liz Fong-Jones, Charity Majors, Susanne Kaiser, Joe Wardell, Stuart Davidson, Matt Chadburn, Alice Bartlett, Luke Blaney, Rhys Evans, Rob Godfrey, Liz Saling und Victoria Morgan-Smith.

Vielen Dank an alle bei O'Reilly. Louise Corrigan, der Akquisitionsredakteurin, meiner großartigen Entwicklungsredakteurin Jill Leonard und Melissa Duffield, der Auftragsredakteurin, die mich davon überzeugt hat, dass das Schreiben dieses Buches genau das ist, was ich während meiner "Spaßbeschäftigung" nach meinem Ausscheiden bei der FT tun sollte: Meine regelmäßigen Treffen mit euch dreien waren ein schöner Höhepunkt des Schreibprozesses. Danke auch an alle, die mein Buch durch den Produktionsprozess begleitet haben: Clare Laylock, Kim Cofer, Kate Dullea, Johnna VanHoose Dinse, Tonya Trybula, Karen Montgomery, David Futato, Kristen Brown, und anderen.

Und schließlich möchte ich mich bei meinem Mann Steve bedanken. Von meinen ersten Schritten als Rednerin bis hin zu den vielen Monaten des Schreibens, Nachdenkens, Umschreibens und Redigierens - ohne deine Unterstützung hätte ich das nicht geschafft.

Get Erfolgreiche Microservices ermöglichen 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.