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é commerciale qui effectue 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 davantage de fonctionnalités aux utilisateurs finaux.

Les avantages de l’approche SOA incluent une plus grande facilité de maintenance et de mise à jour des composants de service – chaque composant étant plus condensé et contenu, il est plus facile de corriger le code ou de remplacer des éléments sans impacter tous les autres éléments. Cependant, des problèmes surviennent lorsque nous déterminons la meilleure façon de permettre la communication entre les services. SOA est généralement associé à l'Enterprise Service Bus (ESB) comme moyen central de communication entre les services. Les ESB ne réagissent souvent pas bien au changement, entraînent généralement plus de complexité et rendent plus difficile la compréhension du début et de la fin d'un service.

SOA contre Microservices

Si vous pensez que 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 travaillant ensemble. Mais il existe des différences clés entre SOA et microservices. En voici quelques-uns à noter :

  • Les microservices sont des services très finement granulaires, 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’applications, ainsi que le support produit) est géré de bout en bout par la même équipe. SOA, en revanche, sépare les services de manière logiqueLa 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 impactées. Les architectures de microservices sont conçues pour éliminer cet impact en contenant entièrement les services métier dans leurs fonctions uniques, ainsi que tout ce qui est nécessaire pour remplir ces fonctions et fournir de la valeur métier, même si cela signifie dupliquer quelque chose en cours de route.
  • Les microservices, parce qu'ils sont entièrement contenus dans la fonction, ne sont pas non plus liés aux mêmes cadres de communication, protocoles et spécifications qui limitent en fin de compte SOA. Au lieu de cela, les microservices se concentrent sur le maintien de l’intelligence au sein de chaque ensemble de points de terminaison et sur la mise en place d’une structure simple pour les connecter. Le meilleur moyen d’y parvenir est souvent d’implémenter une passerelle API unique qui héberge l’architecture interne du système et achemine les requêtes à l’aide de protocoles Web légers, tels que REST, vers chaque microservice indépendant. De plus, 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 quelque chose que SOA, alourdi par les spécifications des services Web et s'appuyant sur ESB pour connecter les applications, ne peut jamais accomplir.

Bien que de nombreuses personnes considèrent les microservices comme une architecture SOA enfin réalisée correctement, il existe en réalité un certain nombre de différences essentielles qui distinguent les deux et qui, à de nombreux égards, font des microservices le choix d’architecture le plus efficace pour les applications complexes. Pour plus d'informations sur SOA et les microservices, téléchargez l'ebook gratuit, Building Microservices : Conception de systèmes à granularité fine .

Comment NGINX peut-il vous aider ?

NGINX Plus et NGINX sont les meilleures solutions d’équilibrage de charge utilisées par les 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 rapidement, de manière fiable et sécurisée.

En tant que contrôleur de distribution d'applications (ADC) basé sur un logiciel, NGINX Plus est conçu pour faciliter les architectures de 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 distribution 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 à votre pile en tant que passerelle API et en tant que point de terminaison pour chaque service
  • NGINX Plus agit comme un serveur HTTP hautes performances pour réaliser des actions de microservices avec une vitesse et une efficacité maximales