Dans un article précédent, nous avons exploré la notion d'ajout de services d'application à des architectures d'applications changeantes à l'aide d'un concept que nous appelons « points d'insertion ». Pour ceux qui n'ont pas suivi, un point d'insertion est un emplacement architecturalement distinct dans le chemin du code vers les données client auquel il est logique d'ajouter des fonctionnalités qui sont souvent en dehors du champ de développement ou opérationnellement plus efficaces.
Un ensemble robuste de fonctionnalités ajoute ou améliore les applications qui représentent les activités commerciales d’aujourd’hui.
Les points d’insertion incluent le client, l’infrastructure et l’application elle-même. Chaque point a ses avantages et ses inconvénients lorsqu’il s’agit d’équilibrer l’efficacité opérationnelle et les coûts. Par exemple, il n'est probablement pas rentable, ni opérationnel, d'insérer un service d'application DDoS centré sur le réseau dans le client ou dans l'application. En effet, aucun des deux points d'insertion n'a accès aux fonctionnalités accélérées par le matériel disponibles avec une option d'infrastructure et ne dispose pas de la visibilité nécessaire pour prendre une décision précise.
Nous recherchons donc des services d'application qui soient à la fois efficaces sur le plan opérationnel et économique au point d'insertion ; dans ce cas, nous nous concentrons sur le serveur d'applications (plateforme) lui-même.
À première vue, ce point d’insertion peut sembler un choix étrange. Les serveurs d'applications hébergent et fournissent des applications, pas des services d'application. Mais si vous considérez le rôle que jouent NGINX et d’autres serveurs d’applications aujourd’hui, vous les constaterez souvent jouant à la fois le rôle d’infrastructure et de serveur. Par exemple, certains serveurs d’applications peuvent agir et agissent comme point de terminaison SSL. La terminaison SSL est un service d'application, souvent associé au déchargement SSL (accélération matérielle). Les services de pare-feu d'applications Web sont également souvent couplés aux serveurs d'applications via des plug-ins.
L’utilisation du serveur d’applications comme point d’insertion n’est ni nouvelle ni étrangère. Dans notre étude sur l’état des services d’application 2020, nous avons posé des questions sur cette option de déploiement de services d’application. Nous avons constaté qu’il y a un intérêt pour ce point d’insertion. Environ 6 % des répondants souhaiteraient utiliser un « plug-in » pour les services d’application. 9 % supplémentaires préféreraient « en tant que service », ce qui nécessite un morceau de code complémentaire (injecté ou inclus) pour être invoqué. Un petit nombre, 4 %, souhaiterait utiliser une bibliothèque pour inclure des services d'application. Cette dernière option est quelque chose que nous voyons fréquemment utilisée pour insérer des fonctionnalités dans des applications sans serveur (fonction en tant que service).
Dans de nombreux cas, le déploiement d’un service d’application sur un serveur d’applications est une bonne idée sur le plan opérationnel. Étant donné que ces services sont souvent configurés pour servir une seule application, ils peuvent être empaquetés et déployés par la même équipe. L’expertise du serveur d’applications garantit une plus grande confiance et une facilité d’intégration dans les écosystèmes et les pipelines de déploiement.
Dans certains cas, il sera judicieux de déployer l'application et le service d'application ensemble, sur la même instance d'un seul serveur d'applications. Par exemple, la protection des applications via une politique spécifique à l’application peut être intégrée et exécutée comme une étape du traitement des demandes et des réponses. Le fait que la fonctionnalité soit invoquée depuis le serveur est logique et, si l'inspection est exécutée localement, peut améliorer les performances en éliminant les sauts supplémentaires et le traitement par des services hébergés en dehors de l'environnement. Cela peut le rendre plus efficace à la fois sur le plan opérationnel et financier, surtout si vous payez à l’heure ou à l’appel pour le service.
Que le serveur d'applications soit utilisé pour héberger un service d'application autonome ou comme hôte à la fois d'une application et d'un service d'application, le serveur d'applications est certainement un bon point d'insertion pour les bons services d'applications.