Sie sind hier
E-Book

Microservices (mitp Professional)

Konzeption und Design

AutorSam Newman
Verlagmitp Verlags GmbH & Co. KG
Erscheinungsjahr2015
Seitenanzahl312 Seiten
ISBN9783958450820
FormatPDF/ePUB
Kopierschutzkein Kopierschutz/DRM
GerätePC/MAC/eReader/Tablet
Preis29,99 EUR
* Feingranulare Systeme mit Microservices aufbauen * Design, Entwicklung, Deployment, Testen und Monitoring * Sicherheitsaspekte, Authentifizierung und Autorisierung Verteilte Systeme haben sich in den letzten Jahren stark verändert: Große monolithische Architekturen werden zunehmend in viele kleine, eigenständige Microservices aufgespalten. Aber die Entwicklung solcher Systeme bringt Herausforderungen ganz eigener Art mit sich. Dieses Buch richtet sich an Softwareentwickler, die sich über die zielführenden Aspekte von Microservice-Systemen wie Design, Entwicklung, Testen, Deployment und Monitoring informieren möchten. Sam Newman veranschaulicht und konkretisiert seine ganzheitliche Betrachtung der grundlegenden Konzepte von Microservice-Architekturen anhand zahlreicher praktischer Beispiele und Ratschläge. Er geht auf die Themen ein, mit denen sich Systemarchitekten und Administratoren bei der Einrichtung, Verwaltung und Entwicklung dieser Architekturen in jedem Fall auseinandersetzen müssen. Aus dem Inhalt: * Vorteile von Microservices * Gestaltung von Services * Ausrichtung der Systemarchitektur an der Organisationsstruktur * Möglichkeiten zur Integration von Services * Schrittweise Aufspaltung einer monolithischen Codebasis * Deployment einzelner Microservices mittels Continuous Integration * Testen und Monitoring verteilter Systeme * Sicherheitsaspekte * Authentifizierung und Autorisierung zwischen Benutzer und Service bzw. zwischen Services untereinander * Skalierung von Microservice-Architekturen »Microservice-Architekturen besitzen viele interessante Eigenschaften, allerdings sind bei der Umstellung so einige Fallstricke zu beachten. Dieses Buch wird Ihnen helfen herauszufinden, ob Microservices für Ihre Zwecke geeignet sind und zeigt Ihnen, wie Sie die Fallstricke umgehen können.« Martin Fowler, Chief Scientist, ThoughtWorks

Sam Newman ist als Technologist bei ThoughtWorks tätig, wo er einerseits als Berater arbeitet und andererseits auch als Systemarchitekt für die unternehmenseigenen Systeme verantwortlich ist. Im Rahmen seiner Beratertätigkeit arbeitete er mit zahlreichen weltweit tätigen Unternehmen aus den unterschiedlichsten Geschäftsbereichen sowohl im Bereich der Entwicklung als auch des Betriebs von Microservice-Architekturen zusammen.

Kaufen Sie hier:

Horizontale Tabs

Leseprobe

Einleitung


Microservices sind ein Ansatz für verteilte Systeme, die die Nutzung feingranularer Services mit eigenen Entwicklungszyklen fördern, die sich gegenseitig zuarbeiten. Da Microservices vornehmlich im geschäftlichen Umfeld Anwendung finden, werden die bei herkömmlichen abgestuften Architekturen auftretenden Schwierigkeiten umgangen. Microservices nutzen außerdem die während des letzten Jahrzehnts entwickelten Technologien und Verfahren und vermeiden dadurch die Fallstricke, die mit vielen serviceorientierten Architekturen einhergehen.

Dieses Buch enthält eine Reihe konkreter Beispiele dafür, wie Microservices weltweit eingesetzt werden, etwa in Unternehmen wie Netflix, Amazon, Gilt und der REA-Gruppe, die allesamt festgestellt haben, dass ihnen die erhöhte Unabhängigkeit dieser Architektur große Vorteile bringt.

