- Modèles de données d’échange - APIs: format d’entrée et de sortie et traitements associés - Événements : émetteurs, récepteurs et traitements associés Objectifs - Partager l’organisation des des services
d’API tierce, on attend une réponse - Asynchrone : un envoi de message, on notifie sans attendre de réponse Solutions - Synchrone : Symfony HttpClient - Asynchrone : Symfony Messenger
pour partager les ApiModel / Message / Clients. - Attention à bien garder la rétro-compatibilité : les services ne seront pas mises à jour en même temps (+ semantic versioning)
échanges issus d’une requête en particulier. - Implicite dans tous les traitements, pour garder le code le plus simple possible. - API → Message → Message → API - Un outil d’analyse des journaux/métriques permettant la corrélation.
de connaissance, que ça soit en architecture, en expertise, en système et en services. Un tel travail de migration demande un effort colossal et présente beaucoup de risques. Se faire accompagner par des experts permet de se rassurer sur la stratégie de migration et les outils retenus, la méthode et la démarche choisies. Risques : hausse du coût de production, remise en question perpétuelle
services, et il arrive que deux composants comportent chacun une moitié de fonctionnalité. Partant de là, il y a 2 possibilités : - Déployer l’un, puis l’autre avant d’activer la fonctionnalité - Coordonner le déploiement des 2 applications (avec arrêt de service) Il est fortement recommandé d’utiliser la première possibilité, en prévoyant dès la conception le déploiement. Risques : erreurs et anomalies en production
une transaction. Par exemple : un paiement CB. On ne souhaite pas débiter si le stock ne peut pas être réservé, et inversement. - Dans un tel cas, il n’est pas possible de faire autrement qu’un de ces deux parti-pris : 1. Débit puis réservation : le risque est de débiter sans réserver 2. Réservation puis débit : le risque est de réserver sans débiter Pas de solution idéale.
et la distribution en services également, sous certaines conditions. Cette dégradation de performance technique doit être assumée et maîtrisée pour minimiser voir réduire à zéro l’impact de la migration sur le service. Risques : dégrader la performance des systèmes et du métier
migration, que certaines personnes sortent un argument de taille : “Pourquoi on ne ferait pas une seule application pour XXX ?” Leur argument est de taille : ça serait plus simple. Risques : doute, incertitude, remise en question, sabotage Solution : redonner le sens et les raisons d’un tel choix
et personne ne sait, au départ, comment elle va se passer exactement. L’agilité (au sens du manifeste) apportera à l’organisation : - De la flexibilité dans la démarche pour supporter les changements, les remises en question - De la communication pour avoir de la part des équipes de réalisation le feedback nécessaire à la bonne prise de décision L’écoute et la prise en compte de chacun est indispensable.
nécessaires à la réussite du projet - Assister les équipes dans la transformation - Éclairer les équipes dans les prises de décision - Alerter sur les opportunités techniques et fonctionnelles - Challenger les équipes de gouvernance - Co-construire le pilotage opérationnel du projet - Veiller à l’identification et à la maîtrise des risques
consignes d’architecture - Encourager les équipes à définir les solutions - Faire émerger le cadre des pratiques du projet - Documentation - Tests - Intégration - Performance - Sécurité
architecture fonctionnelle, puis technique 3. Maintenez une cartographie de vos services et des vos échanges 4. Autorisez-vous à vous tromper, car vous allez vous tromper 5. Maîtrisez votre chaîne de production 6. Entourez-vous de personnes expérimentés 7. Assurez-vous que tout le monde comprenne et accepte la migration
- On peut remettre en question un périmètre sans impacter les autres - Chaque service est indépendant des autres - L’architecture orientée services apporte de la simplicité - L’architecture fonctionnelle donne le sens et les applications ont un périmètre délimité - Elle permet d’éviter le symptôme de l’application monolithe, complexe et critique - L’architecture orientée services nécessite de l’organisation - La migration progressive d’une application monolithique implique souvent toute l’entreprise, car tous les métiers sont généralement concernés. - L’architecture orientée services a un coût et des risques - Cela nécessite un pilotage performant et de qualité - Un accompagnement permet de s’assurer de la réussite d’une telle transformation
et pour l’organisation de l’événement. Vous, pour votre participation aujourd’hui. Contenu de la présentation - Icônes de Freepik de Flaticon - Code rendu avec carbon.now.sh