<h2>Inhaltsübersicht</h2>
<ul>
<li>Abstract</li>
<li>Zielgruppe</li>
<li>Voraussetzungen</li>
<li>Inhalte</li>
<li>Praxisübungen</li>
<li>Rahmen</li>
<li>Kompetenzen</li>
<li>Optionale Vertiefungen</li>
</ul>
<h2>Abstract</h2>
<p>Von der Entwicklungsumgebung in den Betrieb: Deployment‑Modelle, Konfiguration, Service Discovery, client‑seitiges Load Balancing und Hochverfügbarkeit für Apache bRPC‑Services.</p>
<h2>Zielgruppe</h2>
<ul>
<li>Platform‑, SRE‑ und DevOps‑Rollen mit Verantwortung für bRPC‑Services</li>
<li>Entwickelnde, die Services produktionsreif ausliefern und skalieren</li>
<li>Architekt:innen, die Betriebsanforderungen in die Service‑Entwicklung integrieren</li>
</ul>
<h2>Voraussetzungen</h2>
<ul>
<li>Grundlagenwissen zu bRPC‑Server/Client und Protobuf‑basierter Service‑Entwicklung</li>
<li>Praktische Erfahrung mit Deployment (z. B. VM/Container) und Basis‑Observability</li>
<li>Grundlagen von Service‑Discovery und Load‑Balancing‑Konzepten</li>
</ul>
<h2>Inhalte</h2>
<h3>Modul 1: Auslieferung und Konfigurationsmodell</h3>
<ul>
<li>Build‑Artefakte, Packaging und reproduzierbare Builds</li>
<li>Konfiguration über Flags/Parameter (Konzept: runtime‑änderbare Flags) und sichere Defaults</li>
<li>Konfigurations‑Hierarchien: global, service‑spezifisch, environment‑spezifisch</li>
</ul>
<h3>Modul 2: Service Discovery und Naming Services</h3>
<ul>
<li>Namensauflösung als eigener Layer: DNS/ZooKeeper/etcd als Konzepte und Abstraktionspunkte</li>
<li>Einfache Naming‑Varianten (z. B. list/file) für Entwicklungs‑ und Testumgebungen</li>
<li>Cache‑Strategien, Refresh‑Intervalle und Failure‑Modes</li>
</ul>
<h3>Modul 3: Client‑seitiges Load Balancing</h3>
<ul>
<li>Lastverteilungsalgorithmen: Round‑Robin, Random, Consistent Hashing, Locality‑Aware (Konzept und Auswahlkriterien)</li>
<li>Connection‑Modelle: kurzlebig vs. Pooling, Einfluss auf Latenz und Ressourcen</li>
<li>Retries, Backup‑Requests und Timeout‑Budgetierung als HA‑Grundlage</li>
</ul>
<h3>Modul 4: Skalierung, Rollouts und Resilienz</h3>
<ul>
<li>Horizontale Skalierung: Kapazitätsplanung und einfache SLO‑Ableitungen (Latenz/Fehlerrate)</li>
<li>Rolling Updates: kompatible Versionierung, gestaffelte Aktivierung, Rückfallstrategien</li>
<li>Resilienz‑Patterns: Circuit Breaker‑Konzepte, Bulkheads, Rate Limits, Graceful Shutdown</li>
</ul>
<h3>Modul 5: Betriebsnahe Checks und Playbooks</h3>
<ul>
<li>Start‑/Readiness‑/Liveness‑Checks: Kriterien und Umsetzung</li>
<li>Operational Playbooks: typische Incidents (Timeout‑Sturm, Hotspot, Downstream‑Ausfall)</li>
<li>Messpunkte definieren: Metriken, Logs, Traces als Mindestset pro Service</li>
</ul>
<h2>Praxisübungen</h2>
<h3>Übung 1: Produktiver Build und Startparameter</h3>
<ol>
<li>Ein reproduzierbares Build‑Artefakt erzeugen (Debug/Release‑Profil, Symbole, Versionierung)</li>
<li>Startparameter/Flags strukturieren und dokumentieren</li>
<li>Sichere Defaults festlegen und Konfiguration je Umgebung simulieren</li>
</ol>
<h3>Übung 2: Mehrinstanz‑Betrieb mit einfacher Naming‑Quelle</h3>
<ol>
<li>Mehrere Service‑Instanzen starten (Ports/Instanz‑IDs) und per Naming‑Quelle bündeln</li>
<li>Client‑Channel so konfigurieren, dass Instanzen dynamisch genutzt werden</li>
<li>Fehlerfall simulieren (Instanz stoppt) und Verhalten analysieren</li>
</ol>
<h3>Übung 3: Load‑Balancing‑Strategien vergleichen</h3>
<ol>
<li>Mindestens zwei Algorithmen gegeneinander testen (z. B. Round‑Robin vs. Consistent Hashing)</li>
<li>Ein Hot‑Key‑Szenario modellieren und Auswirkungen sichtbar machen</li>
<li>Entscheidungsmatrix für Algorithmus‑Auswahl erstellen</li>
</ol>
<h3>Übung 4: Resilienz‑Mechanismen im Client konfigurieren</h3>
<ol>
<li>Timeout‑Budgets definieren (End‑to‑End und pro Downstream)</li>
<li>Retries/Backup‑Requests so einstellen, dass Kaskaden vermieden werden</li>
<li>Graceful Shutdown und Rolling‑Update‑Probe mit echten Requests durchführen</li>
</ol>
<h2>Rahmen</h2>
<ul>
<li>Empfohlener Zeitbedarf: 3 Tage</li>
<li>Begründung zur Dauer: Betrieb und Skalierung verbinden mehrere Themen (Konfiguration, Naming, Load Balancing, Resilienz). Für robuste Entscheidungen sind Vergleichstests und Incident‑Szenarien erforderlich.</li>
<li>Format: Praxis‑Workshop mit Szenarien, Messungen und Playbook‑Erarbeitung</li>
</ul>
<h2>Kompetenzen</h2>
<ul>
<li>Services reproduzierbar ausliefern und sicher konfigurieren</li>
<li>Service Discovery in bRPC‑Clients planen und betreiben</li>
<li>Geeignete Load‑Balancing‑Strategien auswählen und evaluieren</li>
<li>Resilienz‑Einstellungen so wählen, dass Stabilität unter Fehlern erhalten bleibt</li>
<li>Rollouts mit kompatiblen APIs und minimalem Risiko durchführen</li>
</ul>
<h2>Optionale Vertiefungen</h2>
<ul>
<li>Fortgeschrittene Multi‑Channel‑/Group‑Balancing‑Strategien (Konzept)</li>
<li>Traffic‑Management: Canary‑Rollouts, Shadow‑Calls und adaptive Regeln</li>
<li>Integration in zentrale Observability‑Stacks (Konzept) und Standardisierung im Platform‑Team</li>
</ul>