Wer sollte dieses Buch lesen?


Der Anwendungsbereich dieses Buches umfasst ein breites Spektrum, ebenso wie auch die Auswirkungen einer feingranularen Microservice-Architektur vielgestaltig sind. Es soll Leser ansprechen, die an verschiedenen Aspekten des Designs, der Entwicklung, des Deployments, des Testens und der Wartung dieser Systeme interessiert sind. Diejenigen Leser, die bereits damit begonnen haben, sich mit feiner unterteilten Architekturen zu beschäftigen – sei es nun einer vollkommen neuen Anwendung oder der Aufteilung eines bereits vorhandenen, eher monolithischen Systems –, werden viele praktische Ratschläge finden. Und auch denjenigen Lesern, die im Grunde nur wissen möchten, was der ganze Rummel eigentlich soll, wird geholfen, damit sie entscheiden können, ob Microservices für ihre Zwecke geeignet sind.

Der Grund für dieses Buch


Als es vor vielen Jahren zu meinen Aufgaben gehörte, anderen dabei zu helfen, Software schneller fertigzustellen, fing ich an, mich mit Anwendungsarchitekturen zu befassen. Mir war klar, dass automatisierte Infrastrukturen, Tests und kontinuierliche Weiterentwicklungen zwar durchaus hilfreich sind, man aber bald an die Grenzen des Machbaren stößt, wenn das grundlegende Design eines Systems es nicht erlaubt, schnell und einfach Modifizierungen daran vorzunehmen.

Zur selben Zeit experimentierten viele Unternehmen mit feiner unterteilten Architekturen, um vergleichbare Ergebnisse zu erzielen. Gleichzeitig sollten aber auch eine verbesserte Skalierbarkeit, eine größere Unabhängigkeit der Entwicklerteams oder eine vereinfachte Übernahme neuer Technologien ermöglicht werden. Sowohl meine eigenen Erfahrungen als auch die meiner Kollegen bei ThoughtWorks und anderen Unternehmen bestätigten die Tatsache, dass eine größere Zahl eingesetzter unabhängiger Services mit eigenen Entwicklungszyklen unweigerlich zu weiteren Problemen führt, mit denen man sich auseinandersetzen muss. Dieses Buch soll in gewisser Weise eine Art zentrale Anlaufstelle sein und helfen, die breite Palette von Themen, die zum Verständnis von Microservices nötig ist, zu beschreiben. So etwas hätte mir seinerzeit wirklich außerordentlich geholfen!

Zum Stand der Dinge


Das Thema »Microservices« ist einem ständigen Wandel unterworfen. Obwohl die Idee an sich nicht neu ist (auch wenn der Begriff es ist), haben die Erfahrungen der Nutzer auf der ganzen Welt zusammen mit dem Aufkommen neuer Technologien maßgeblichen Einfluss auf die Verwendungsweise. Aufgrund der schnellen Fortentwicklung in diesem Bereich habe ich versucht, mich in den folgenden Kapiteln weniger auf bestimmte Technologien als vielmehr auf die grundlegenden Konzepte zu konzentrieren, und zwar wohlwissend, dass sich Details der Implementierung stets schneller ändern als die dahinterstehenden Ideen. Dessen ungeachtet erwarte ich absolut, dass wir in einigen Jahren noch besser verstehen werden, wann der Einsatz von Microservices angebracht ist und wie sie vernünftigerweise eingesetzt werden.

Aufbau des Buches


Der Aufbau dieses Buches orientiert sich vornehmlich an den behandelten Themen. Sie können daher direkt zu einem bestimmten Thema springen, das Sie am meisten interessiert. Ich habe mich bemüht, wichtige Begriffe und Konzepte gleich in den ersten Kapiteln zu erläutern und gehe davon aus, dass selbst Leser, die sich als recht erfahren einschätzen, in jedem Kapitel noch etwas von Interesse entdecken. Grundsätzlich empfehle ich Ihnen, sich Kapitel 2 anzusehen, das einen Eindruck von der Tiefe des Themas vermittelt und umreißt, wie ich im weiteren Verlauf des Buches vorgehe, falls Sie sich mit den nachfolgenden Inhalten eingehender beschäftigen möchten.

