ESUP-Portail Université de Rouen

Atelier Développement - 24 Avril 2017

MicroServices

  • Vincent Bonamy
  • Université de Rouen Normandie

Plan

  1. Microservices
    1. Quésaco ?
    2. Contexte d'usage
    3. Avantages
    4. ... et inconvénients
  2. ESUP et les microservices
  3. Conclusion

Quesaco ?

Définition

~ Architecture Web où l'implémentation d'un service est proposée par une application indépendante / autonome reliée à d'autres applications web par services web via des API REST.

  • Nom apparu il y a quelques années seulement
  • Très tendance depuis 2015, continue son ascension (cf Google Trends ou Job Trends d'Indeed)
  • Comme toujours avec les nouveaux noms IT très tendances (web 2.0, ajax, portail, agile, ...) , c'est pas vraiment nouveau ... à part le nom :-)
  • Reprend +/- le concept de linux/unix à la KISS (Keep it simple, stupid) ... sauf qu'on n'a toujours pas vraiment le pipe!

~ À mettre en concurrence avec une architecture dite monolithique ... ?

Quesaco ?

Analogie ...

L'installation TV ...

Quesaco ?

Analogie ...

... plus récemment

Contexte d'usage

microservices vs monolithique ?

les éternels débats ...

  • client léger (mainframe) vs PC
  • micronoyau vs noyau monolithique
  • cloud storage vs data center
  • microservices vs application monolithique ...

Contexte d'usage

microservices vs monolithique ?

Une appli par service ...

  • annuaire / identification
  • authentification
  • gestion des cours
  • gestion RH
  • gestion étudiante
  • emploi du temps
  • gestion de projets
  • gestion des mails
  • etc.

Microservices

Avantages

  • Applications plus petites
  • Applications indépendantes
  • Souplesse dans les branchements
  • Meilleure visibilité des fonctions
  • Tente à standardiser les services / connecteurs
  • Réutilsiation des services
  • ...

Microservices

Inconvénients

  • Applications à interconnecter
  • Problèmes techniques multiples :
    1. compatibilité des versions
    2. pb transactions inter applications
    3. tests d'intégration complexes
    4. branchements : qui branche, comment, quel branchement, ... ?
    5. résolutions de pannes / bugs : responsabilités ?
  • Duplication de codes, de paramétrages, de tests, ...
  • Code au total plus conséquent
  • Installation et maintenance plus complexe

ESUP et les microservices

c'est pas si nouveau ... :-)

  • CAS, LDAP, Shibboleth ... sql
    1. devenu omniprésent
    2. standardise le 'branchement' (protocole LDAP, protocole SAML)
  • ENT ESUP = présentation ... de micro-services (portlet)
  • -> des projets qui apportent des services spécifiques (micro) :
    1. Gestion du stockage
    2. Affichage de notes
    3. SMS
    4. Paiement en ligne
    5. etc.

... en fait souvent, on développe 'seulement' les branchements ou connexions ou glue entre les services, et pas vraiment le service en lui-même.

ESUP et les microservices

jusqu'au niveau technique ...

ESUP et les microservices

Attention danger

Attention à ne pas tomber dans les nanoservices, et dans le cadre d'un projet libre mutualisé, à ne pas déporter la complexité du branchement chez l'exploitant.

Conclusion

... conclusion

  • Pas de solution, d'architecture miracle
  • Le curseur est à positionner en toute connaissance de cause
  • On faisait du microservice ... sans en connaitre le nom
  • On peut démarrer en micro-service et revenir au monolithique ... et inversement

Nouveau cas d'usage

EsupNfcTag : de l'encodage de cartes à un SGC libre ?

  • On parle microservices, notamment pour EsupNfcTag car :
    1. Solution très technique et spécialisée
    2. Fait intervenir des périphériques multiples
    3. Requiert de la souplesse
    4. Listing des applications possibles encore à imaginer
  • Mais on doit aussi proposer quelque chose qui ressemble à du monolithique :
    1. Pour des raisons de maintenance
    2. Pour que ce soit installable et paramétrable "out of the box"

Cas d'un SGC

du microservice intrinsèquement un peu partout

Exemples ...

  • Architecture EsupNfcTag
    • EsupNfcTag Serveur : algos d'encodage Desfire AES/DES/...
    • EsupNfcTag Android / Arduino : NFC
    • Entre les 2 : API REST et APDU NFC/DESFIRE
  • Imprimantes ... :
    • Cas 1 (actuel) : encodage Izly + encodage COMUE + Impression en 1 seul passage
    • Cas préconisé : encodage Izly, encodage COMUE et Impression en 3 passages !
      1. Pas de SDK spécifique à l'imprimante
      2. Plus près des standards : html/css, nfc/pcsc/apdu, ...
      3. Plus souple
      4. Plus clair ...
      5. ... mais plus de manutentions, en tout cas sur le schéma ...