Les microservices (et leur meilleur allié, souvent cité, les conteneurs) commencent à conquérir le cœur et l’esprit des développeurs de tous horizons. Les start-up ne sont pas les seules à adopter les principes de conception modulaires, faiblement couplés et reposant exclusivement sur des API propres aux microservices ; les grandes entreprises s’y mettent également.

Avec l’adoption croissante (Datadog, fournisseur de solutions de surveillance des infrastructures cloud, a enregistré une croissance de près de 500 % au cours des 12 mois écoulés depuis septembre 2014), les voix proclamant haut et fort la mort des applications monolithiques se multiplient, qualifiant leur architecture totalement inadaptée non seulement d’obsolète, mais tout simplement de mauvaise.
Mais comme l’a souligné un récent article publié sur Gigaom, il convient de prendre en compte certains compromis avant de sortir le marteau-piqueur et de démanteler chaque monolithe en une centaine de microservices différents. Ce concept n’est d’ailleurs pas nouveau. Le père des microservices, Martin Fowler, évoquait déjà ces compromis il y a longtemps et a mis en garde contre ce que l’on ne peut qualifier que d’« adoption aveugle » des microservices. En fait, l’article de Gigaom reprend globalement les mêmes arguments que Fowler, mais de manière plus concise.
Si vous cherchez la version courte de ces deux articles, l’essentiel se résume à ceci : les microservices ajoutent de la complexité opérationnelle et peuvent nuire à l’expérience applicative en matière de performances. Il s’agit dans les deux cas de conséquences indésirables — et souvent involontaires — qu’il faut comprendre dès le départ, avant que ce type, là-bas dans votre centre de données, ne commence à manier le marteau-piqueur métaphorique.
Cela étant dit, pourquoi diable Lori s’en soucie-t-elle ? Après tout, ni elle ni F5 n’ont pour métier de développer ou de concevoir des applications. F5 assurera la mise à disposition de ces applications, qu’il s’agisse de monolithes, de microservices ou de <prochaine architecture applicative ici>.
Tout cela est vrai. Mais notre métier consiste à concevoir et à déployer les services applicatifs qui assurent la mise à disposition de ces applications, et les tendances récentes telles que le DevOps et les microservices (sans oublier l’engouement pour les conteneurs) soulèvent les mêmes questions dans notre domaine. Plus précisément, faut-il décomposer les services applicatifs généralement déployés sur une plateforme ADC en services plus granulaires et étroitement liés aux applications selon un modèle davantage aligné sur l’architecture de microservices ?
Toujours une question de compromis
Qu’il s’agisse de l’architecture d’une application ou de celle de ses services, il faut avant tout comprendre les compromis qu’implique une telle décision.
L’approche plateforme (monolithique)

Il s’agit de l’approche traditionnelle pour fournir les services applicatifs nécessaires à la sécurisation, à la mise à l’échelle et à l’optimisation de tous types d’applications. Les services sont déployés sur une plateforme unique et partagée. Grâce à l’architecture du proxy sous-jacent, cette approche présente l’avantage d’améliorer les performances. En effet, toutes les requêtes (et réponses) peuvent transiter par les services requis sans quitter le même environnement. Aucun saut réseau supplémentaire (et la latence associée) ni aucune connexion supplémentaire (ressources, latence) ne sont donc nécessaires. Chaque service peut toujours être mis à l’échelle et géré individuellement, mais tous dépendent d’un seul équipement matériel partagé (standard du commerce ou personnalisé). Ce matériel partagé constitue donc un point de défaillance unique susceptible d’affecter non pas un seul, mais de nombreux services.
L’approche du proxy par application (microservices)
Ce modèle s’inscrit davantage dans la logique du DevOps et des nouvelles pratiques d’architecture applicative. Chaque service est déployé, géré et mis à l’échelle individuellement. Bien que cela entraîne des coûts administratifs supplémentaires (il y a, après tout, davantage d’instances à gérer), une partie de ces coûts peut être réduite si chaque service est déployé sur la même plateforme. Ce modèle permet toutefois de combiner des services provenant de différents fournisseurs. Cette approche présente l’avantage de pouvoir associer plus étroitement les services à l’architecture applicative — et donc de les y intégrer —, notamment grâce à leur intégration aux frameworks d’automatisation courants.
La décomposition de la fourniture d’applications en services applicatifs distincts présente les mêmes inconvénients, à savoir des problèmes de performances et une complexité accrue. À l’inverse, les raisons qui poussent les développeurs à adopter les microservices et à délaisser les architectures monolithiques — notamment la recherche d’agilité, de diversité et de modularité — s’appliquent également à la fourniture d’applications.
Je vais simplement citer Martin Fowler : « De nombreuses équipes de développement ont constaté que le style architectural des microservices constituait une meilleure approche qu’une architecture monolithique. Mais d’autres équipes ont constaté qu’il représentait un fardeau nuisible à la productivité. Comme tout style architectural, les microservices présentent des coûts et des avantages. Pour faire un choix judicieux, vous devez les comprendre et les mettre en perspective dans votre contexte spécifique. »
Cette affirmation s’applique tout aussi bien aux services applicatifs. Les approches traditionnelle (monolithique) et moderne (microservices) présentent toutes deux des coûts et des avantages qui doivent être évalués en fonction du contexte de l’application qu’elles serviront à fournir, sécuriser et optimiser.
À propos de l’auteur

