The Doppler Quarterly (DEUTSCHE) Frühjahr 2018 - Page 62

tierten Programmiersprachen in Schichten aufgeteilt und wiederverwendet wer- den. Beispielsweise kann ein Basis-Container-Image, z. B. eine Basisklasse, durch Stacking-Container, die die Funktionalität weiter optimieren, wiederverwendet und erweitert werden. Virtuelle Maschinen hatten tiefgreifende Auswirkungen auf die Erhöhung der Hardwareauslastung, während Docker-Container die Anwen- dungsentwicklung revolutioniert haben, da sie die Schnelligkeit und Agilität durch die Wiederverwendung und Portierbarkeit von Anwendungen erhöht haben. Vergleich Docker und VM VM CONTAINER Anwend. A Anwend. B Anwend. C Anwend. A Anwend. B Anwend. C Bins/Bibl. Bins/Bibl. Bins/Bibl. Bins/Bibl. Bins/Bibl. Bins/Bibl. Gastbetriebs­ system Gastbetriebs­ system Gastbetriebs­ system Docker Hypervisor Hypervisor Infrastruktur Infrastruktur Abbildung 1: Container und virtuelle Maschinen Microservices Container ermöglichen nicht nur die Verteilung hermetisch abgeschirmter Anwen- dungen auf platzsparende und kompakte Weise, sondern auch die Aufteilung gro- ßer Anwendungen in kleinere, unabhängige Komponenten, die in der Branche „Microservices“ genannt werden. Anstelle einer monolithischen Anwendung, die in einer einzigen Betriebsumgebung implementiert wird, entsteht jetzt eine neue Generation von in hohem Maße verteilten und lose verbundenen Anwendungen, die auf kleineren, eigenständigen Services erstellt werden. Diese können für eine Vielzahl von Rechen-, Hauptspeicher- und Speicherressourcen eingeplant werden. Diese Microservices können unabhängig voneinander skaliert werden und kom- munizieren nur miteinander, wenn notwendig – über klar definierte und schlanke Schnittstellen per HTTP und REST oder Remote Procedure Calls (RPCs) über Ver- bindungsprotokolle wie Googles Protocol Buffers (protobuf). Beispielsweise kann man leicht einen einfachen monolithischen Service als Grundlage für einen Sockenshop im Web erstellen, wie z. B. die Weaveworks-Demo (Abbildung 2). Eine solche Website könnte mit integriertem Front-End-Web-Server, Back-End-Datenbank, Authentifizierungssystem, Bestellservice etc., die zusammen auf einem einzigen physi- schen Server ausgeführt werden, erstellt werden. Dies mag perfekt funktionieren, wenn Sie Ihren Shop der Öffentlichkeit vorstellen. Aber wie können Sie ihn ausbauen, wenn er an Beliebtheit gewinnt, um der ständig wachsenden Nachfrage gerecht zu werden? Und wenn Sie Ihre Website skalieren, wie können Sie sicherstellen, dass sie hochverfügbar bleibt? 60 | THE DOPPLER | FRÜHJAHR 2018