Le RGESN millésime 2024 est un bon point de départ pour revoir sa stratégie numérique durable et ses pratiques d’éco-conception. Avant de se faire rattraper par les exigences légales...
Embauché il y a 2 ans pour digitaliser les process, Alexandre Aubry raconte tous les changements que cela a induit : transformation de l'organisation, de l'infrastructure matérielle et réseau, ouverture et décommissionnement progressif de l'ERP Cobol...
Nous avons assisté à la conférence client de l'entreprise Orange à Agile en Seine. Cet article vous propose de découvrir comment l'IA Gen devient déjà un atout incontournable chez certains clients.
Les modèles clés de l'architecture des microservices
Plongée dans l'architecture des microservices et les modèles essentiels que tout ingénieur logiciel devrait, selon moi, prendre en compte pour construire des systèmes logiciels adaptables et évolutifs.
Dans le domaine du développement de logiciels complexes, en particulier lorsque des applications d'entreprise entrent en jeu, le choix de la bonne architecture est d'une importance capitale. Elle joue un rôle essentiel dans le développement de logiciels facilement évolutifs et adaptables à des besoins variés. La préférence traditionnelle pour l'architecture monolithique, bien que raisonnablement simple à comprendre et à utiliser, n'est pas toujours le choix idéal lorsqu'on parle de livraison agile de logiciels. Le problème réside dans le fait que la moindre modification du code nécessite le déploiement de l'ensemble de l'application, ce qui est non seulement long mais aussi dangereux, car une erreur dans un module peut potentiellement perturber la disponibilité de l'ensemble de l'application.
Microservices et API Gateway
L'architecture microservices offre une solution puissante à ce problème. L'un des principaux modèles consiste à utiliser une passerelle API, qui sert de point d'accès à n'importe quel microservice. Il est fortement conseillé de mettre en œuvre des préoccupations transversales telles que la sécurité, l'équilibrage de la charge et la limitation du taux ici, à l'aide d'outils comme Spring Cloud Zuul ou Spring Cloud Gateway.
Service Discovery & Circuit Breaker
Service Discovery, un autre modèle remarquable, permet aux services de se retrouver par leur nom plutôt que par leur IP, afin de lutter contre les problèmes liés à la création et à la fermeture régulières de conteneurs, ainsi qu'au changement de leur IP. Spring Cloud Ribbon est un choix solide pour mettre en œuvre ce modèle. Le schéma Circuit Breaker permet de gérer les erreurs transitoires, par exemple, lorsqu'un service est indisponible, il peut renvoyer un résultat mis en cache ou se rabattre sur une requête adressée à un autre service d'assistance. Pour ce faire, des outils comme Hystrix ou Resilient4J peuvent être utilisés.
Event-Driven Pattern & Saga
Les modèles Event-Driven Pattern et Saga sont également cruciaux pour la mise en œuvre des microservices. Le premier permet un couplage lâche entre les services, ce qui facilite la communication via une file d'attente de messagerie telle que AMQP (RabbitMQ) ou Apache Kafka. La gestion des systèmes distribués devient plus facile lorsqu'on utilise le modèle Saga, et les meilleures façons de le mettre en œuvre sont l'orchestration et le chorégraphe.
Lors de l'élaboration de solutions logicielles complètes utilisant des microservices, les ingénieurs ont sans aucun doute intérêt à intégrer certains de ces modèles, voire tous, afin de garantir l'adaptabilité et l'évolutivité de leurs logiciels. Ces concepts ne représentent pas seulement une nouvelle façon de construire des applications, mais peuvent également changer la dynamique de la façon dont les équipes travaillent tout au long du cycle de vie du développement logiciel. Les prochains articles approfondiront la manière dont ces modèles peuvent être mis en œuvre efficacement, ainsi que les avantages et les inconvénients des différentes mises en œuvre.