Ich hoffe, ich habe die Kapitel für Leser, denen das Thema neu ist, in der richtigen Reihenfolge angeordnet, damit das Buch in sinnvoller Weise von vorn bis hinten durchgelesen werden kann.

Hier ein Überblick über den Inhalt des Buches:

Kapitel 1 – Microservices Wir beginnen mit einer Einführung in das Thema Microservices, in der die wesentlichen Vorteile, aber auch einige der Nachteile dargestellt werden.

Kapitel 2 – Der fortentwickelte Systemarchitekt In diesem Kapitel kommen die Schwierigkeiten zur Sprache, denen man als Systemarchitekt gegenübersteht, weil man Kompromisse eingehen muss. Außerdem wird erörtert, was bei der Verwendung von Microservices alles zu beachten ist.

Kapitel 3 – Gestaltung von Services Hier werden die Grenzen der Microservices erkundet. Um uns auf das Wesentliche zu konzentrieren, kommen dabei Verfahren des vom Anwendungsbereich geprägten Designs (Domain-Driven Design?, D?DD) zum Einsatz.

Kapitel 4 – Integration An dieser Stelle beschäftigen wir uns eingehender mit bestimmten Auswirkungen der Technologien und erörtern, welche Arten der Zusammenarbeit von Services am nützlichsten sind. Des Weiteren werden wir auf die Themen Benutzerschnittstelle und Integration vorhandener und seriengefertigter Produkte (Commercial off-the-shel?f ,? COTS) eingehen.

Kapitel 5 – Die Aufspaltung des Monolithen In vielen Fällen richtet sich das Interesse auf die Microservices, um sie in großen, nur schwer änderbaren monolithischen Systemen sozusagen als Gegenmittel einzusetzen. Genau dieser Ansatz wird in diesem Kapitel ausführlich untersucht.

Kapitel 6 – Deployment Das Buch ist zwar weitgehend theoretischer Natur, allerdings wurde kaum ein anderes der behandelten Themen so sehr durch die jüngsten technologischen Neuerungen beeinflusst wie das Deployment. Dieser Aspekt wird hier eingehender betrachtet.

Kapitel 7 – Testen Dieses Kapitel geht dem Thema Testen auf den Grund – einem Bereich, der gerade beim Deployment mehrerer eigenständiger Services von Bedeutung ist. Besonders interessant ist hier die Rolle, die Consumer-Driven Contracts? (CDC?s) für die Gewährleistung der Qualität unserer Software spielen.

Kapitel 8 – Monitoring Die vor der Auslieferung durchgeführten Tests helfen uns nicht weiter, wenn Probleme erst auftreten, nachdem die Software bereits online gestellt wurde. In diesem Kapitel wird untersucht, wie sich verteilte Systeme überwachen lassen und wie man die bei solchen Systemen auftretende Komplexität handhabt.

Kapitel 9 – Sicherheit Hier betrachten wir die Sicherheitsaspekte von Microservices und untersuchen, wie Authentifizierung und Autorisierung zwischen Benutzer und Service bzw. zwischen Services gehandhabt werden. Sicherheit ist ein sehr wichtiges Thema, das allzu leicht vernachlässigt wird. Ich bin zwar keineswegs ein Sicherheitsexperte, hoffe jedoch, dass dieses Kapitel Ihnen dabei hilft, beim Aufbau Ihrer Systeme bedeutsame Sicherheitsaspekte in Betracht zu ziehen – insbesondere, wenn es sich um Microservice-Systeme handelt.

