BLOG

La hiérarchie des besoins des applications

Miniature de Lori MacVittie
Lori MacVittie
Publié le 02 mai 2016

La plupart des gens ont entendu ou vu la hiérarchie des besoins de Maslow . Si vous n'êtes pas familier avec le concept (ou avez besoin d'un rappel), voici le TL;DR – Maslow croyait que les gens sont motivés pour satisfaire certains besoins. Il a défini une hiérarchie à cinq niveaux commençant par les besoins de base liés à la survie comme la nourriture, le sommeil et la sécurité et progressant vers des besoins plus personnels liés à la croissance comme la réalisation de soi.

Il suffit de dire que la hiérarchie est souvent utilisée comme modèle pour décrire un ensemble de besoins pour une variété de préoccupations, y compris la technologie. C’est ainsi que nous en sommes arrivés là aujourd’hui.

Il existe aujourd’hui un ensemble très spécifique de besoins des applications qui peuvent être organisés hiérarchiquement pour imiter la hiérarchie de Maslow. Comme dans la hiérarchie de Maslow, les besoins de niveau inférieur sont les plus essentiels à la survie et au succès, tandis que les besoins d’ordre supérieur permettent la croissance. C'est chouette comme ça marche, non ?

La raison pour laquelle cela est important est que certains de ces besoins ne peuvent pas être satisfaits de manière réaliste – compte tenu de l’environnement actuel, des attentes des utilisateurs et dans certains cas pour des raisons purement techniques – sans services d’application. Il s’agit de choses comme l’équilibrage de charge, le basculement, la sécurité des applications Web, l’authentification unique, l’accélération et l’optimisation, etc.

image

Bien sûr, vous pouvez écrire une application qui redémarre d'elle-même en cas de panne/défaillance, mais vous ne pouvez pas résoudre une défaillance au niveau du réseau qui provoque une panne. Seul un système en amont (externe) comme un service d'équilibrage de charge ou de basculement peut le faire. Ce qui signifie qu'en fin de compte, vous ne pouvez pas garantir la fiabilité de l'application à moins d'utiliser un service d'application tel que l'équilibrage de charge. De même, la plupart des applications ne peuvent pas modifier la pile réseau qui contrôle le comportement TCP. Mais un proxy en amont (service d'équilibrage de charge) peut le faire, et c'est là que sont implémentées de nombreuses optimisations qui rendent les applications mobiles utilisables. Sans eux, les applications sont lentes et ne répondent pas et ont tendance à être abandonnées avec des taux plus élevés que leurs homologues optimisées. C'est pourquoi les performances sont un besoin de milieu de hiérarchie ; car elles sont importantes, mais ce n'est pas le besoin le plus important d'une application. Si ce n’est pas disponible, après tout, aucune optimisation ne pourra y remédier.

Alors sans plus tarder, plongeons dans la hiérarchie des besoins des applications, d’accord ?

1. Fiabilité

La fiabilité signifie que les utilisateurs, qu’ils soient des entreprises ou des particuliers, peuvent compter sur la présence de l’application. Cela signifie que nous devons nous assurer que l'application continue d'être disponible pendant les périodes de forte demande (évolutivité), de panne (basculement) ou de catastrophe (reprise après sinistre). Dans sa forme la plus basique, cela signifie des services d'équilibrage de charge et de basculement, mais inclut également la prise en charge de services d'application comme DNS, qui sont responsables de la redirection des utilisateurs en cas de sinistre. Il n'est pas surprenant que la disponibilité soit restée en tête des « services d'applications sans lesquels les organisations ne déploieraient pas d'application » dans nos enquêtes sur l'état de la distribution d'applications . Il ne s’agit pas seulement d’un besoin de survie de base pour les applications ; aujourd’hui, c’est aussi un besoin de survie pour les entreprises.

2. Sécurité

Ah, la sécurité. Sans cela, les applications sont vulnérables à une grande variété d’attaques, qui ne sont pas toutes liées à la qualité de leur code. La sécurité des applications est une pile, comprenant non seulement l'application mais également sa plate-forme sous-jacente. Et les rapports continuent d'indiquer que les attaquants continuent de progresser vers la couche applicative, à la fois pour l'exfiltration (pour voler vos données) et l'exploitation (pour arrêter votre activité). Cela signifie qu'une variété de services d'application de sécurité sont nécessaires pour aider l'application à rester disponible et saine, comme la protection DDoS, la sécurité des applications Web, la prévention de la fraude et les services de cryptage. La fréquence croissante à laquelle les organisations subissent des attaques et à laquelle de nouvelles vulnérabilités sont signalées continue de susciter des besoins de sécurité en tant que l'un des principaux services d'application nécessaires pour assurer la survie des applications et des entreprises aujourd'hui.

3. Performance

Performance. Nous savons tous à quel point cela est important, en particulier pour les applications couramment utilisées via des appareils mobiles (sur un réseau mobile). Les services d'application de performance constituent le niveau de la hiérarchie qui va des services d'application répondant aux besoins de base à ceux répondant à la croissance. Les préoccupations liées aux performances concernent en réalité les deux. Si une application est trop lente ou ne répond pas, cela peut avoir un impact négatif sur la productivité des utilisateurs de l’entreprise ainsi que réduire les revenus des consommateurs. Cela n’a pas le même impact sur l’entreprise que l’indisponibilité de l’application ou une violation de sécurité, mais c’est quand même important. C’est pourquoi nous voyons tant d’organisations utiliser des techniques telles que l’optimisation d’image, la compression, le déchargement SSL et le multiplexage TCP pour améliorer les performances des applications. Parce que parfois, ce n’est pas une question de code, mais de résolution de problèmes au sein du réseau, sur l’appareil de l’utilisateur et avec les protocoles via lesquels les applications communiquent.

4. Programmabilité

Les applications sont le business d’aujourd’hui, et elles doivent non seulement être livrées rapidement, mais également déployées rapidement. Pour croître et évoluer, les services d'application prenant en charge les besoins de niveau inférieur (fiabilité, sécurité et performances) doivent également pouvoir être déployés rapidement. Cela signifie programmabilité. Cela signifie des API et des modèles, et être intégré et accessible à l'autre économie d'API, en faisant sortir le pipeline CI/CD du développement, vers les opérations et à travers le spectre informatique plus large. La programmabilité permet aux services d'application de participer à l'écosystème DevOps, qu'il soit axé sur le réseau (SDN) ou le cloud ( OpenStack ) ou sur l'ensemble du centre de données (SDDC). Les modèles fournissent la standardisation (cohérence) et la répétabilité nécessaires à l’amélioration des processus qui pilotent les déploiements dans les centres de données modernes. Les API garantissent la flexibilité et la prise en charge du nombre croissant de frameworks et d'ensembles d'outils utilisés pour automatiser la configuration et la gestion, et garantissent qu'aucune application ne soit laissée de côté parce que le réseau était en travers de son chemin.

5. Agilité architecturale

Enfin, pour soutenir la croissance des applications (et donc des entreprises) aujourd’hui, les applications ont besoin d’agilité architecturale. Cela signifie que les services d'application qui les prennent en charge, les activent et les protègent doivent être compatibles avec les architectures utilisées par les applications (comme les microservices, les conteneurs, la virtualisation et le cloud). Les services d'application prenant en charge les besoins de niveau inférieur de la hiérarchie doivent être disponibles pour le déploiement avec l'application, où qu'elle soit destinée. Cela signifie la prise en charge des services d'applications virtuels, physiques et basés sur le cloud.