BLOG

Die drei wichtigsten Merkmale eines modernen App-Proxys

Lori MacVittie Miniaturbild
Lori MacVittie
Veröffentlicht am 14. September 2015

Halten Sie die heiße Seite heiß und die kalte Seite kalt.

Sie erinnern sich vielleicht (wenn Sie alt genug sind, und nein, keine Sorge, ich werde Sie nicht bitten, die Hand zu heben) an eine Kampagne von McDonald’s vor einigen Jahren, bei der für die Verpackung einiger seiner Produkte geworben wurde, bei der „die heiße Seite heiß und die kalte Seite kalt“ blieb.

heiße Seite heiß kalte Seite kalt

Das Konzept war eigentlich ganz einfach: Heißes und Kaltes trennen, aber in einem einzigen Behälter aufbewahren, um den Transport zu erleichtern.

Dieses Konzept der Trennung innerhalb desselben „Containers“ ist die Grundlage dafür, was einen App-Proxy zu einem Proxy macht. Behält die Clientseite des Clients und die App-Seite … der App bei.

Okay, die Übersetzung lässt sich vielleicht doch nicht so sauber durchführen, wie ich es gerne hätte.

Dennoch ist das Konzept gültig und wichtig für das Verständnis eines App-Proxys.

Ein Proxy ist grundsätzlich eine Software, die logisch zwischen zwei Teilnehmern eines Kommunikationsaustauschs platziert wird. Ein App-Proxy befindet sich zwischen einer App und einem Client. Nun sind nicht alle Proxys vollwertige Proxys. Ein vollständiger Proxy erfordert eine interne Trennung der beiden Seiten. Im Wesentlichen verfügt ein vollständiger Proxy über zwei unabhängige Netzwerkstapel, die in einem einzigen Gerät enthalten sind. Die Client-Seite (die heiße Seite) und die App-Seite (die kalte Seite). 

Client-Seite, App-Seite

Ich weiß, der Vergleich ist nicht wirklich überzeugend, oder? Arbeiten Sie mit mir. Das ist alles, was ich im Moment habe.

Der Grund, warum dies eine Anforderung für einen App-Proxy ist (oder sein sollte), besteht darin, dass es dem Proxy die Möglichkeit gibt, am Austausch zwischen dem Client und dem Server teilzunehmen. Dies ist erforderlich, um Funktionen wie Minimierung (die die App-Leistung verbessert), Sicherheitsfunktionen (wie Datenbereinigung) und TCP-Multiplexing (Optimierung) sowie eine breite Palette anderer Dienste bereitzustellen.

In dieser internen „Lücke“ zwischen der Client-Seite und der App-Seite geschieht die Magie. Hier kommen zahlreiche Dienste zum Einsatz – vom rudimentären Lastenausgleich über erweiterte Anwendungs-Firewalls bis hin zur Anwendungszugriffskontrolle. Anfragen werden effektiv auf der Clientseite eines App-Proxys beendet. Danach erfolgt ein Prozess, der der Service-Verkettung sehr ähnlich ist, nur dass alles intern mit der Geschwindigkeit des internen Busses und Prozessors geschieht (die fast immer schneller ist als die Netzwerkgeschwindigkeit). Es folgt eine Inspektion. Richtlinien werden angewendet. Es kommt zu Transformationen. Entscheidungen werden getroffen. Es wird eine separate Verbindung zwischen dem Proxy und der App hergestellt und die Anfrage auf den Weg geschickt.

Wenn diese Anforderung an den Proxy zurückkehrt, geschieht das Gegenteil. Es folgt eine Inspektion. Daten werden bereinigt. Richtlinien werden angewendet. Anschließend gelangen sie wieder auf die Clientseite, wo sie wieder an den Client übertragen werden können.

Und das alles geschieht in weniger als einer Sekunde, weil alles intern im Proxy geschieht.