Kapitel 10 – Conways Gesetz und Systemdesign Dieses Kapitel widmet sich dem Zusammenspiel zwischen Organisationsstruktur und Systemarchitektur. Wie viele Unternehmen bereits feststellen mussten, führt es zu Problemen, wenn diese beiden Faktoren nicht aufeinander abgestimmt sind. Wir werden versuchen, die Ursachen dieses Dilemmas zu erörtern und betrachten verschiedene Möglichkeiten, das Systemdesign an die Struktur des Entwicklerteams anzugleichen.

Kapitel 11 – Microservices skalieren Hier werden wir uns ansehen, wie Microservices skalieren, damit wir die bei einer großen Zahl von Services und hohem Datenaufkommen wachsende Wahrscheinlichkeit eines Systemausfalls handhaben können.

Kapitel 12 – Auf den Punkt gebracht Das letzte Kapitel bemüht sich, die Besonderheiten von Microservices hervorzuheben. Es enthält eine Liste von sieben für Microservices geltende Prinzipien und arbeitet die Kernpunkte des Buches heraus.

Konventionen dieses Buches


In diesem Buch gelten folgende typografische Konventionen:

  • Neue Begriffe, Dateinamen und Dateinamenerweiterungen sind kursiv gedruckt.

  • URLs und...

