WavebreakMediaMicro - Fotolia

Techniken zur Optimierung der Microservices-Leistung in der Cloud

Um das Beste aus Cloud-Microservices herauszuholen, muss man Engpässe vermeiden, Dienste effizient bereitstellen und Sicherheitsprobleme verhindern.

Je mehr ein Unternehmen bei der Softwareentwicklung von Microservices abhängt, desto wichtiger ist es, dass die Leistung der Microservices optimal aufeinander abgestimmt ist. Zumindest müssen die Entwicklungsteams mögliche auftretende Microservices-Performance-Probleme mit anderen Vorteilen - wie der Wiederverwendung von Services - ausgleichen.

Daher ist es wichtig, die vielfältigen Modelle der verfügbaren Microservices-Bindung zu verstehen, sich möglichst effizient mit Sicherheit und Governance zu beschäftigen und die Bereitstellung und Netzwerkkonnektivität zu strukturieren, um Engpässe in allen Phasen des operationalen Lebenszyklus zu vermeiden.

Ein Microservice ist ein Architekturmuster, bei dem komplexe Anwendungen aus kleinen, unabhängigen Prozessen komponiert werden. Jeder Service ist weitgehend entkoppelt und erledigt eine überschaubare Aufgabe.

Auf höchster Ebene ist ein Microservice eine Softwarekomponente, die von mehreren Anwendungen frei wiederverwendet und je nach Bedarf skaliert und verschoben werden kann. Diese Attribute deuten darauf hin, dass Microservices „zustandslos“ sind, was bedeutet, dass sie zwischen den Aktivierungen keine Informationen beibehalten, so dass jede Kopie von einem Service eine Nachricht mit dem gleichen Ergebnis verarbeiten kann. Die Performance kann zudem durch API-Management-Tools beeinflusst werden, die zwischen einer Anfrage für einen Microservice und dem Microservice selbst vermitteln. Beide müssen gleichzeitig berücksichtigt werden.

Wenn ein Microservice in eine Anwendung eingebunden wird, gibt es zwei grundsätzliche Möglichkeiten. Erstens lässt sich eine einzelne Kopie des Microservices mit einer anderen Logik verknüpfen und damit eine Deployment Unit formen. Dies hemmt seine Wiederverwendbarkeit nicht, und wenn die Deployment Unit skalierbar ist, ist die obige Definition erfüllt.

Zweitens kann eine Kopie des Microservices unter den Anwendungen oder Komponenten, die damit ausgeführt werden sollen, geteilt werden. Dies bedeutet, dass der Workflow zum oder vom Microservice durch das Netzwerk geschleust werden muss, was wiederum heißt, dass seine Leistung - je nachdem, wo der Microservice relativ zu seinen Nutzern gehostet wird - variieren kann.

Die erste Möglichkeit, Microservices in jede Deployment Unit zu integrieren, erfordert keine Optimierung, so dass im Fall seiner Verwendung kein Performance Tuning notwendig ist. Es ist der zweite Fall, der näher untersucht werden muss.

Einstieg in das Microservice Performance Tuning

Das größte Problem beim Performance Tuning ist das, was man kombinierte Anwendungstopologie nennen könnte. Gemeint ist damit der Ort, wo die Komponenten aller Anwendungen, welche die Microservices miteinander teilen, gehostet werden - und zwar relativ zueinander und zu den Microservices. Die Anwendungstopologie wird in den meisten Fällen durch die geografische Verteilung der Hosting-Einrichtungen bestimmt. Wie man die Microservice-Performance am besten optimiert und was man dafür machen muss, hängt davon ab, ob die Hosting-Einrichtungen weiter oder enger verteilt sind.

Wenn das Hosting eng verteilt ist (der Grenzfall ist, dass alles im selben Rechenzentrum gehostet wird), bedeutet Performance-Optimierung nur die Optimierung der Hosting Performance und des lokalen Data Center Switching. Die allgemeine Regel ist, die schnellstmöglichen Netzwerk-Switches zu verwenden, um Server miteinander zu verbinden. Switch-Konfigurationen, die Traffic-Engpässe verursachen können, sollten vermieden werden.

Wenn eine große Anzahl von Microservices verwendet oder wenn ein beträchtlicher Microservice-Verkehr erwartet wird, sollte man Fabric Switching innerhalb des Rechenzentrums ins Auge fassen. Diese Kontrolle des lokalen Switching ist besonders wichtig, wenn API-Manager Sicherheits- und Compliance-Richtlinien anwenden, weil diese Manager einen Verbindungssprung zum Workflow hinzufügen.

Wenn das Rechenzentrums-Hosting weit verteilt ist, liegt das Problem darin, dass es viele mögliche Orte gibt, auf die die Komponenten von Anwendungen, einschließlich Microservices, verteilt werden können. Das ist insbesondere unter Berücksichtigung von Skalierungs- oder Failover-Möglichkeiten problematisch. Einige von ihnen könnten übermäßige Verzögerung zur Folge haben, so dass der erste Schritt ist zu bestimmen, wie der schlimmste Fall bei einer Verzögerung aussehen kann.

