BLOG

Die Hierarchie der Anwendungsbedürfnisse

Lori MacVittie Miniaturbild
Lori MacVittie
Veröffentlicht am 02. Mai 2016

Die meisten Leute haben von Maslows Bedürfnishierarchie gehört oder sie gesehen. Wenn Sie mit dem Konzept nicht vertraut sind (oder eine Auffrischung brauchen), hier die Kurzfassung: Maslow glaubte, dass Menschen motiviert sind, bestimmte Bedürfnisse zu erfüllen. Er definierte eine fünfstufige Hierarchie, die mit grundlegenden, überlebensbezogenen Bedürfnissen wie Nahrung, Schlaf und Sicherheit beginnt und sich nach oben zu persönlicheren, wachstumsbezogenen Bedürfnissen wie Selbstverwirklichung vorarbeitet.

Es genügt zu sagen, dass die Hierarchie oft als Modell verwendet wird, um eine Reihe von Anforderungen für verschiedene Belange, einschließlich Technologie, zu beschreiben. Und so sind wir heute hierher gekommen.

Heutzutage gibt es eine Reihe ganz bestimmter Anforderungen an Anwendungen, die hierarchisch angeordnet werden können, um die Hierarchie von Maslow nachzubilden. Wie in der Maslowschen Hierarchie sind die Bedürfnisse der unteren Ebene am wichtigsten für das Überleben und den Erfolg, während die Bedürfnisse der höheren Ebene Wachstum ermöglichen. Toll, wie das funktioniert, oder?

Der Grund dafür ist, dass einige dieser Anforderungen – angesichts der heutigen Umgebung und Benutzererwartungen und in manchen Fällen auch aus rein technischen Gründen – ohne App-Dienste realistischerweise nicht erfüllt werden können. Dazu gehören Dinge wie Lastausgleich, Failover, Web-App-Sicherheit, SSO, Beschleunigung und Optimierung usw.

Bild

Natürlich könnten Sie eine App schreiben, die sich im Falle eines Absturzes/Fehlers selbst neu startet, aber Sie können einen Fehler auf Netzwerkebene, der einen Ausfall verursacht, nicht beheben. Dies kann nur ein vorgelagertes (externes) System wie beispielsweise ein Lastausgleichs- oder Failover-Dienst leisten. Das bedeutet, dass Sie die Zuverlässigkeit der Anwendung letztendlich nicht gewährleisten können, wenn Sie keinen App-Dienst wie den Lastenausgleich verwenden. Ebenso können die meisten Anwendungen den Netzwerkstapel, der das TCP-Verhalten steuert, nicht manipulieren. Dies ist jedoch über einen Upstream-Proxy (Lastausgleichsdienst) möglich. Dort werden auch viele der Optimierungen implementiert, die mobile Apps nutzbar machen. Ohne sie sind Apps langsam und reagieren nicht richtig und werden häufiger abgebrochen als ihre optimierten Gegenstücke. Aus diesem Grund ist die Leistung ein Bedürfnis mittlerer Hierarchie; denn sie ist zwar wichtig, aber nicht das wichtigste Bedürfnis einer Anwendung. Wenn es nicht verfügbar ist, wird keine Optimierung etwas bewirken.

Lassen Sie uns also ohne weitere Umschweife in die Hierarchie der App-Anforderungen eintauchen, einverstanden?

1. Zuverlässigkeit

Zuverlässigkeit bedeutet, dass Benutzer – Unternehmen und Verbraucher – sich auf die Verfügbarkeit der App verlassen können. Das heißt, wir müssen sicherstellen, dass die App auch in Zeiten hoher Nachfrage (Skalierbarkeit), bei Störungen (Failover) oder im Katastrophenfall (Notfallwiederherstellung) verfügbar bleibt. Im Wesentlichen handelt es sich dabei um Lastausgleichs- und Failover-Dienste, es umfasst aber auch unterstützende App-Dienste wie DNS, die im Katastrophenfall für die Umleitung der Benutzer zuständig sind. Es überrascht nicht, dass die Verfügbarkeit in unseren Umfragen zum Stand der Anwendungsbereitstellung weiterhin ganz oben auf der Liste der „App-Dienste, ohne die Unternehmen keine Anwendungen bereitstellen würden“ steht. Es handelt sich dabei nicht nur um eine grundlegende Überlebensanforderung für Apps; heute ist es auch eine Überlebensanforderung für Unternehmen.

2. Sicherheit