Blick ins Buch
Inhaltsverzeichnis
Cover1
Titel3
Impressum4
Inhaltsverzeichnis5
Einleitung15
Über den Autor20
Kapitel 1: Microservices21
1.1 Was sind Microservices?22
1.1.1 Klein und darauf spezialisiert, eine bestimmte Aufgabe richtig gut zu erledigen22
1.1.2 Eigenständigkeit23
1.2 Die wichtigsten Vorteile24
1.2.1 Verschiedenartige Technologien24
1.2.2 Belastbarkeit26
1.2.3 Skalierung26
1.2.4 Komfortables Deployment27
1.2.5 Betriebliche Abstimmung28
1.2.6 Modularer Aufbau28
1.2.7 Austauschbarkeit29
1.3 Was ist mit serviceorientierten Architekturen?29
1.4 Weitere Verfahren zur Aufspaltung30
1.4.1 Programmbibliotheken31
1.4.2 Module31
1.5 Kein Patentrezept33
1.6 Fazit33
Kapitel 2: Der fortentwickelte Systemarchitekt35
2.1 Unangebrachte Vergleiche35
2.2 Das Zukunftsbild eines Systemarchitekten37
2.3 Zoneneinteilung39
2.4 Ein grundsätzlicher Ansatz40
2.4.1 Strategische Ziele41
2.4.2 Prinzipien41
2.4.3 Praktiken42
2.4.4 Prinzipien und Praktiken vereinigen42
2.4.5 Ein Praxisbeispiel43
2.5 Mindestvorgaben44
2.5.1 Monitoring44
2.5.2 Schnittstellen45
2.5.3 Architektonische Sicherheit45
2.6 Lenkung durch Code46
2.6.1 Musterbeispiele46
2.6.2 Maßgeschneiderte Servicevorlagen46
2.7 Technische Schulden48
2.8 Ausnahmebehandlung49
2.9 Governance und Steuerung aus der Mitte50
2.10 Aufbau eines Entwicklerteams52
2.11 Fazit52
Kapitel 3: Gestaltung von Services55
3.1 Kurz vorgestellt: MusicCorp55
3.2 Wodurch zeichnet sich ein guter Service aus?56
3.2.1 Lose Kopplung56
3.2.2 Hochgradige Geschlossenheit56
3.3 Begrenzter Kontext57
3.3.1 Geteilte und verborgene Modelle58
3.3.2 Module und Services59
3.3.3 Verfrühte Aufteilung60
3.4 Funktionalitäten des Kontexts61
3.5 Schildkröten bis ganz unten61
3.6 Kommunikation unter geschäftlichen Aspekten63
3.7 Der technische Rahmen63
3.8 Fazit65
Kapitel 4: Integration67
4.1 Die Suche nach der optimalen Integrationsmethode67
4.1.1 Zu Ausfällen führende Änderungen vermeiden67
4.1.2 Technologieunabhängige APIs verwenden67
4.1.3 Services für den Nutzer vereinfachen68
4.1.4 Implementierungsdetails verbergen68
4.2 Kundendatensätze68
4.3 Gemeinsame Nutzung der Datenbank69
4.4 Synchrone kontra asynchrone Kommunikation70
4.5 Orchestrierung kontra Choreografie72
4.6 Aufruf entfernter Prozeduren (RPC)75
4.6.1 Kopplung von Technologien76
4.6.2 Lokale Aufrufe sind keine entfernten Aufrufe76
4.6.3 Fragilität77
4.6.4 Ist RPC ein Übel?78
4.7 REST79
4.7.1 REST und HTTP80
4.7.2 HATEOAS81
4.7.3 JSON, XML oder etwas anderes?83
4.7.4 Vorsicht vor zu viel Komfort84
4.7.5 Nachteile von REST über HTTP85
4.8 Implementierung asynchroner ereignisgesteuerter Kollaboration86
4.8.1 Verfügbare Technologien86
4.8.2 Die Kompliziertheit asynchroner Architekturen88
4.9 Services als Zustandsautomaten90
4.10 Reactive Extensions90
4.11 DRY und die Gefahren der Wiederverwendung von Code im Microservices-Umfeld91
4.11.1 Client-Bibliotheken92
4.12 Zugriff über Referenzen93
4.13 Versionierung95
4.13.1 Solange wie möglich hinauszögern95
4.13.2 Zu Ausfällen führende Änderungen rechtzeitig erkennen96
4.13.3 Verwendung semantischer Versionierung97
4.13.4 Mehrere Endpunkte gleichzeitig betreiben98
4.13.5 Mehrere Serviceversionen gleichzeitig betreiben99
4.14 Benutzerschnittstellen101
4.14.1 Zunehmend digital101
4.14.2 Voraussetzungen102
4.14.3 Aufbau der API102
4.14.4 Bausteine der Benutzeroberfläche104
4.14.5 Back-Ends für Front-Ends106
4.14.6 Ein Hybridansatz108
4.15 Integration der Software von Drittherstellern108
4.15.1 Fehlende Entscheidungsmöglichkeiten109
4.15.2 Anpassungen109
4.15.3 Integrationswirrwarr110
4.15.4 Auf sich selbst gestellt110
4.15.5 Das Strangler-Pattern113
4.16 Fazit114
Kapitel 5: Die Aufspaltung des Monolithen115
5.1 Seams115
5.2 Aufspaltung von MusicCorp116
5.3 Gründe zur Aufspaltung des Monolithen117
5.3.1 Tempo der Änderungen117
5.3.2 Teamstruktur118
5.3.3 Sicherheitsaspekte118
5.3.4 Technologie118
5.4 Verwickelte Abhängigkeiten118
5.5 Die Datenbank119
5.6 Dem Problem zu Leibe rücken119
5.7 Beispiel: Auflösen von Fremdschlüssel-Relationen120
5.8 Beispiel: Statische Daten gemeinsam nutzen122
5.9 Beispiel: Veränderliche Daten gemeinsam nutzen123
5.10 Beispiel: Tabellen gemeinsam nutzen125
5.11 Refactoring von Datenbanken126
5.11.1 Die Aufspaltung umsetzen126
5.12 Abgrenzung von Transaktionen127
5.12.1 Versuchen Sie es später noch mal129
5.12.2 Abbruch des gesamten Vorgangs129
5.12.3 Verteilte Transaktionen130
5.12.4 Was also tun?131
5.13 Berichte131
5.14 Datenbanken zur Berichterstellung132
5.15 Datenabruf über Serviceaufrufe134
5.16 Datenpumpen135
5.16.1 Alternative Ziele137
5.17 Ereignis-Datenpumpen137
5.18 Backup-Datenpumpe139
5.19 Benachrichtigung in Echtzeit139
5.20 Änderungen verursachen Aufwand140
5.21 Erkennen der eigentlichen Ursachen141
5.22 Fazit141
Kapitel 6: Deployment143
6.1 Continuous Integration für Einsteiger143
6.1.1 Machen Sie es auch richtig?144
6.2 Continuous Integration und Microservices145
6.3 Build Pipelines und Continuous Delivery148
6.3.1 Die unvermeidlichen Ausnahmen149
6.4 Plattformspezifische Artefakte150
6.5 Betriebssystemspezifische Artefakte151
6.6 Selbsterstellte Images152
6.6.1 Images als Artefakte154
6.6.2 Unveränderliche Server155
6.7 Umgebungen155
6.7.1 Servicekonfiguration157
6.7.2 Zuordnung der Services zu den Hosts158
6.7.3 Mehrere Services pro Host158
6.7.4 Anwendungscontainer161
6.7.5 Ein Service pro Host162
6.7.6 Platform-as-a-Service (PaaS)163
6.8 Automatisierung164
6.8.1 Zwei Fallstudien zur Leistungsfähigkeit der Automatisierung165
6.9 Physisch wird virtuell166
6.9.1 Herkömmliche Virtualisierung166
6.9.2 Vagrant168
6.9.3 Linux-Container168
6.9.4 Docker170
6.10 Schnittstelle für das Deployment171
6.10.1 Definition der Umgebung173
6.11 Fazit174
Kapitel 7: Testen177
7.1 Testtypen177
7.2 Testumfang178
7.2.1 Unit-Tests180
7.2.2 Servicetests181
7.2.3 End-to-End-Tests182
7.2.4 Nachteile182
7.2.5 Wie viele Tests?183
7.3 Implementierung von Servicetests183
7.3.1 Mock-Objekte kontra Platzhalter184
7.3.2 Ein intelligenterer Platzhalterservice185
7.4 Knifflige End-to-End-Tests185
7.5 Nachteile von End-to-End-Tests187
7.5.1 Unzuverlässige und fragile Tests187
7.5.2 Wer programmiert die Tests?188
7.5.3 Testdauer189
7.5.4 Das große Auftürmen190
7.5.5 Die Metaversion191
7.6 Abläufe testen, nicht Funktionalitäten191
7.7 Abhilfe durch Consumer-Driven Tests192
7.7.1 Pact194
7.7.2 Konversationen195
7.8 End-to-End-Tests: Pro und Kontra196
7.9 Testen nach der Veröffentlichung196
7.9.1 Deployment und Veröffentlichung trennen197
7.9.2 Canary-Veröffentlichung198
7.9.3 MTTR kontra MTBR200
7.10 Funktionsübergreifende Tests201
7.10.1 Geschwindigkeitstests202
7.11 Fazit203
Kapitel 8: Monitoring205
8.1 Ein Service, ein Server206
8.2 Ein Service, mehrere Server207
8.3 Mehrere Services, mehrere Server208
8.4 Protokolle, Protokolle und noch mehr Protokolle208
8.5 Kennzahlen mehrerer Services209
8.6 Servicekennzahlen211
8.7 Monitoringung von Pseudo-Ereignissen212
8.7.1 Implementierung des semantischen Monitorings213
8.8 Korrelations-IDs213
8.9 Die Aufrufkette216
8.10 Standardisierung216
8.11 Zielgruppen217
8.12 Wie geht es weiter?218
8.13 Fazit219
Kapitel 9: Sicherheit221
9.1 Authentifizierung und Autorisierung221
9.1.1 Gängige Single-Sign-On-Implementierungen222
9.1.2 Single-Sign-On-Gateway223
9.1.3 Fein unterteilte Authentifizierung225
9.2 Authentifizierung und Autorisierung von Services226
9.2.1 Im internen Netzwerk ist alles erlaubt226
9.2.2 Authentifizierung über HTTP(S)226
9.2.3 Verwendung von SAML oder OpenID Connect227
9.2.4 Client-Zertifikate228
9.2.5 HMAC über HTTP229
9.2.6 API-Schlüssel230
9.2.7 Das Stellvertreterproblem231
9.3 Schutz ruhender Daten233
9.3.1 Wohlbekannte Verfahren einsetzen234
9.3.2 Die Bedeutung der Schlüssel235
9.3.3 Was soll verschlüsselt werden?235
9.3.4 Entschlüsselung bei Bedarf236
9.3.5 Backups verschlüsseln236
9.4 Gestaffelte Sicherheitsstrategie236
9.4.1 Firewalls236
9.4.2 Protokollierung236
9.4.3 Intrusion-Detection-Systeme237
9.4.4 Unterteilung des Netzwerks237
9.4.5 Betriebssystem238
9.5 Ein ausgearbeitetes Beispiel239
9.6 Datensparsamkeit241
9.7 Der Faktor Mensch242
9.8 Eine Goldene Regel242
9.9 Integrierte Sicherheit243
9.10 Externe Prüfung243
9.11 Fazit244
Kapitel 10: Conways Gesetz und Systemdesign245
10.1 Beweise245
10.1.1 Lose und eng gekoppelte Organisationen246
10.1.2 Windows Vista246
10.2 Netflix und Amazon246
10.3 Was kann man damit anfangen?247
10.4 Anpassung an Kommunikationswege247
10.5 Verantwortlichkeit für Services249
10.6 Gemeinschaftliche Verantwortlichkeit für Services249
10.6.1 Schwierige Aufspaltung249
10.6.2 Feature-Teams250
10.6.3 Engpässe bei der Auslieferung250
10.7 Interner Open-Source-Code251
10.7.1 Aufgaben der Koordinatoren252
10.7.2 Ausgereifte Services253
10.7.3 Werkzeugsammlungen253
10.8 Begrenzte Kontexte und Teamstrukturen253
10.9 Verwaiste Services?254
10.10 Fallstudie: RealEstate.com.au254
10.11 Conways Gesetz auf den Kopf gestellt256
10.12 Menschen257
10.13 Fazit258
Kapitel 11: Microservices skalieren259
11.1 Ausfälle gibt es immer259
11.2 Wie viel ist zu viel?260
11.3 Schrittweiser Abbau der Funktionalität261
11.4 Architektonische Sicherheitsmaßnahmen262
11.5 Die antifragile Organisation265
11.5.1 Timeouts266
11.5.2 Circuit Breaker266
11.5.3 Das Bulkhead-Pattern269
11.5.4 Isolierung270
11.6 Idempotenz270
11.7 Skalierung272
11.7.1 Mehr Leistung272
11.7.2 Arbeitslast aufteilen273
11.7.3 Risikoverteilung273
11.7.4 Lastverteilung274
11.7.5 Worker-Systeme276
11.7.6 Neuanfang277
11.8 Datenbanken skalieren278
11.8.1 Verfügbarkeit des Services kontra Lebensdauer der Daten278
11.8.2 Skalierung bei Lesevorgängen279
11.8.3 Skalierung bei Schreibvorgängen280
11.8.4 Gemeinsam genutzte Datenbankinfrastruktur281
11.8.5 CQRS281
11.9 Caching282
11.9.1 Clientseitiges Caching, Proxy und serverseitiges Caching283
11.9.2 Caching und HTTP284
11.9.3 Caching bei Schreibvorgängen285
11.9.4 Caching zur Erhöhung der Belastbarkeit286
11.9.5 Den Ursprung verbergen286
11.9.6 Möglichst einfach287
11.9.7 Cache Poisoning: Ein warnendes Beispiel288
11.10 Automatische Skalierung289
11.11 Das CAP-Theorem290
11.11.1 Aufgabe der Konsistenz292
11.11.2 Aufgabe der Verfügbarkeit292
11.11.3 Aufgabe der Partitionstoleranz?294
11.11.4 AP oder CP?294
11.11.5 Keine Frage eines Entweder-Oders294
11.11.6 Abbildung der Wirklichkeit295
11.12 Serviceerkennung296
11.12.1 DNS296
11.13 Dynamische Registrierung von Services298
11.13.1 Zookeeper298
11.13.2 Consul300
11.13.3 Eureka301
11.13.4 Eigene Serviceregistrierung301
11.13.5 Menschliches Interesse302
11.14 Services dokumentieren302
11.14.1 Swagger302
11.14.2 HAL und der HAL-Browser303
11.15 Ein sich selbst beschreibendes System304
11.16 Fazit305
Kapitel 12: Auf den Punkt gebracht307
12.1 Prinzipien307
12.1.1 Geschäftsvorgänge modellieren308
12.1.2 Automatisierung kultivieren308
12.1.3 Implementierungsdetails verbergen309
12.1.4 Dezentralisierung309
12.1.5 Unabhängiges Deployment310
12.1.6 Ausfälle eingrenzen310
12.1.7 Umfassendes Monitoring311
12.2 Wann sollte man auf Microservices verzichten?311
12.3 Schlusswort312
Stichwortverzeichnis313