Da der Zweck eines App-Proxys darin besteht, ein breites Spektrum an App-Diensten bereitzustellen – Verfügbarkeit, Sicherheit, Mobilität, Identität und Zugriff sowie Leistung – sollte es sich wirklich um einen vollwertigen Proxy handeln. Nur ein vollständiger Proxy ist dafür ausgelegt, an jeder einzelnen Anfrage und Antwort teilzunehmen. Einfache Proxys (die eigentlich zustandslose Proxys sind, wenn Sie sich ganz ins Detail begeben möchten) nehmen nur an der ersten Konversation teil, wenn die Verbindung zwischen Client und App hergestellt wird. Sein Zweck besteht darin, eine App-Instanz auszuwählen und dann die Verbindung zwischen beiden „herzustellen“. Danach nimmt der Proxy nicht mehr teil. Es erkennt einen „Flow“ (eine TCP-Konstruktion der Schicht 4, von der Sie vielleicht schon einmal im Zusammenhang mit SDN gehört haben, was aber eine andere Diskussion für ein anderes Mal ist) und leitet Pakete einfach hin und her, wobei die heißen und die kalten Pakete wahllos vermischt werden. (Sehen? Ich wusste, dass die Analogie irgendwann funktionieren würde.)

Abgesehen davon sollte ein moderner (und skalierbarer) App-Proxy ein vollwertiger Proxy sein und über drei Hauptmerkmale verfügen: Programmierbarkeit, Leistung und Protokolle.

Programmierbarkeit ist in modernen Rechenzentren und der Cloud von entscheidender Bedeutung, um Automatisierung, Orchestrierung und Standardisierung zu unterstützen. Darüber hinaus ist es im Datenpfad von entscheidender Bedeutung für die Bereitstellung von Sicherheit und Diensten, die einen einzigartigen Mehrwert für Unternehmen und Betrieb bieten, indem es die Unterstützung benutzerdefinierter Protokolle und die Erweiterung vorhandener Protokolle ermöglicht. Die Leistung klingt einfach, ist es aber nicht. Da ein App-Proxy mit jeder einzelnen Anfrage interagiert, muss er nicht nur schnell, sondern rasend schnell sein. Es muss seine Aufgabe schnell erledigen, ohne dem Austausch durch eine die App-Erfahrung beeinträchtigende Latenzzeit zu gefährden. Das ist allerdings nicht so einfach, wie es klingt, insbesondere wenn der Druck so groß ist , Allzweck -Computer als Grundlage für die Bereitstellung zu verwenden.

Schließlich sind Protokolle wichtig. Das erste, woran wir denken, wenn wir „App“ sagen, ist wahrscheinlich HTTP. Das ist keine Überraschung; HTTP ist das neue TCP und die Lingua Franca des Internets. Es handelt sich jedoch nicht um das einzige verwendete Protokoll, insbesondere nicht im Zeitalter internetgestützter Kommunikation. Es gibt auch SIP und UDP. Ganz zu schweigen von SMTP (Sie versenden doch immer noch E-Mails, oder?) und LDAP. Und wie steht es mit SSL und TLS? Angesichts der zunehmenden Fokussierung (und Dringlichkeit) auf SSL Everywhere, also überall, ist es umso wichtiger, dass ein App-Proxy SSL/TLS spricht – und zwar überaus fließend. Denn sonst könnte die Leistungsanforderung möglicherweise nicht erfüllt werden.

 

Ein App-Proxy kann die Plattform bereitstellen, die moderne Rechenzentren benötigen, um Sicherheits- und Leistungsprobleme zu lösen, die Betriebskosten durch Automatisierung und Orchestrierung zu senken und das optimale App-Erlebnis für Privat- und Unternehmenskunden sicherzustellen. Es muss sich jedoch um einen vollwertigen App-Proxy mit Programmierbarkeit, Leistung und Protokollunterstützung handeln, um sicherzustellen, dass keine App zurückgelassen wird.