Eine der Lektionen, die ich bereits früh in der IT-Branche gelernt habe, war, dass sich in der Anwendungsentwicklung die Wartungsfreundlichkeit und ein einfaches Management meist negativ auf die Leistung einer Anwendung auswirkt.

Anwendungen werden oft nicht im Hinblick auf Performance-Optimierung entwickelt, sondern um spezielle Funktionen und Aufgaben auszuführen. Im Betrieb fällt dann meist erst auf, daß die Leistung der Anwendung recht niedrig ist, wobei „die Anwendung neu zu schreiben“ keine Option ist. Das ist kostspielig und die notwendigen Änderungen stünden vermutlich im Konflikt mit dem vorrangigen Ziel.

Selbst moderne, auf das Internet konzentrierte Unternehmen wie Twitter und Facebook hatten bereits Leistungsprobleme, die auf sehr früh getroffene Architekturentscheidungen zurückgehen. Viele Menschen erinnern sich zweifellos an die oft sehr technischen Diskussionen hinsichtlich des Designs und der Interaktion von Twitter mit seiner Datenbank als Ursprung von Leistungsproblemen, bei denen hunderte von Experten Ratschläge anboten und Kritik übten.

Durch Anwendungsoptimierung kann die Leistung enorm verbessert werden

Dies ist einer der Hauptgründe, warum der Bereich der Anwendungsbereitstellung (Application Delivery) existiert: die Kompensierung von Problemen innerhalb der Anwendung, die nicht durch die Modifikation der Anwendung selbst behoben werden können. Anwendungsbeschleunigung, WAN-Optimierung und Lastverteilung bilden eine leistungsstarke Ebene von Anwendungsbereitstellungsdiensten innerhalb des Rechenzentrums. Lastverteilung kann sich enorm positiv auf die Leistungsfähigkeit und somit der User-Akzeptanz der Anwendung auswirken.

Techniken für die Anwendungsbeschleunigung verbessern die Bereitstellung und Auslieferung von applikationsbezogenen Inhalten und Objekten durch Caching, Komprimierung, Umwandlung und Verknüpfung. Services zur WAN-Optimierung behandeln Bandbreitenbeschränkungen und Latenzproblemen, besonders die mit hohem Daten- und Inhaltsumfang. Obwohl Entwickler Anwendungen an sich modifizieren könnten, um Inhalte neu anzuordnen oder die bereitgestellte Datengröße zu reduzieren, ist dies nur selten praktikabel oder rentabel. Gleichermaßen ist es nicht rentabel oder praktikabel, Entwickler darum zu bitten, Anwendungen zur Entfernung von Verarbeitungsengpässen zu modifizieren, die zu unlesbarem Code führen könnten.

Unternehmensanwendungen werden nicht für die Geschwindigkeit entwickelt, obwohl genau das die Benutzer von ihnen erwarten. Beide Bedürfnisse müssen erfüllt werden, und die Einführung einer Anwendungsbereitstellungsebene in der Architektur kann dazu dienen, die Balance zwischen Leistung, Wartungsfreundlichkeit und einfachem Management zu liefern, indem dynamisch Beschleunigungsservices angewendet werden. Auf diese Weise müssen Anwendungen nicht modifiziert werden, aber die Leistung und Skalierung werden stark verbessert.