Mit REST und Cloud Bursting die Performance von SOA- und Cloud-Apps verbessern

SOA-Prinzipien wurden entwickelt, bevor es Cloud Computing gab. Dennoch ist es in vielen Fällen praktisch, SOA-Anwendungen für die Cloud zu gestalten.

Die steigende Beliebtheit von Software-Modularisierung und Wiederverwendung von Komponenten sowie der Orchestrierung...

von Workflows auf Basis von Business-Prozessen hat zu einer breiten Akzeptanz der Serviceorientierten Architektur (SOA) geführt. Da die Unternehmen immer stärker Cloud Computing in Erwägung ziehen, müssen sie ihre Anwendungen evaluieren. Nur so lässt sich die Leistung in einer Public, Private oder Hybrid Cloud optimieren. Das bedeutet wiederum, Workflows zu bewerten. Dieses Workflow Assessment dient als Leitfaden für die Positionierung der Komponenten, die Ausrichtung der horizontalen Skalierung für Cloud-Bursting und Failover und der „Hybridisierung“ von SOA und REST (Representational State Transfer). Das Ziel dabei ist: Eine elastische Schichte innerhalb der SOA-Anwendungen zu etablieren.

Jedem SOA-Anwender ist klar, dass die Informationsflüsse zwischen den einzelnen SOA-Komponenten Performance-Probleme erzeugen können. Das gilt insbesondere, wenn die Komponenten in einer Cloud-Implementierung über mehrere Rechenzentren verteilt sind. Einige Nutzer waren bereits gezwungen, die Auswirkungen der Systemverbindungen von Workflows sogar innerhalb ihrer Rechenzentren zu berücksichtigen. Jede Kombination von SOA und Cloud verlangt, dass die beteiligten Systemarchitekten die Auswirkungen der Cloud-Konnektivität und der Cloud-Server-Performance auf den Workflow und die Anwendung bewerten.

Server-Performance-Probleme können leicht entstehen, weil SOA-Komponenten auf Systemen mit verschiedenen Leistungsniveaus laufen. Allerdings gibt es bei der Nutzung von virtuellen oder gemeinsamen Ressourcen beim Hosting von SOA-Komponente grundsätzlich immer Unwägbarkeiten. Im Cloud-Umfeld ist es beispielsweise wichtig zu wissen, wohin eine oder mehrere SOA-Komponenten von einer dedizierten Ressource in die Cloud verschoben werden. Auf der sicheren Seite sind Sie, wenn Sie im Pilot-Betrieb für das niedrigsten Leistungslevel planen.

Das Netzwerk für für eine SOA-Cloud-Kombination optimieren

Der erste Schritt bei der Optimierung der SOA-Cloud-Performance ist es, den Workflow der Anwendung mit einem Blockdiagramm der möglichen Cloud-Hosting Punkte zu vergleichen. Performance-Probleme können überall dort auftreten, wo ein Workflow eine Cloud-Grenze passiert. Diese Probleme können bereits mit einfachen Mitteln minimiert werden oder durch eine systematischere Veränderung der Architektur der Anwendung selbst.

Workflow-bezogene Performance-Probleme lassen sich schon mit simplen Mitteln verringern. Beispielsweise kann entweder die Verbindungs-Performance gesteigert oder die Position von Anwendungskomponenten in der Cloud verändert werden. Die meisten Architekten überprüfen wohl beide Optionen. Damit stellen sie die zusätzlichen Kosten für mehr Verbindungskapazität dem Verlust von Flexibilität gegenüber, der entsteht, wenn sie die Orte beschränken, in denen eine Cloud-Anwendung die Software ausführen darf.

Anwender berichten häufig, dass dort, wo solche Anpassungen möglich sind, dies die effektivste Lösung zur Cloud-Leistungsoptimierung für SOA-Anwendungen ist, da sie Entwicklung, Tests, Risiken und Kosten reduziert. Wo dies nicht möglich ist, wird eher eine Architekturlösung angeraten.

Cloud Bursting einsetzen

Die State-of-the-Art-Lösung für Performance Probleme in einer hybriden Cloud ist Cloud Bursting zwischen dem Rechenzentrum und der Cloud. Cloud Bursting ermöglicht es, quasi auf Knopfdruck Ressourcen zuzuschalten. Cloud Bursting ist insbesondere dann sinnvoll, wenn die Antwortzeiten die Vorgaben überschreiten.

