Zellbasierte Architekturen für mehr Resilienz
Je komplexer Service Meshes werden, desto schwieriger wird es, den Überblick zu behalten und auf eine einheitliche Umsetzung zu achten. Gerade für große und weltweite Microservices-Architekturen bietet ein zellbasierter Ansatz Vorteile.
Microservice-orientierte Anwendungen haben sich bei verteilten und skalierbaren Architekturen durchgesetzt. Die Art, wie Microservices umgesetzt werden, hat sich weiterentwickelt: Service-Mesh-Produkte regeln als Netzwerk-Proxys den Verkehr und sichern ihn ab [1]. Bei einem eng vermaschten Servicenetz ist es jedoch gar nicht so einfach, den Überblick zu behalten und es einheitlich umzusetzen. Gerade für große und weltweite Microservices-Architekturen bietet ein neuer Ansatz mit einer zellbasierten Architektur einige Vorteile und Vereinfachungen an. Dieser Artikel stellt diesen Ansatz vor, den bereits einige größere Internetfirmen einsetzen.
Zentrale Kontrolle statt dezentrales Klein-Klein
Microservices verwenden oft Resilienzmuster, wie sie Michael Nygard das erste Mal in seinem Buch „Release IT!“ beschrieben hat [2]. Mit Service-Mesh-Produkten wandern einige mit Bibliotheken innerhalb der Microservices umgesetzte Funktionen der Resilienzmuster in einen separaten Proxy. Dieser wird als Sidecar zusammen mit den Microservices deployt. Das schafft zusätzlichen Verwaltungsaufwand und mehr Komplexität: So gibt es bei Service Meshes einige Funktionen, die bisher nur von anderen Produkten wie API-Gateway oder Loadbalancer bereitgestellt wurden. Das kann dazu führen, dass einige Dinge im API-Gateway oder im Loadbalancer tatsächlich doppelt erledigt werden, da es beispielsweise Funktionsüberschneidungen beim Routing auf Netzwerkebene 7 oder beim Verschlüsseln der Übertragung gibt.