Lori MacVittie est ingénieure émérite et évangéliste en chef au sein du bureau du directeur technique de F5. Elle possède une expertise approfondie dans la fourniture d’applications, les stratégies d’automatisation et les infrastructures. Elle est réputée pour sa capacité à rendre la complexité intelligible, qu’elle définisse des garde-fous pour les agents d’IA, analyse des architectures multicloud fragiles ou explore les limites des systèmes évolutifs. Elle cumule plus de trente ans d’expérience dans le secteur, couvrant le développement d’applications, l’architecture informatique ainsi que l’exploitation des réseaux et des systèmes. Avant de rejoindre F5, elle a été rédactrice spécialisée dans les technologies et a reçu plusieurs distinctions. MacVittie est titulaire d’un master en informatique et est une autrice prolifique dont les publications couvrent la sécurité, le cloud et l’architecture d’entreprise. Elle est également une passionnée de jeux de société et de jeux vidéo, et assume pleinement ses avis bien tranchés sur le fromage.
Autres articles de Lori Mac VittieArticles de blog associés

F5 NGINXaaS pour Google Cloud : des applications résilientes et évolutives
Découvrez comment NGINXaaS s’intègre à Google Cloud pour renforcer les performances et la sécurité, et préparer vos applications critiques à un avenir propulsé par l’IA.
L’intégration de F5 Web Application Firewall (WAF) à AWS est disponible dès aujourd’hui
En faisant appel à un partenaire de déploiement AWS WAF tel que F5, vous pouvez renforcer la sécurité de vos applications web grâce à des règles personnalisées qui bloquent les schémas d’attaque courants, comme les injections SQL ou les attaques par scripts intersites (XSS).
Appliquer le principe de Peter Parker à l’inspection TLS
« Un grand pouvoir implique de grandes responsabilités. » Si l’on en trouve des échos chez Voltaire et Churchill, cette citation est surtout connue grâce aux bandes dessinées Spider-Man, où elle est attribuée à l’oncle Ben. Bien entendu, si cette phrase est si répandue dans la culture populaire, c’est notamment parce qu’elle peut s’appliquer à une multitude de situations et de sujets, y compris à l’inspection TLS.
Le NetOps a besoin de défenseurs, pas d’adversaires
Il est important de reconnaître que les équipes NetOps ne sont pas toujours celles qui font obstacle au déploiement de la dernière nouveauté, application ou service. Les freins à la rapidité sont souvent dus au fait que les organisations n’adoptent pas tous les principes du DevOps lorsqu’elles cherchent à transformer leurs opérations informatiques.
Mise à jour des services applicatifs : sécurité, rapidité et visiteurs suspects
Il est de nouveau temps de nous pencher sur les services applicatifs que les entreprises utilisent réellement pour rendre leurs applications plus rapides et plus sûres. On constate notamment une hausse du recours aux services de protection contre les bots, ainsi que la progression lente mais régulière de HTTP/2. Bien qu’il ne s’agisse pas d’une application…
Les templates prennent le contrôle du cloud
Les modèles s’imposent dans le cloud. Lisez le blog de F5 pour découvrir comment l’infrastructure en tant que code et les API déclaratives automatisent la mise à disposition des applications.