L’architecture orientée services (SOA) est une approche architecturale qui consiste à concevoir des applications autour d’un ensemble de services indépendants. Un service peut correspondre à toute fonctionnalité métier qui exécute une action et fournit un résultat précis, comme le traitement d’une commande client ou la création d’un rapport d’inventaire. Les services peuvent être combinés pour créer des applications composites offrant davantage de fonctionnalités aux utilisateurs finaux.

L’approche SOA facilite notamment la maintenance et la mise à jour des composants de service : chaque composant étant plus compact et mieux délimité, il est plus facile de corriger le code ou de remplacer certains éléments sans affecter tous les autres. Toutefois, des difficultés apparaissent lorsqu’il s’agit de déterminer la meilleure façon de permettre aux services de communiquer entre eux. La SOA est généralement associée à l’Enterprise Service Bus (ESB), qui constitue le principal moyen de communication entre les services. Les ESB s’adaptent souvent mal aux changements, tendent à accroître la complexité et rendent plus difficile la délimitation des services.

SOA vs microservices

Si vous trouvez que la SOA ressemble beaucoup à la définition actuelle des microservices، vous n’êtes pas le seul. Les microservices sont eux aussi de petits services autonomes conçus pour fonctionner indépendamment tout en collaborant. Il existe toutefois des différences majeures entre la SOA et les microservices. En voici quelques-unes à retenir :

  • Les microservices sont des services à granularité très fine, séparés selon 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. À l’inverse, la SOA sépare les services de manière logique. La différence ici réside dans le fait que les services regroupés de manière logique sont partagés entre plusieurs fonctions. Cela semble judicieux… jusqu’à ce que le service tombe en panne et que toutes les fonctions qui en dépendent soient affectées. Les architectures de microservices sont conçues pour éliminer cet impact en intégrant entièrement les services métier à leurs fonctions respectives, ainsi que tout ce qui est nécessaire à l’exécution de ces fonctions et à la création de valeur pour l’entreprise – même si cela implique de dupliquer certains éléments.
  • Les microservices, parce qu’ils sont entièrement cloisonnés par fonction, ne sont pas non plus liés aux mêmes cadres de communication, protocoles et spécifications qui finissent par limiter la SOA. Au contraire, les microservices visent à conserver l’intelligence au sein de chaque ensemble de points de terminaison et à disposer d’une infrastructure simple pour les relier. Pour ce faire, la meilleure solution consiste souvent à mettre en œuvre une passerelle API unique qui héberge l’architecture interne du système et achemine les requêtes vers chaque microservice indépendant à l’aide de protocoles Web légers, tels que REST. En outre, chaque microservice utilise souvent les API d’autres services, mais la passerelle empêche les applications mobiles d’accéder directement au back-end. Ce niveau de flexibilité est hors de portée de la SOA, qui est entravée par les spécifications des services Web et s’appuie sur un ESB pour connecter les applications.

Bien que beaucoup considèrent les microservices comme une mise en œuvre enfin réussie de la SOA, il existe en réalité plusieurs différences fondamentales entre les deux qui, à bien des égards, font des microservices un choix d’architecture plus efficace pour les applications complexes. Pour en savoir plus sur la SOA et les microservices, téléchargez gratuitement l’e-book Créer des microservices : concevoir des systèmes à granularité fine.

Comment NGINX peut-il vous aider ?

NGINX Plus et NGINX sont les meilleures solutions d’équilibrage de charge du marché, utilisées par des sites web à fort trafic tels que Dropbox, Netflix et Zynga. Plus de 350 millions de sites web dans le monde font confiance à 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 mise à disposition d’applications (ADC) logiciel, NGINX Plus est conçu pour faciliter les architectures de microservices de manière bien plus efficace et économique que les solutions matérielles offrant des fonctionnalités comparables.

  • NGINX Plus fournit une solution complète de distribution d’applications et d’équilibrage de charge qui améliore les performances et la fiabilité de chaque microservice
  • NGINX Plus est suffisamment flexible et évolutif pour s’intégrer à votre pile technologique en tant que passerelle API et point de terminaison de chaque service
  • NGINX Plus fait office de serveur HTTP hautes performances pour exécuter les actions des microservices avec une rapidité et une efficacité maximales