Qu’est-ce que l’architecture orientée services (SOA) ?

L’architecture orientée services (SOA) est une approche architecturale permettant de concevoir des applications autour d’un ensemble de services indépendants. Un service peut être n’importe quelle fonctionnalité d’entreprise qui accomplit une action et fournit un résultat spécifique, comme le traitement d’une commande client ou la compilation d’un rapport d’inventaire. Les services peuvent être assemblés pour créer des applications composites, offrant ainsi une plus grande fonctionnalité aux utilisateurs finaux.

Les avantages de l’approche SOA incluent une plus grande facilité de maintenance et de mise à jour des composants des services. Chaque composant étant plus condensé et contenu, il est plus facile de corriger le code ou de remplacer des éléments sans avoir d’impact sur tous les autres éléments. Cependant, des problèmes se posent lorsque nous déterminons la meilleure façon de permettre la communication entre les services. L’approche SOA est généralement associée au bus de services d’entreprise (ESB) comme moyen central de communication entre les services. Les ESB répondent souvent mal au changement, entraînent généralement une plus grande complexité et rendent plus difficile la compréhension du point de départ et d’arrivée d’un service.

SOA vs microservices

Si vous pensez que l’architecture SOA ressemble beaucoup à la définition actuelle des microservices, vous n’êtes pas seul. Les microservices sont également de petits services autonomes destinés à fonctionner de manière indépendante tout en collaborant. Mais il existe des différences essentielles entre l’architecture SOA et les microservices. En voici quelques-unes :

  • Les microservices sont des services à grain très fin, séparés à un certain niveau de granularité pour une raison fonctionnelle. Cela signifie que dans une architecture de microservices, un service, y compris la base de données et les serveurs d’application, ainsi que le support produit, est géré de bout en bout par la même équipe. L’architecture SOA, en revanche, sépare les services de manière logique. La distinction ici est que les services regroupés logiquement sont partagés entre les fonctions. Cela semble bien... jusqu’à ce que le service tombe en panne et que toutes les fonctions qui en dépendent soient affectées. Les architectures microservices sont conçues pour éliminer cet impact en contenant complètement les services métier dans leurs fonctions uniques, avec tout ce qui est nécessaire pour remplir ces fonctions et fournir de la valeur métier - même si cela implique de dupliquer quelque chose en cours de route.
  • Les microservices, parce qu’ils sont entièrement contenus par leur fonction, ne sont pas non plus liés par les mêmes cadres de communication, protocoles et spécifications qui limitent en fin de compte l’architecture SOA. Au lieu de cela, les microservices se concentrent sur le maintien de l’intelligence au sein de chaque ensemble de points d’extrémité et sur la mise en place d’un tissu simple pour les connecter. La meilleure façon d’y parvenir est souvent de mettre en œuvre une passerelle API unique qui abrite l’architecture interne du système et achemine les demandes à l’aide de protocoles Web légers, tels que REST, vers chaque microservice indépendant. En outre, chaque microservice consomme souvent des API d’autres services, mais la passerelle empêche les applications mobiles de toucher le back-end. Ce niveau de flexibilité est un élément que l’architecture SOA, alourdie par les spécifications des services Web et s’appuyant sur l’ESB pour connecter les applications, ne pourra jamais atteindre.

Bien que de nombreuses personnes considèrent les microservices comme l’architecture orientée services, il existe en fait un certain nombre de différences essentielles qui les distinguent et qui, à bien des égards, font des microservices le choix d’architecture le plus efficace pour les applications complexes. Pour plus d’informations sur l’architecture orientée services et les microservices, téléchargez l’ebook gratuit, Building Microservices: Designing Fine-Grained Systems.

Comment la solution NGINX Plus peut-elle vous aider ?

NGINX Plus et NGINX sont les meilleures solutions d’équilibrage de charge utilisées par des sites Web à fort trafic tels que Dropbox, Netflix et Zynga. Plus de 350 millions de sites Web dans le monde s’appuient sur NGINX Plus et NGINX Open Source pour diffuser leur contenu de manière rapide, fiable et sécurisée.

En tant que contrôleur de livraison d’applications (ADC) basé sur un logiciel, NGINX Plus est conçu pour faciliter les architectures microservices de manière beaucoup plus efficace et abordable que les solutions matérielles dotées de capacités comparables.

  • NGINX Plus fournit une solution complète de livraison d’applications et d’équilibrage de charge qui augmente les performances et la fiabilité de chaque microservice
  • NGINX Plus est suffisamment flexible et évolutif pour s’intégrer dans votre pile en tant que passerelle API et point final de chaque service
  • NGINX Plus agit comme un serveur HTTP haute performance pour réaliser les actions des microservices avec une rapidité et une efficacité maximales