Service-Based vs Microservices

Service-based architecture is a hybrid of the microservices architecture style and is considered one of the most pragmatic architecture styles.

Après avoir compris comment chaque architecture se structure, l’essentiel est d’identifier les avantages et inconvénients puis de comparer les architectures entres-elles. L’architecture Service Based et Microservices sont deux architectures populaire qui sont facile à mettre en opposition.

Ainsi cette section est primoridiale pour pouvoir répondre au mieux aux besoins et comprendre les compromis à faire.

SB vs MS SB vs MS

Comparaison

Service BasedMicroservices
TailleServices gros grains, 3 à 12 servicesService “fin” grains, plusieurs centaines de services
CoutFaible, pas besoin de DevOps Docker, Kubernates optionnelElevé, besoin de DevOps
BDDUne seule ou plusieurs => cout faibleUne par microservice
Transaction en BDDFacile, partage d’une seule base de donnéesOn souhaite éviter au maximum les transaction inter-service. Il faudra utiliser des patterns comme SAGA
ElasticitéFaible, comme les services sont “larges” leur démarrage sera trop longElevé, démarrage rapide d’un service en cas de pic

Quand l’utiliser

L’architecture Service Based offre de nombreux avantages :

  • Son coût est très faible par rapport à une architecture microservices

    • Pas besoin de DevOps ni d’une insfrastructure CI/CD
    • Une seule base de donnée à gérer
  • La gestion est donc simplifié avec un déploiement unique tout en ayant une gestion par service

    • Si un service tombe (crash) alors les autres seront toujours opérationnels Alt text Alt text

Quand l’éviter

Néanmoins on n’utilisera par l’architecture Space Based (on préfèrera du microservices) dans les cas suivants :

  • Il nous faut une forte élasticité. Ayant des service de taille conséquente leur allumage sera trop long

  • Nous avons beaucoup de communication entre services. L’architecture Service Based est vraiment sympa lorsque nos services ne communique pas entre eux mais seulement avec la base de données où ils peuvent partager des informations (transaction facile). Alt text Alt text

  • Nous avons trop de services

    • Il faudra soit les regrouper dans des services de taille plus grosse
    • Il faudra envisager plusieurs base de données (pas forcément une par service)