2013 : je regarde moins les boîtes, plus les liens

Mon changement important de 2013 est mon arrivée chez Nurun à Québec, en février, comme architecte logiciel senior. Après les appareils embarqués, je travaille sur des portails externes, de l’intégration .NET, des services d’agrégation et de l’authentification unique. Les frontières deviennent plus importantes que les boîtes.

Un portail reçoit une identité, agrège des données, appelle un SaaS puis affiche un état. Chacune de ces flèches peut ralentir, refuser, répondre deux fois ou changer de contrat. Le dessin utile décrit donc le message et la reprise, pas seulement le nom des systèmes.

Une requête de portail en sept étapes

Pour afficher un dossier client :

  1. le navigateur obtient un jeton du fournisseur d’identité;
  2. le portail vérifie signature, audience et expiration;
  3. il appelle le CRM avec un identifiant de corrélation;
  4. un service d’agrégation appelle commandes et facturation en parallèle;
  5. chaque appel possède timeout et cache adapté;
  6. le portail assemble les réponses avec leur fraîcheur;
  7. l’audit enregistre l’accès au dossier.

Si la facturation tombe, le portail peut afficher les commandes et marquer le solde indisponible. Cette dégradation est préférable à une page entièrement blanche, seulement si le métier accepte qu’aucune décision financière ne soit prise sur un solde absent.

Le SSO centralise l’entrée, donc sa panne affecte plusieurs services. Redondance, certificats, horloges et comptes d’urgence doivent être testés. Un jeton déjà émis reste valide jusqu’à son expiration; la durée équilibre continuité et vitesse de révocation.

Les données doivent garder leur autorité

L’agrégateur ne devient pas automatiquement la source de vérité. Chaque champ doit avoir un maître : adresse dans le CRM, facture dans l’ERP, préférence dans le portail. Les copies portent version et temps de lecture. Une mise à jour suit une commande vers le maître, puis un événement vers les lecteurs.

Les files rendent la panne absorbable, mais créent retards, doublons et messages morts. Je surveillerais l’âge du message le plus vieux, les reprises et les rejets. Une file de quarantaine sans écran ni propriétaire ne constitue pas une récupération.

Windows Azure et les VM rendent les scénarios hybrides plus accessibles. Le réseau entre les environnements introduit latence et dépendance au VPN. Une application bavarde peut devenir inutilisable même si chaque serveur est rapide. Mesurer le nombre d’allers-retours vient avant le changement de taille de machine.

Cartographier les budgets cumulés

Chaque frontière consomme une partie du délai utilisateur. Si le portail promet deux secondes, je peux allouer 200 ms à l’identité, 500 au CRM, 500 aux commandes, 300 à l’assemblage et garder une marge. Les appels en parallèle prennent le maximum plutôt que la somme, mais partagent connexions et CPU. Une dépendance qui dépasse son budget déclenche un repli ou une réponse partielle. Les traces distribuées comparent l’allocation au réel au 95e percentile. Cette méthode évite qu’une équipe respecte son propre objectif de trois secondes pendant que cinq services produisent ensemble une page de quinze secondes.

Pour mes architectures de 2014, je veux une fiche par frontière : schéma, propriétaire, identité, timeout, idempotence, signal de santé et procédure de réconciliation. C’est moins spectaculaire qu’un grand diagramme, mais c’est là que le système prouve qu’il peut fonctionner quand l’autre boîte ne répond pas comme prévu.