Développement durable de logiciels
Évolutivité, résilience, rentabilité, faible latence... les exigences des logiciels modernes sont nombreuses et, associées à l'utilisation d'infrastructures en nuage, elles posent de nouveaux défis. Une bonne architecture logicielle crée la base nécessaire pour répondre à ces exigences.
L'architecture de microservices permet de faire évoluer les services dorsaux indépendamment les uns des autres, en fonction des besoins, et d'assurer la rentabilité du logiciel en cas de fluctuation de la demande. De plus, les services peuvent être déployés indépendamment les uns des autres, ce qui permet des versions plus fréquentes et plus rapides. De plus, les équipes peuvent développer indépendamment des parties différentes de l'application.
Une architecture logicielle distribuée doit toutefois relever plusieurs défis :
- Intégrité des données
- Authentification, autorisation et gestion des sessions
- Enregistrement d'événements ou d'erreurs
- Communication et échange avec d'autres systèmes et services
Au cours de ma carrière de développeur, je me suis intéressé à ces sujets. Une attention particulière a été accordée, entre autres, à l'implémentation de processus métier via des systèmes de bus de services d'entreprise qui permettent la communication entre plusieurs systèmes. Grâce à l'architecture pilotée par les événements, il est ainsi possible d'implémenter des processus qui réagissent de manière flexible à la mise à l'échelle actuelle et aux pannes des systèmes et qui peuvent être relancés une fois les erreurs corrigées.
Le suivi et la journalisation des événements donnent un aperçu de ce qui est utilisé dans le logiciel et des problèmes rencontrés. Ici, j'ai surtout utilisé Application Insights ces dernières années, qui s'intègre facilement dans .NET.
L'autorisation sécurisée est aujourd'hui un élément de base de nombreuses applications. Dans le domaine du web, on mise surtout sur le protocole OAuth. Jusqu'à présent, j'ai surtout travaillé avec la solution Microsoft "Azure AD B2C". Il s'agit d'une solution de gestion de l'accès à l'identité du client, qui décharge les applications développées de l'authentification des utilisateurs finaux. En plus de son propre magasin d'utilisateurs, il est possible de se connecter à des systèmes tiers, tels que Google, Microsoft ou Facebook, afin de simplifier au maximum l'enregistrement et la connexion des utilisateurs.
Vous avez besoin d'aide pour la mise en œuvre d'architectures logicielles distribuées ? Alors contactez-moi dès aujourd'hui !