Weitere E-Books zum Thema: Programmiersprachen - Softwareentwicklung

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

ASP.NET Shortcut

E-Book ASP.NET Shortcut
Format: PDF

Shortcut-Tipps für ASP.NET-Profis Die neue .NET-Version der Active Server Pages stellt eine Umgebung zur Entwicklung von Web-Applikationen im .NET-Framework bereit. Viele aus der Desktop-…

Programmieren lernen in PHP 5

E-Book Programmieren lernen in PHP 5
Format: PDF

Mit der Version 5 erreicht PHP einen bemerkenswerten Reifegrad, der PHP zu einer festen Größe in der Welt der Webprogrammierung macht. Gerade die leichte Erlernbarkeit macht PHP zur idealen…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Mathematik für Informatiker

E-Book Mathematik für Informatiker
Format: PDF

Die Informatik entwickelt sich in einer unglaublichen Geschwindigkeit. Häufig ist die Mathematik Grundlage von Neuerungen. Deshalb ist sie unverzichtbares Werkzeug jedes Informatikers und Pflichtfach…

Weitere Zeitschriften

Baumarkt

Baumarkt

Baumarkt enthält eine ausführliche jährliche Konjunkturanalyse des deutschen Baumarktes und stellt die wichtigsten Ergebnisse des abgelaufenen Baujahres in vielen Zahlen und Fakten zusammen. Auf ...

