
L’étude de la philosophie, du moins autrefois, consistait notamment à poser des questions qui semblent, à première vue, quelque peu dénuées de pertinence. Après tout, est-il vraiment si important de savoir « si un navire restauré en remplaçant chacune de ses pièces en bois » reste le même navire ? C’est la question que Plutarque a posée dans Vie de Thésée et qui est ensuite devenue le paradoxe de Thésée. Plus généralement, il s’agit de savoir « si un objet dont tous les composants ont été remplacés reste fondamentalement le même objet ». (Bateau de Thésée, Wikipédia)
On pourrait se poser la même question à propos des microservices qui, lorsqu’ils sont appliqués à des applications monolithiques existantes, visent essentiellement à reconstruire l’application en remplaçant les fonctions par des services complémentaires. Les fonctions sont, par conception, de petite taille (ou devraient l’être), d’où l’emploi du terme « micro » pour désigner les services découplés qui en résultent. La différence entre les deux peut être envisagée sous l’angle de la communication. Dans une application monolithique, les fonctions sont appelées en faisant référence à une adresse mémoire précise. Dans une application fondée sur des microservices, les fonctions (services) sont appelées en faisant référence à une adresse IP précise sur le réseau.

Sur le plan conceptuel, les deux sont identiques ; seul le mécanisme d’appel des différents composants fonctionnels diffère. Le schéma qui en résulterait ne présenterait pratiquement aucune différence, si ce n’est que la « boîte » du monolithe correspond à un serveur unique, tandis que celle des microservices englobe l’ensemble du centre de données. L’un utilise un adressage local, l’autre un adressage réseau. Le code de chacune de ces fonctions pourrait être exactement le même, à l’image du bois du navire de Thésée.
Mais ses fonctions métier restent les mêmes et, de fait, si nous avons correctement décomposé l’application, l’utilisateur ne devrait percevoir aucune différence entre les deux. On pourrait soutenir que, du point de vue du passager du navire de Thésée, il n’y a aucune différence entre les deux. Et il ne devrait pas y en avoir.
Mais les philosophes ont tendance à approfondir la question et, à leur instar, nous devons en faire autant, car les différences entre une application monolithique et une application fondée sur des microservices sont, en réalité, très importantes pour l’exploitation.
La complexification des opérations réseau
Les microservices simplifient de nombreux aspects du processus de développement d’applications, mais génèrent en contrepartie une grande complexité opérationnelle. Le nombre de connexions réseau entre les différentes parties d’une application basée sur des microservices entraîne nécessairement une charge supplémentaire liée à la gestion des diverses caractéristiques réseau requises : adresses IP, VLAN, tables NAT, etc. L’évolutivité devient elle aussi un défi que même Dijkstra pourrait trouver frustrant, car le placement des microservices et du service d’équilibrage de charge a une incidence très concrète sur les performances, selon le nombre de segments réseau à traverser.
Des politiques supplémentaires deviennent soudain nécessaires, car les politiques de sécurité applicables à un service qui accède directement à une source de données sensibles ne sont pas les mêmes que celles requises pour sécuriser un autre service qui gère les préférences ou l’état de la session. Le réseau de politiques de micro-sécurité qui en résulte offre certes bon nombre des mêmes avantages que les microservices eux-mêmes, à savoir un contrôle plus granulaire et une forme d’élégante simplicité, mais il devient en même temps un cauchemar opérationnel, puisque les politiques doivent soudain se déplacer avec les services, où qu’ils apparaissent dans l’architecture.
Le déploiement devient lui aussi soudainement beaucoup plus complexe, comme si l’on passait d’une simple danse en carré au flamenco, bien plus élaboré, avec beaucoup plus de pas et de déplacements sur la piste de danse (le centre de données). L’orchestration et l’automatisation deviennent indispensables pour garantir la cohérence et la prévisibilité nécessaires afin de mettre tous les éléments en place au bon moment.
Les personnes chargées de fournir ces services réseau et de sécurité aux applications doivent comprendre que le navire n’est plus le même, quelle que soit l’impression donnée par une vue d’ensemble. Cela paraît simple : une application est simplement remplacée par dix services. Et voilà ! L’application a été recréée, à l’image du navire de Thésée. Mais d’un point de vue opérationnel, ce navire n’est plus du tout le même. Les raccords (l’intégration) du nouveau navire sont complètement différents, ce qui peut modifier la résistance exercée par la mer (le réseau) et avoir tendance à ralentir sa navigation.
Les microservices sont encore émergents. Ils ne dominent pas (encore) le monde, mais il est important de comprendre qu’il ne suffit pas de démonter le navire de Thésée et de le reconstruire. Les équipes chargées de l’exploitation des services réseau et de sécurité doivent adopter le point de vue du philosophe plutôt que celui du passager (l’utilisateur), car l’impact sur le réseau et la sécurité est radicalement différent.
À 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.