Untersuchung und Optimierung der Verfügbarkeit in Service Mesh Architekturen
Creators: name: Klemann, Martin
Publisher: name: Zenodo
Year: 2022
Subjects: Service Mesh, Istio, Linkerd, Verfügbarkeit, Zuverlässigkeit, Reliability, Resilience, Availability, Dependability

description: --- ENGLISH BELOW --- Verteilte Systeme mit Microservice-Architektur sind ein beliebter Ansatz, um Software flexibel und agil aus einer Vielzahl voneinander losgelöster Komponenten zu entwi- ckeln. Dieser Ansatz führt jedoch mit steigender Systemkomplexität zu einer Reihe neuer Herausforderungen in Bereichen wie Debugging, Logging und Tracing. Ein viel- versprechender Ansatz zur Adressierung dieser Herausforderungen ist die Verwen- dung eines Service Meshs. In einem Service Mesh wird durch die Einführung einer zusätzlichen Infrastruktur- schicht eine logische Trennung zwischen den fachlichen Aufgaben der Microservices und den infrastrukturellen Aufgaben der Microservice-Architektur vorgenommen. Somit können innerhalb verteilter Systeme das Monitoring, das Routing, die Resilienz und die Sicherheit erhöht werden bei gleichzeitiger Reduktion des Entwicklungsaufwands für die Microservices. Trotz dieser Vorteile bieten auch Service Meshes noch keine hinreichende Lösung für alle Herausforderungen bei der Entwicklung und dem Betrieb verteilter Systeme. So ist innerhalb moderner Service Meshes unter anderem das Thema der Hochverfügbarkeit derzeit noch nicht vollständig geklärt. Trotz zahlreicher Sicherheitsmechanismen zur Gewährleistung einer hohen Systemverfügbarkeit gibt auch in Service Meshes noch verschiedene Szenarien, in denen es zu Verfügbarkeitsproblemen kommen kann. Ziel dieser Masterarbeit ist es daher, die Systemverfügbarkeit beim Einsatz von Service Meshes experimentell zu untersuchen und zu optimieren. Hierzu werden Testsysteme mit zwei verschiedenen Service Meshes eingerichtet – ei- nes mit Linkerd und eines mit Istio. Anschließend werden für beide Service Meshes unterschiedliche Problemszenarien experimentell untersucht. Für gefundene Verfüg- barkeitsprobleme werden im Anschluss verschiedene Lösungsansätze erarbeitet und – sofern möglich – experimentell verifiziert. Im Rahmen der Messungen wird gezeigt, dass sowohl für Linkerd als auch für Istio in bestimmten Situationen teils gravierende Einschränkungen der Systemverfügbar- keit vorliegen. Einige dieser Verfügbarkeitsprobleme lassen sich durch eine manuelle Aktivierung erweiterter Sicherheitsfeatures beheben. Für die anderen Verfügbarkeits- probleme werden individuelle Lösungsansätze skizziert. Zusätzlich wird einer der skiz- zierten Ansätze durch eine konkrete Implementierung realisiert und experimentell ve- rifiziert. Insgesamt wird im Rahmen dieser Masterarbeit gezeigt, dass auch in Service Mes- hes noch verschiedene Verfügbarkeitsprobleme existieren. Speziell in Istio und Linkerd lassen sich zum Teil erhebliche Einbrüche der Systemverfügbarkeit feststellen. Durch die erarbeiteten Lösungsansätze wird eine gute Grundlage zur Weiterentwicklung der Service Meshes geschaffen. Für eine hinreichende Lösung der Verfügbarkeitsproble- me innerhalb von Service Meshes ist trotzdem noch weitergehende Forschungsarbeit vonnöten.<br> <br> ----------<br> <br> Distributed systems with microservice architecture are a popular approach for deve- loping software flexibly and agilely from a large number of decoupled components. However, as the system complexity increases, this approach leads to a number of new challenges in areas such as debugging, logging and tracing. A promising approach to addressing these challenges is to use a service mesh. In a service mesh, the introduction of an additional infrastructure layer creates a logi- cal separation between the technical tasks of the microservices and the infrastructural tasks of the microservice architecture. In this way, monitoring, routing, resilience and security can be increased within distributed systems while at the same time the deve- lopment effort for microservices is reduced. Despite these advantages, service meshes still do not offer a sufficient solution for all challenges in the development and operation of distributed systems. Among other things, the subject of high availability has not yet been fully clarified within modern ser- vice meshes. Despite numerous security mechanisms to ensure high system availa- bility, there are still various scenarios in service meshes in which availability problems can arise. The aim of this master thesis is therefore to experimentally examine and optimize the system availability when using service meshes. For this purpose, test systems with two different service meshes are set up – one with Linkerd and one with Istio. Then different problem scenarios are experimentally inves- tigated for both service meshes. For any availability problems found, various solutions are then worked out and – if possible – verified experimentally. The measurements show that both Linkerd and Istio have severe system availability restrictions in certain situations. Some of these availability issues can be resolved by manually enabling advanced security features. For the other availability problems, in- dividual solutions are outlined. In addition, one of the approaches outlined is realized through a tangible implementation and verified experimentally. Overall, this master thesis shows that various availability problems still exist in service meshes. In Istio and Linkerd in particular, significant drops in system availability can be observed in different scenarios. The solution approaches developed create a good basis for the further development of the service meshes. For a sufficient solution to the availability problems within service meshes, more extensive research is still required.