caritas

caritas

mitteilungen für die Erzdiözese FreiburgUm Kindern aus armen Familien gute Perspektiven für eine eigenständige Lebensführung zu ermöglichen, muss die Kinderarmut in Deutschland nachhaltig ...

dima

dima

Bau und Einsatz von Werkzeugmaschinen für spangebende und spanlose sowie abtragende und umformende Fertigungsverfahren. dima - die maschine - bietet als Fachzeitschrift die Kommunikationsplattform ...

ea evangelische aspekte

ea evangelische aspekte

evangelische Beiträge zum Leben in Kirche und Gesellschaft Die Evangelische Akademikerschaft in Deutschland ist Herausgeberin der Zeitschrift evangelische aspekte Sie erscheint viermal im Jahr. In ...

IT-BUSINESS

IT-BUSINESS

IT-BUSINESS ist seit mehr als 25 Jahren die Fachzeitschrift für den IT-Markt Sie liefert 2-wöchentlich fundiert recherchierte Themen, praxisbezogene Fallstudien, aktuelle Hintergrundberichte aus ...

Euphorion

Euphorion

EUPHORION wurde 1894 gegründet und widmet sich als „Zeitschrift für Literaturgeschichte“ dem gesamten Fachgebiet der deutschen Philologie. Mindestens ein Heft pro Jahrgang ist für die ...