Dieser Blog-Eintrag wurde von Barry Collins verfasst, einem Autor und Redakteur im Bereich Technologie, der in seiner 20-jährigen Laufbahn bereits an zahlreichen Publikationen und Websites mitgewirkt hat.
Angesichts der von Public-Cloud-Services versprochenen hohen Performance liegt der Schluss nahe, dass eine Cloud-Migration in jedem Fall die User Experience verbessert. Diese Annahme ist allerdings riskant.
Es muss klar sein, wie die verschiedenen Komponenten der Cloud-Infrastruktur die Application Performance für User beeinflussen. Hat ein Unternehmen keinen Einblick in diese Zusammenhänge, kann die Performance so stark abfallen, dass User möglicherweise zur Konkurrenz abwandern.
Im anstehenden ThousandEyes Bericht zur Cloud-Performance werden die Faktoren betrachtet, auf die Entwicklerteams beim Designen von Applikationen für die Cloud unbedingt achten sollten. Im Vorfeld haben wir Mike Hicks, Principal Solutions Analyst bei ThousandEyes, nach seinen Erfahrungen und Tipps gefragt, wie sich die Entscheidungsfindung bei Cloud-Migrationen optimieren und kostspielige Risiken vermeiden lassen.
Die User in den Mittelpunkt stellen
Mike Hicks hat die Erfahrung gemacht, dass beim Designen von Applikationen oft zu wenig auf die Anforderungen der User geachtet wird. Die Entwicklerteams versuchen, innerhalb des vorgegebenen Budgets eine möglichst robuste Applikation zu erstellen, ohne jedoch das von der User-Basis tolerierte Maß an Performance zu berücksichtigen.
Häufig werden Entscheidungen über die zu verwendende Cloud-Infrastruktur getroffen, bevor die Auswirkungen auf die User Experience überhaupt evaluiert wurden. Die Teams zäumen das Pferd von hinten auf, wie es Hicks formuliert. „User-zentrierte Designtechniken können dazu beitragen, Entscheidungen beim Applikationsdesign auf die Anforderungen der User abzustimmen und zu verhindern, dass die Entwicklerteams übers Ziel hinausschießen und mehr Funktionen in die Cloud-Infrastruktur einbauen als nötig“, erklärt er.
„Je besser Unternehmen ihre User und deren Performance-Erwartungen kennen, umso eher können sie optimale, auf die Anforderungen der User ausgerichtete Infrastrukturentscheidungen treffen. Dies gilt auch, wenn sich die Ecosystems weiterentwickeln und neue Optionen verfügbar werden.“
Das große Ganze im Blick behalten
Angesichts der Komplexität moderner Applikationen ist sorgfältige Planung unverzichtbar. Die Performance einer Cloud-Applikation hängt schon lange nicht mehr von nur einer einzigen Route zu und von einem Remote-Server ab. Inzwischen sind die verschiedenen Komponenten, beispielsweise Authentifizierungs- oder Zahlungssysteme, oft über mehrere Clouds, Rechenzentren, Regionen und Verfügbarkeitszonen verteilt.
Genauso wie bei der Stadtplanung vermieden werden sollte, Lkw-Routen mitten durch die Innenstadt verlaufen zu lassen, sollten Applikationsentwicklungsteams wissen, welche potenziellen Engpässe sich aus ihren Infrastrukturentscheidungen ergeben. Dazu benötigen sie zuverlässige Einblicke in die gesamte Servicebereitstellungskette und Möglichkeiten, Erwartungen zu definieren und zu lenken.
Laut Hicks besteht eine der größten Herausforderungen für Teams, die Anwendungen in der Cloud entwickeln, darin, die Leistung der verschiedenen Cloud-Infrastruktur-Komponenten genau zu verstehen, um fundierte Entscheidungen treffen zu können. „Es muss bekannt sein, welche Komponente in welcher Cloud, Region und Verfügbarkeitszone gehostet wird und wie hoch ihre Performance im Hinblick auf die User-Basis des Unternehmens ist.“
„Für Applikationen mit optimaler Performance ist es wichtig zu wissen, wie sich die unterschiedlichen Infrastrukturelemente auf das Applikationsdesign und die Performance von Cloud-Services auswirken. Unternehmen, die mit den Performance-Eigenschaften der zugrunde liegenden Cloud-Infrastruktur vertraut sind, haben mehr Einfluss auf die Bereitstellung digitalisierter, Cloud-basierter User Experiences.“
Wann immer möglich, sollte erst nach Evaluierung dieser Faktoren entschieden werden, wo eine Applikation gehostet werden soll. „Beim Applikationsdesign geht es nicht nur um die Infrastruktur“, gibt Hicks zu bedenken. „Die Eigenschaften einer Applikation werden lange vor der Entscheidung über das Wo und Wie des Rehostings festgelegt. Dabei darf die Rolle der User nicht außer Acht gelassen werden. Unter Umständen ergeben sich daraus ganz andere Infrastrukturanforderungen für die Applikation.“
Risiken bei lückenhafter Planung
Mike Hicks hat in der Praxis schon mehrfach erlebt, was geschehen kann, wenn die User Experience bei der Applikationsentwicklung keine ausreichende Beachtung findet. Er berichtet beispielsweise von einem Unternehmen, das eine „einfache Umstellung“ vom lokalen Rechenzentrum auf eine Cloud-Plattform mit verteilter Datenbank vornehmen wollte.
„Das Problem dabei war, dass niemand die Interaktionen und Standorte der User berücksichtigt hatte“, erinnert sich Hicks. „Die betreffende Applikation war zeitkritisch und erforderte schnelle Reaktionszeiten. Das Unternehmen ging davon aus, durch die Umstellung auf die Cloud eine höhere Performance zu erzielen. In der Realität führten der Aufbau und die Verteilung der Services dazu, dass die User zwar das Front-End schnell abfragen konnten, bei Transaktionen mit der Applikation jedoch frustrierende Wartezeiten in Kauf nehmen mussten. Die Back-End-Datenbank und die entsprechenden Services waren einfach zu weit von der Front-End-Interaktion entfernt.“
Dies erwies sich als kostspieliger Fehler: „Die Geschwindigkeit war das Differenzierungsmerkmal dieses Unternehmens. Die Kunden begannen, zu Mitbewerbern abzuwandern. Erst durch die Ermittlung und Klassifizierung der User-Anforderungen konnte dieser Trend gestoppt werden.“
Kundenabwanderung ist nicht das einzige finanzielle Risiko bei einer mangelhaften Planung der Cloud-Migration. Ungünstige Infrastrukturentscheidungen können auch die Computing-Kosten unnötig in die Höhe treiben. „Die meisten Cloud-Provider berechnen ihre Gebühren anhand einer Kombination aus der Datenaufnahme und den beanspruchten Computing-Ressourcen“, erklärt Hicks. „Wenn Entwicklerteams Computing-Ressourcen auslagern können, treffen sie manchmal suboptimale Designentscheidungen und vernachlässigen Aspekte wie die Entfernung zwischen den Funktionen und den Usern.“
„Dies erhöht zum einen den Bedarf an Computing-Ressourcen und führt zum anderen zu unnötigen Datenübertragungen zwischen mehreren Regionen. Wenn die Entwicklerteams zu weit gehen, wird die Cloud-Infrastruktur für die jeweilige Applikation stärker beansprucht als nötig, was zusätzliche Kosten bedeuten kann.“
Verbesserte Kommunikation zur Reduzierung von Silos
Nicht nur der mangelnde Einblick in die Abläufe bei externen Cloud-Providern kann die Application Performance beeinträchtigen. Ebenso problematisch ist es, wenn innerhalb des Unternehmens keine klare Kommunikation zwischen den Abteilungen besteht.
In Großunternehmen sind unter Umständen verschiedene interne Teams für Services zuständig, die sich über mehrere Produkte oder Fachbereiche erstrecken. So können Silos entstehen: Niemand hat den Gesamtüberblick über die Servicebereitstellungskette.
„Ich habe kürzlich erlebt, dass eine Datenbank-Cluster-Migration mit einem geplanten Job zusammenfiel, für den eine hohe Anzahl an Datenbankaufrufen erforderlich war. Die verbleibende Kapazität war dementsprechend schnell ausgeschöpft“, berichtet Mike Hicks. Diese Beeinträchtigung der Application Performance wäre problemlos zu vermeiden gewesen.
„Natürlich treten gelegentlich unvorhergesehene Ausfälle auf, die nicht zu verhindern sind, aber das sollte die Ausnahme sein und nicht die Regel“, so Mike.
„Viele Ausfälle lassen sich vermeiden oder zumindest zeitlich oder in ihren Auswirkungen begrenzen, wenn weniger Silos vorhanden sind und Entscheidungen und Aktivitäten in der End-to-End-Servicebereitstellungskette für alle Beteiligten transparent erfolgen.“
Bei Kosteneinsparungen nicht übertreiben
Oft beschließen Unternehmen eine Cloud-Migration, weil sie sich davon Kosteneinsparungen erhoffen. Die Kosten lassen sich durch die Umstellung von On-Premises-Rechenzentren auf eine Cloud-Infrastruktur reduzieren, aber auch durch den Wechsel zu einem Provider mit günstigen Angeboten. Bleiben dabei die Performance-Auswirkungen unberücksichtigt, können diese kurzfristigen Kosteneinsparungen den Umsatz auf längere Sicht massiv beeinträchtigen.
„Die Kosten dürfen nicht das alleinige Entscheidungskriterium sein“, gibt Hicks zu bedenken. „Unternehmen müssen eine Balance zwischen der Optimierung ihrer Infrastrukturausgaben auf der einen Seite und der Performance auf der anderen Seite finden. Das Ziel sollte eine smartere Architektur sein, in der sich Kosteneinsparungen quasi von selbst ergeben, weil intelligentere, stärker auf die User ausgerichtete Architekturentscheidungen getroffen werden.“
„Unternehmen können es sich nicht erlauben, zugunsten geringerer Kosten die Performance aufs Spiel zu setzen“, fügt Hicks hinzu. „User erwarten bei webbasierten Applikationen und Workloads schon heute eine hohe Performance. In Zukunft werden diese Erwartungen noch weiter steigen.“
Das bedeutet nicht, dass keine Kosteneinsparungen möglich sind. Wichtig ist eine ganzheitliche Betrachtung der gesamten Servicebereitstellungskette: Wo lassen sich Einsparungen erzielen, ohne die End User Experience zu gefährden?
Mike Hicks nennt konkrete Beispiele dafür: „Die kosteneffektivste Methode, um Usern Service zu bieten, ohne die Performance zu beeinträchtigen, ist das Caching von Inhalten über ein Content Delivery Network (CDN). Dabei wird die rechenintensive Infrastruktur möglichst nahe an den User gehostet Ein Onlineshop, der umfangreiche Back-End-Datenbanken benötigt, profitiert möglicherweise von einer stärker verteilten Datenbankstruktur, die Aufrufe am Back-End, d. h. Anfragen der User im Produkt, beschleunigt und die Kosten pro potenziellem Käufer/potenzieller Käuferin reduziert.“
Natürlich ist es eine Win-Win-Situation, wenn die Performance für die User steigt und das Unternehmen gleichzeitig Kosten einspart. Dies ist jedoch nur möglich, wenn der Fokus ebenso auf der User Experience wie auf dem Geschäftsergebnis liegt.