3.13 Infos-cloud

3.13.1 - spring-boot-admin et service-admin

L’ensemble des applicatifs du socle sont prévus pour fonctionner dans le cloud et être scalables horizontalement (possibilité de démarrer plusieurs instances d’un même service et répartir la charge sur l’ensemble). Pour permettre le monitoring des instances démarrées,

  • existe l’application service-admin basée sur le projet SpringBootAdmin (https://codecentric.github.io/spring-boot-admin/current/)
  • tout applicatif du socle se recense auprès de l’application service-admin et expose, de manière sécurisée, ses APIs de monitoring et gestion (cf. Spring Actuator) Les services du socle ne se déclare pas dans service-admin car ils peuvent, potentiellement, être remplacés par des services d’un fournisseur de cloud.

3.13.2 - spring-cloud-starter-gateway et service-gateway

L’ensemble des APIs des micro-services du socle peuvent être exposés à l’extérieur du SI via la Gateway. Ce service a pour objectif de fournir un point d’entrée unique à tous les appels venant de l’extérieur.

Ce service fournit en plus :

  • une limitation du nombre de requêtes par secondes (cf. documentation)
  • une limitation de la taille maximale d’une requête (cf. documentation)

3.13.3 - spring-cloud-config-server et service-config

Cet applicatif contient et expose aux micro-services toutes les configurations. Ainsi, la configuration est centralisée pour n’être exposée que de manière sécurisée. Le framework spring-cloud-config-server fournit différents connecteurs pour aller chercher la configuration.

En local, sur le poste du développeur, la configuration est dans le système de fichier (répertoire src/main/resources du projet socle-communtest). Ainsi

  • les fichiers de configuration sont tous disponibles dans le classpath des tests automatisés ;
  • les fichiers de configuration ne sont pas présent dans les JAR des micro-services (car la dépendance à socle-communtest est en test ;
  • les fichiers de configuration sont accessibles à travers le système de fichier quand le service-config tente d’y accéder.

3.13.4 - spring-cloud-starter-netflix-eureka-server et service-registry

Le service de registre est assimilable un annuaire. Tous les micro-services du socle et tous les services (sauf MongoDB) s’enregistre et interroge le registre. Ainsi, quelque soit le nombre et la localisation des instances, tous savent appeler les autres.

Le message affiché sur le portail WEB du registre THE SELF PRESERVATION MODE IS TURNED OFF. THIS MAY NOT PROTECT INSTANCE EXPIRY IN CASE OF NETWORK/OTHER PROBLEMS. vient de la clef eureka.server.enable-self-preservation à false pour réduire le délai de déréférencement d’une instance arrêtée violemment (ce qui est toujours le cas sous Windows)


3.13.5 - service-nosql

Ce service ne se base pas sur une technologie de Spring Cloud mais uniquement sur du code et la librairie de.flapdoodle.embed.mongo.

/!\ la base MongoDB ne stocke, par défaut, que des documents jusqu’à 16Mo : https://docs.mongodb.com/manual/core/document/#document-size-limit. Si besoin de plus : https://docs.mongodb.com/manual/core/gridfs/