Mit Modellieren oder Testen kann man herausfinden, ob die Platzierung eines Microservice in den am wenigsten optimalen (meist am weitesten entfernten geographischen) Servern relativ zu den Anwendungen, die es verwenden, einen schlechten Einfluss auf die Quality of Experience (QoE) hat. Wenn dies nicht der Fall ist, sind die Rechenzentren effektiv zentralisiert und man braucht sich keine Sorgen zu machen, es sei denn, die Hosting-Konfigurationsoptionen ändern sich.

Verursacht die schlechteste Microservice-Platzierung QoE-Probleme, hat man zwei Möglichkeiten: die Platzierung zu beschränken oder die Verbindungsleistung zu verbessern. Jede Option hat ihre Vorteile, bietet aber auch Herausforderungen, also sollte man seinen Ansatz sorgfältig prüfen.

Möglichkeiten zur Verbesserung der Verbindung

Die Verbindungsleistung zu verbessern bedeutet entweder, die Latenz bei Verbindungen zwischen Rechenzentren zu verringern, den Weg zu verkürzen, den die Microservice-Workflows nehmen oder die Verbindung zwischen Nutzer und Anwendung zu verbessern, um die zusätzlichen Microservice-Workflow-Verzögerungen auszugleichen. Letzteres würde bedeuten, das virtuelle private Netzwerk (VPN) insgesamt zu beschleunigen, was normalerweise keine Option ist. Also konzentriert man sich darauf, ob die Kosten der verbesserten Data Center Interconnection (DCI) gerechtfertigt sind.

Lässt sich die Verbindungsleistung nicht verbessern, muss man die Platzierung der Microservices einschränken. Gibt es Hosting-Standorte, die eine bessere Konnektivität zu anderen Hosting-Punkten haben, wird das Hosting aller Microservices in diesen besseren Hubs die Leistung insgesamt verbessern. Die DCI-Leistung lässt sich auch selektiv verbessern, um einen solchen natürlichen Hub-Punkt zu erzeugen.

Die Alternative besteht darin, die Regel des Microservice-Sharing zu verbessern. Da jede Kopie eines Microservices die Arbeit gleich gut erledigen kann - und die Skalierung von Microservices unter Last, die Installation neuer Instanzen von Microservices bedeutet - kann man mehrere Kopien eines bestimmten Microservices einsetzen, der jeweils eine bestimmte User Community oder Gruppe von Anwendungen bedient.

Mehr zum Thema Microservices:

Wie die Enterprise-Architektur von der Microservices-Entwicklung profitiert.

SOA und Webservices zur Verbesserung des Microservice-Managements zusammenführen.

Microservices verändern die Organisation und fördern Innovationen in Unternehmen.

Wie sich die Leistung von Microservices und Cloud-Anwendungen optimieren lässt.

Microservices testen: Auf diese Punkte sollten Sie achten.

Wenn jede Anwendung oder Benutzer-Community bei der Planung, wo Microservices gehostet werden sollen, separat betrachtet wird, ist es möglich, dass auch weit verstreute Hosting-Punkte bei akzeptablem QoE untergebracht werden können. Um einen dedizierten Satz von Community-Microservices zu hosten, braucht man nur einen optimalen Ort (oder eine Reihe von Orten) auszuwählen. Solange Application-Lifecycle-Management-Prozesse so abgestimmt sind, dass diese Kopien niemals aus der Synchronisation herausfallen, bleiben die Vorteile von Microservices erhalten.

Der entscheidende Punkt beim Microservice Performance Management in der Cloud ist, dass schnell nicht immer die beste Antwort ist - oder höchstens eine nützliche Antwort. Microservices sind flexibel in ihrer Anwendung, und man muss kreativ sein, um ihre Fähigkeiten auszunutzen und die beste Leistung zu den niedrigsten Kosten zu erhalten.

Folgen Sie SearchEnterpriseSoftware.de auch auf Twitter, Google+ und Facebook!

Artikel wurde zuletzt im Juli 2017 aktualisiert

Pro+

Premium-Inhalte

Weitere Pro+ Premium-Inhalte und andere Mitglieder-Angebote, finden Sie hier.

Erfahren Sie mehr über Software-Entwicklung

Diskussion starten

Schicken Sie mir eine Nachricht bei Kommentaren anderer Mitglieder.

Mit dem Absenden dieser Daten erklären Sie sich bereit, E-Mails von TechTarget und seinen Partnern zu erhalten. Wenn Ihr Wohnsitz außerhalb der Vereinigten Staaten ist, geben Sie uns hiermit Ihre Erlaubnis, Ihre persönlichen Daten zu übertragen und in den Vereinigten Staaten zu verarbeiten. Datenschutz

Bitte erstellen Sie einen Usernamen, um einen Kommentar abzugeben.

- GOOGLE-ANZEIGEN

SearchSecurity.de

SearchStorage.de

SearchNetworking.de

SearchDataCenter.de

Close