Book description
Container und Container-Orchestrierer haben die Entwicklung verteilter Systeme grundlegend verändert – es gibt jetzt Objekte und Schnittstellen für das Darstellen zentraler Muster für verteilte Systeme und das Bauen wiederverwendbarer, containerisierter Komponenten. Dieser praktische Ratgeber stellt Ihnen eine Reihe immer wieder einsetzbarer, generischer Muster vor, mit denen die Entwicklung zuverlässiger verteilter Systeme einfacher und effizienter geschehen kann.
Table of contents
- Cover
- Titel
- Impressum
- Inhalt
- Vorwort
-
1 Einführung
- Eine kurze Geschichte der System-Entwicklung
- Eine kurze Geschichte von Mustern in der Software-Entwicklung
- Formalisierung der algorithmischen Programmierung
- Muster für die objektorientierte Programmierung
- Der Aufstieg von Open-Source-Software
- Der Wert von Mustern, Praktiken und Komponenten
- Auf den Schultern von Riesen stehen
- Eine gemeinsame Sprache für Gespräche über unsere Praktiken
- Gemeinsame Komponenten für einfache Wiederverwendung
- Zusammenfassung
-
Teil I: Single-Node-Muster
- Motivation
- Zusammenfassung
- 2 Sidecar
- Ein Beispiel-Sidecar: HTTPS für einen alten Service
- Dynamische Konfiguration mit Sidecars
- Modulare Anwendungs-Container
- Aus der Praxis: Den topz-Container deployen
- Mit Sidecars eine einfache PaaS bauen
- Modularität und Wiederverwendbarkeit durch Sidecars
- Container parametrisieren
- Die API jedes Containers definieren
- Dokumentieren Sie Ihre Container
- Zusammenfassung
- 3 Ambassador
- Mit einem Ambassador einen Service per Sharding aufteilen
- Aus der Praxis: Einen Sharded Redis implementieren
- Einen Ambassador zum Service Brokering einsetzen
- Mit einem Ambassador experimentieren oder Requests splitten
- Aus der Praxis: 10%-Experimente umsetzen
- 4 Adapter
- Monitoring
- Aus der Praxis: Prometheus für das Monitoring einsetzen
- Logging
- Aus der Praxis: Verschiedene Logging-Formate mit fluentd normalisieren
- Einen Health-Monitor ergänzen
- Aus der Praxis: Ausführliches Health Monitoring für MySQL
-
Teil II: Serving-Muster
- Einführung in Microservices
- 5 Replizierte lastverteilte Services
- Zustandslose Services
- Readiness-Prüfungen für das Load Balancing
- Aus der Praxis: Einen replizierten Service in Kubernetes erstellen
- Services mit Session Tracking
- Replizierte Services auf Anwendungsebene
- Einziehen einer Caching-Schicht
- Ihren Cache deployen
- Aus der Praxis: Die Caching-Schicht deployen
- Die Cache-Schicht erweitern
- Rate Limiting und Denial-of-Service-Verteidigung
- SSL Termination
- Aus der Praxis: nginx und SSL Termination deployen
- Zusammenfassung
- 6 Sharded Services
- Sharded Caching
- Warum Sie einen Sharded Cache brauchen könnten
- Die Rolle des Cache für die System-Performance
- Replizierte Sharded Caches
- Aus der Praxis: Einen Ambassador und Memcache für einen Sharded Cache deployen
- Sharding-Funktionen
- Auswahl eines Schlüssels
- Konsistente Hashing-Funktionen
- Aus der Praxis: Einen konsistenten HTTP Sharding Proxy bauen
- Repliziertes Sharded Serving
- Hot Sharding Systems
- 7 Scatter/Gather
- Scatter/Gather mit Root-Verteilung
- Aus der Praxis: Verteilte Dokumentensuche
- Scatter/Gather mit Leaf Sharding
- Aus der Praxis: Sharded Dokumentensuche
- Die richtige Anzahl an Blättern wählen
- Scatter/Gather für mehr Zuverlässigkeit und bessere Skalierbarkeit replizieren
- 8 Funktionen und ereignisgesteuerte Verarbeitung
- Herausfinden, ob FaaS sinnvoll ist
- Die Vorteile von FaaS
- Die Herausforderungen von FaaS
- Der Bedarf für Hintergrundprozesse
- Der Bedarf für das Halten von Daten im Speicher
- Die Kosten einer dauerhaften Request-basierten Verarbeitung
- Muster für FaaS
- Das Decorator-Muster
- Aus der Praxis: Ein Request-Defaulting vor die Request-Verarbeitung schalten
- Umgang mit Ereignissen
- Aus der Praxis: Zwei-Faktor-Authentifizierung implementieren
- Ereignisbasierte Pipelines
- Aus der Praxis: Eine Pipeline für das Registrieren neuer Benutzer implementieren
- 9 Ownership Election
- Herausfinden, ob Sie überhaupt eine Master Election benötigen
- Grundlagen der Master Election
- Aus der Praxis: etcd deployen
- Locks implementieren
- Aus der Praxis: Locks in etcd implementieren
- Ownership implementieren
- Aus der Praxis: Leases in etcd implementieren
- Parallele Datenverarbeitung
-
Teil III: Batch-Verarbeitung
- 10 Work-Queue-Systeme
- Ein generisches Work-Queue-System
- Die Quell-Container-Schnittstelle
- Die Worker-Container-Schnittstelle
- Die Infrastruktur für die gemeinsame Work Queue
- Aus der Praxis: Einen Video-Thumbnailer implementieren
- Dynamisches Skalieren der Worker
- Das Multi-Worker-Muster
- 11 Ereignisgesteuerte Batch-Verarbeitung
- Muster für die ereignisgesteuerte Verarbeitung
- Copier
- Filter
- Splitter
- Sharder
- Merger
- Aus der Praxis: Einen ereignisgesteuerten Flow für das Registrieren neuer Benutzer bauen
- Publisher/Subscriber-Infrastruktur
- Aus der Praxis: Kafka deployen
- 12 Koordinierte Batch-Verarbeitung
- Join (oder Barrier-Synchronization)
- Reduce
- Aus der Praxis: Count
- Sum
- Histogramm
- Aus der Praxis: Eine Pipeline zum Taggen und Bearbeiten von Bildern
- 13 Zusammenfassung: Ein Neuanfang?
- Index
- Über den Autor
- Fußnoten
Product information
- Title: Verteilte Systeme mit Kubernetes entwerfen
- Author(s):
- Release date: September 2018
- Publisher(s): dpunkt
- ISBN: 9783960090885
You might also like
book
Linux Manjaro -- Der umfassende Praxiseinstieg. Von der Installation bis hin zu Sicherheit, Systemoptimierung und Automation
Praxiswissen für einen umfassenden Einstieg Von der Installation und den ersten Schritten bis hin zu Sicherheit, …
book
Vom Monolithen zu Microservices
Bestehende Systeme erfolgreich in eine Microservices-Architektur umgestalten
book
Visionäre der Programmierung - Die Sprachen und ihre Schöpfer
In Visionäre der Programmierung: Die Sprachen und ihre Schöpfer werden die Entwickler der bekanntesten Programmiersprachen der …
book
Machine Learning visuell lernen - von StatQuest - Mit Bildern ganz einfach lernen und verstehen
Nach der erfolgreichen visuellen Methode des YouTube-Kanals »StatQuest with Josh Starmer« mit fast 900.000 Abonnenten Bild …