BLOG

Warum Netzwerke für die App-Architektur wichtig sind

Lori MacVittie Miniaturbild
Lori MacVittie
Veröffentlicht am 08. Mai 2017
2965-Gruppe

Ich habe viel zum Thema der manchmal turbulenten Beziehung zwischen App-Architekturen und dem Netzwerk geschrieben. Dabei ging es größtenteils darum, wie sich Änderungen in der App-Architektur auf das Netzwerk und die App-Dienste auswirken, die zur Bereitstellung von Geschwindigkeit, Skalierbarkeit und Sicherheit verwendet werden . Heute jedoch werden wir diese Beziehung umkehren und uns ansehen, wie das Netzwerk einen ziemlich großen Einfluss auf Anwendungen und damit auf Innovationen hat.

Daran musste ich kürzlich in einem Beitrag zum Thema „Hohe Skalierbarkeit“ denken. Der Autor erläutert darin, warum das Netzwerk wichtig ist und wie sich die Entwicklung vollzogen hat – bis hin zur heutigen Serverless-Welt – und warum eine Welt, in der das Internet tatsächlich der Computer ist, durchaus vorstellbar ist. Es ist lang, aber lesenswert und ich empfehle Ihnen, sich die Zeit zu nehmen, es durchzulesen. Ich fasse hier zusammen, aber es gibt vieles, was ich nicht angehe, was Sie im Originalartikel aber interessant finden werden.

Als es noch DFÜ-Zugänge zum Internet gab, bestanden Websites hauptsächlich aus Text und vielleicht ein oder zwei (minderwertigen) Bildern. Wenn Sie etwas Interaktives wollten, starteten Sie Gopher oder Telnet und verwendeten ein textbasiertes Terminal. Es war einfach nicht möglich, mit der letzten Meile über DFÜ etwas Komplexeres zu erreichen.

Mit zunehmender Einwahlgeschwindigkeit, die schließlich durch die ersten „Breitband“-Angebote ersetzt wurde, zeigten Apps zunehmend mehr Bilder an und begannen, sich auf mehrere Seiten aufzuteilen. Denn das Netz war schnell genug, um die Informationen zu übermitteln, ohne dass dem Verbraucher langweilig wurde und er losrannte, um Diablo zu spielen. Dieses Muster setzte sich fort, bis die Größe zum Problem wurde. Es war nicht mehr die Geschwindigkeit, die die Websites bremste, sondern die Größe. Plötzlich war die Lastverteilung eine Goldgrube.

Die Netzwerkgeschwindigkeiten nahmen weiter zu – und zwar nicht nur auf der letzten Meile, sondern auch innerhalb des Rechenzentrums und entlang des Internet-Backbones. Mit Web 2.0 wurde der Welt das Konzept von Web-Apps vorgestellt, das uns reaktionsfähige, interaktive Websites bescherte, die sich die Möglichkeiten des Netzwerks zunutze machten, den Umfang und die Geschwindigkeit des Datenaustauschs sicherzustellen.

Aufgrund der Fortschritte in der Netzwerktechnik haben sich die Anwendungsarchitekturen geändert. Ohne Geschwindigkeit und Umfang wäre die Welt des Web 2.0 nie entstanden, weil sie das jedem Verbraucher innewohnende Bedürfnis nach Geschwindigkeit schlicht nicht befriedigt hätte. Bei diesen Apps handelte es sich jedoch immer noch um ein traditionelles Drei-Schichten-Modell, bestehend aus einer Präsentationsschicht, einer Logikschicht und der Datenschicht. Sie wurden lediglich über das Internet verbreitet.

Bald darauf war SOA (Serviceorientierte Architekturen für euch junge Leute – runter von meinem Rasen übrigens) der letzte Schrei. Durch die Kombination verschiedener Standards (SOAP, XML) und den Aufbau auf bestehenden serviceorientierten Konzepten haben sich die „Webservices“ durchgesetzt. Webservices und SOA führten das Konzept der Zerlegung von Anwendungen in einzelne Services ein. Wenn Ihnen das bekannt vorkommt, dann ist das auch gut so, denn heute nennen wir dieses Konzept „Microservices“.