In einer reinen Cloud-Anwendung wird dieser Prozess horizontale Skalierung genannt. Um die Leistung zu verbessern werden dabei die Komponenten der Anwendung, die zu Engpässen werden können, dupliziert. Die Herausforderung für SOA-Anwendungen bei diesem Ansatz ist, dass die meisten SOA-Softwarekomponenten „Stateful“ sind. Das bedeutet, dass die gesamte Transaktion mit dem gleichen Satz von Komponenten unterstützt werden muss, um den Verlust von Informationen zu vermeiden.

Es ist möglich, SOA-Workflows zu entwerfen um mehrere Kopien von Komponenten anzupassen. Dies beinhaltet die Einführung einer Funktion für einen Arbeitszeitplan im Anwendungsfluss. Die Funktion besteht aus einer Reihe von untergeordneten Komponenten für eine Transaktion und gibt sie frei, wenn der Austausch der Transaktion abgeschlossen ist.

Diese Form der internen Terminierung kann am einfachsten angewendet werden, wenn für die Ausführung der beteiligten Komponenten die gemeinsame Nutzung von Ressourcen - wie einer Datenbank - nicht erforderlich ist. Wo das der Fall ist, kann das Problem auftreten, dass die Ressource der Flaschenhals und das Duplizieren unmöglich ist.

Wenn es nicht möglich ist, den SOA-Teil einer Anwendung neu für die Cloud zu gestalten, sollten Sie einen Cloud-Layer auf der Anwendung in Erwägung ziehen. Das Ziel ist, ein User Frontend zu erstellen, das jene Abschnitte des User-to-Application-Dialogs unterstützt, die nicht abhängig sind von Single Thread Ressourcen. Diese Cloud-Schicht lässt sich mit REST-Prinzipien schreiben und erleichtert die Lastverteilung zwischen den Komponenten sowie die horizontale Skalierung unter Last.

REST-Prinzipien nutzen

Architekten, die diesen Ansatz eingesetzt haben, berichten, dass der Schlüssel zum Erfolg eine Umstrukturierung der Workflows von SOA-Anwendungen ist: Anwendungen, die mit Aktivitäten unterstützt werden können, die eher moderate und statische Repositories nutzen und weniger transaktionsorientierte Datenbanken, sollten zuerst geladen werden.

Jedes Mal, wenn eine Datenbank aktualisiert werden muss, und aufeinanderfolgende Aktivitäten in der Anwendung das Ergebnis von früheren Aktivitäten sind, erstellt der Prozess einen natürlichen Performance-Engpass, der schwer zu verhindern ist. Die Strukturierung der Anwendung in der Weise, dass das Datenbank-Update nicht fortwährend erfolgt, sondern nur der letzte Schritt ist, kann etwas bringen. Dazu sollten die frühen Schritte einer Anwendung in die Cloud übertragen und elastisch skaliert werden.

Das klassische Beispiel ist ein Web / Cloud Front End für Bestellungen – also ein Web-Shop. In dieser Anwendung lässt sich der relativ statische Produktkatalog zu vertretbaren Kosten in die Cloud verlegen. Alle Benutzeraktivitäten, wie das Ansehen und Suchen von Produkten, können mit diesem Katalog unterstützt werden. In einigen Fällen ist es auch möglich, einen Einkaufskorb zu unterstützen. Wenn der Benutzer den Shop verlässt, wird die Transaktion auf die bestehende SOA Einzelhandels-Anwendung geleitet. Weil diese weniger genutzt wird, erzeugt sie weniger Einfluss auf die Leistung unter Last.

SOA-Prinzipien entstanden, bevor es Cloud Computing gab. Trotzdem ist es möglich, SOA-Anwendungen Cloud-freundlich zu gestalten. Das heißt nicht, dass das automatisch möglich ist. Jeder der hier beschriebenen Schritte kann aber dazu beitragen, dass Ihre Cloud-Pläne nicht mit Cloud-Performance-Problemen kollidieren.

Über den Autor: Tom Nolle ist Präsident von CIMI, einem strategischen Beratungsunternehmen im Bereich Tele- und Datenkommunikation.

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

Artikel wurde zuletzt im Mai 2014 aktualisiert

Pro+

Premium-Inhalte

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

Erfahren Sie mehr über Business-Software

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