Ah, Sicherheit. Ohne sie sind Apps anfällig für eine Vielzahl von Angriffen, die nicht alle mit der Qualität ihres Codes zusammenhängen. Anwendungssicherheit ist ein Stapel, der nicht nur die App, sondern auch die zugrunde liegende Plattform umfasst. Und Berichte deuten weiterhin darauf hin, dass Angreifer sich in diesem Stapel weiter nach oben in Richtung Anwendungsebene bewegen, sowohl zum Exfiltrieren (um Ihre Daten zu stehlen) als auch zum Ausnutzen (um Ihr Geschäft zu stoppen). Dies bedeutet, dass eine Vielzahl von Sicherheits-App-Diensten erforderlich sind, um die Verfügbarkeit und Funktionsfähigkeit der Anwendung aufrechtzuerhalten, beispielsweise DDoS-Schutz, Web-App-Sicherheit, Betrugsprävention und Verschlüsselungsdienste. Da Organisationen immer häufiger Angriffen ausgesetzt sind und neue Schwachstellen gemeldet werden, steigt auch der Bedarf an Sicherheit, da diese zu den zentralen App-Diensten zählt, die heute für die Überlebensfähigkeit von Apps und Unternehmen erforderlich sind.

3. Leistung

Leistung. Wir alle wissen, wie wichtig das ist, insbesondere für Apps, die häufig über Mobilgeräte (über ein Mobilfunknetz) genutzt werden. Leistungsstarke App-Dienste stellen die Ebene in der Hierarchie dar, die von App-Diensten zur Deckung grundlegender Bedürfnisse bis hin zu solchen zur Deckung von Wachstumsbedürfnissen reicht. Bei leistungsbezogenen Bedenken geht es eigentlich um beides. Wenn eine App zu langsam ist oder nicht reagiert, kann sich dies negativ auf die Produktivität der Unternehmensbenutzer auswirken und zu Umsatzeinbußen bei den Verbrauchern führen. Dies hat zwar nicht dieselben Auswirkungen auf das Geschäft wie die Nichtverfügbarkeit oder Störung der App, ist aber dennoch wichtig. Aus diesem Grund setzen so viele Unternehmen Techniken wie Bildoptimierung, Komprimierung, SSL-Offloading und TCP-Multiplexing ein, um die Leistung ihrer Anwendungen zu verbessern. Denn manchmal geht es nicht um den Code, sondern darum, Herausforderungen im Netzwerk, auf dem Gerät des Benutzers und mit den Protokollen zu bewältigen, über die Anwendungen kommunizieren.

4. Programmierbarkeit

Apps sind heute das A und O und müssen nicht nur schnell geliefert, sondern auch schnell eingesetzt werden. Um zu wachsen und zu skalieren, müssen die App-Dienste, die die Anforderungen auf niedrigerer Ebene (Zuverlässigkeit, Sicherheit und Leistung) unterstützen, auch schnell bereitgestellt werden können. Das bedeutet Programmierbarkeit. Dies bedeutet, dass APIs und Vorlagen sowie die Integration und Zugänglichkeit für die übrige API-Ökonomie die CI/CD-Pipeline aus der Entwicklung in den Betrieb und über das breitere IT-Spektrum hinaus vorantreiben. Durch Programmierbarkeit können App-Dienste am DevOps-Ökosystem teilnehmen, unabhängig davon, ob der Schwerpunkt auf dem Netzwerk (SDN), der Cloud ( OpenStack ) oder dem gesamten Rechenzentrum (SDDC) liegt. Vorlagen sorgen für die Standardisierung (Konsistenz) und Wiederholbarkeit, die zur Verbesserung der Prozesse erforderlich sind, die die Bereitstellung in modernen Rechenzentren vorantreiben. APIs gewährleisten Flexibilität und Unterstützung für die wachsende Zahl von Frameworks und Toolsets, die zur Automatisierung der Konfiguration und Verwaltung verwendet werden, und stellen sicher, dass keine App zurückbleibt, weil das Netzwerk im Weg war.

5. Architektonische Agilität

Und schließlich benötigen Anwendungen architektonische Flexibilität, um das Wachstum von Apps (und damit des Geschäfts) zu unterstützen. Das bedeutet, dass die App-Dienste, die sie unterstützen, ermöglichen und schützen, mit den von den Apps verwendeten Architekturen (wie Microservices, Containern, Virtualisierung und Cloud) kompatibel sein müssen. Die App-Dienste, die die Anforderungen der unteren Hierarchieebenen unterstützen, müssen zusammen mit der Anwendung für die Bereitstellung verfügbar sein, egal, wohin diese geht. Das bedeutet Unterstützung für virtuelle, physische und Cloud-basierte App-Dienste.