Das Problem bei Webdiensten bestand darin, dass XML ein umfangreiches Format ist und die Analyse auf dem Client (oder Server) viel Zeit in Anspruch nahm. Da XML das Herzstück von SOA bildete, bedeutete dies, dass jeder Dienst für den Austausch über das Netzwerk und den Prozess eine bestimmte Zeit in Anspruch nahm. Da für die Bearbeitung einer Verbraucheranfrage nur eine begrenzte Zeit zur Verfügung steht, ist auch die Anzahl der Dienste, in die eine Anwendung sinnvoll zerlegt werden kann, zwangsläufig begrenzt.  Zwei oder drei Gottesdienste waren das Höchste, was man erreichen konnte.

Heute sind die Netzwerke durchgängig schneller und leistungsfähiger. Die Netzwerke von Rechenzentren (und Clouds) werden in Gigabit pro Sekunde gemessen, nicht in Megabit pro Sekunde, und selbst Breitbandverbindungen würden die Geschwindigkeiten der frühen Unternehmensnetzwerke in den Schatten stellen. Das bedeutet schnellere Übertragungen über das Netzwerk. In Kombination mit einer unglaublichen Steigerung der Rechen- und E/A-Geschwindigkeit (weil das Mooresche Gesetz richtig ist) konnten Anwendungen in Dutzende oder sogar Hunderte von Diensten zerlegt werden, die innerhalb der erwarteten Antwortparameter aufgerufen und ausgeführt werden können. Wir nennen diese Microservices.

Diese Änderungen im Netzwerk haben moderne Anwendungsarchitekturen und APIs ermöglicht. Es fördert den Echtzeit-Informationsaustausch auf eine Art und Weise, die zu Beginn des 20. Jahrhunderts noch nie möglich gewesen wäre. So wie Technologie heute als Schlüsselkomponente der Geschäftsstrategie betrachtet wird und nicht mehr ihre traditionelle unterstützende Rolle einnimmt, wird auch das Netzwerk zunehmend zu einer Schlüsselkomponente von Anwendungen. Wenn wir die nächste Welle an Architekturen (die serverlos ist) beobachten, werden wir feststellen, dass solche Computermodelle ohne eine hochgradig reaktionsfähige, integrierte Netzwerk- und App-Serviceebene, die eine nahezu sofortige Reaktion auf Skalen- und Sicherheitsereignisse ermöglicht, nicht realisierbar sind.

Dabei kommt es weniger auf die Geschwindigkeit des Netzwerks an (wir erreichen die Grenzen der Lichtgeschwindigkeit), sondern vielmehr auf die Geschwindigkeit, mit der das Netzwerk auf Ereignisse wie Hoch- und Herunterskalieren, das Stoppen eines laufenden Angriffs oder das Umgehen von Problemen im Netzwerk oder in der App-Infrastruktur reagieren kann . Die nächste Netzwerkgeneration ist softwaredefiniert, softwaregesteuert und softwareunterstützend. Darüber hinaus erfolgt eine Migration hin zu einem Skalierbarkeitsmodell, das einen Just-in-Time-Ansatz verfolgt, der nahezu augenblickliche Reaktionsgeschwindigkeiten von Diensten erfordert, die Zugriff, Skalierbarkeit und Sicherheit für die in diesen Containern gehosteten Dienste bereitstellen.

„Das Netzwerk“, wie wir es gerne nennen, besteht aus Diensten, die auf unterschiedlicher Software und Hardware basieren . Der Erfolg dieser neuen Anwendungsarchitekturmodelle wird zum Teil von der Fähigkeit des Netzwerks abhängen, zu reagieren und Dienste in einem Just-in-Time-Modell bereitzustellen. 

„Das Netzwerk“ war noch nie so wichtig wie heute.