Architecture des microservices - cours 46 900 roubles. du Centre de Formation IBS, formation 24 heures, Date 27 novembre 2023.
Miscellanea / / November 27, 2023
L’architecture des microservices (MSA) est devenue relativement récemment l’approche architecturale la plus populaire. Son utilisation apporte de nombreux avantages à différentes étapes du cycle de vie du produit. En particulier, MCA permet des temps de réponse plus rapides aux exigences commerciales, ce qui le rend souvent supérieur aux autres styles architecturaux.
Cependant, dans le processus de développement de systèmes MCA, l'architecte est confronté à de nombreux défis, dont beaucoup font reculer les débutants.
Les erreurs de décomposition peuvent entraîner une augmentation considérable de la complexité du développement. Les performances souffrent en raison d’une latence insurmontable du réseau. Le stockage de données distribué ne permet pas la cohérence transactionnelle. Un grand nombre de composants interagissant sur le réseau réduit la fiabilité. Difficile d'assurer la sécurité. De plus, les tests et la maintenance d'un système distribué nécessitent une discussion distincte.
Ce cours montrera les avantages et les inconvénients de l'utilisation de MCA. Vous aidera à prendre une décision éclairée sur l’applicabilité de l’ISA en fonction des besoins de l’entreprise et des capacités de l’équipe. Le cours examine les principaux enjeux associés à la mise en œuvre d'une architecture de microservices. Stratégies, mécanismes, modèles qui résolvent les problèmes énoncés ci-dessus. Pour chaque problème abordé, les outils les plus courants seront présentés (tels que Kubernetes, Istio, Histryx, Kibana et bien d'autres).
Des exercices pratiques vous permettront d'acquérir les compétences de conception indépendante de systèmes MCA.
Sujets couverts:
1. Styles architecturaux (2 heures)
Notions de monolithe, SOA, MSA.
Comparaison et justification du choix.
2. Modèles de décomposition MSA (2 heures)
Taille optimale du microservice ;
Répartition des services par opportunité commerciale ;
Répartition des services par domaines problématiques ;
Pratiques pour définir les domaines thématiques ;
Décomposition selon les aspects techniques et organisationnels.
3. Organisation du développement pour MSA (1 heure)
Organisation des équipes sous MSA ;
Organisation d'un référentiel de code sous MSA.
4. Intégration de microservices (3 heures)
Modèles d'interaction ;
Mécanismes d'interaction synchrones et asynchrones ;
Orchestration et chorégraphie;
Protocoles et technologies de base (REST, gRPC, GraphQL, Kafka, RabbitMQ, etc.) ;
Interaction avec les systèmes externes (API Gateway, BFF);
Systèmes réactifs ;
Architectures basées sur les événements ;
Séparation du commandement et de la demande.
5. Organisation du travail avec des données en MSA (3 heures)
Modèles de travail avec les données ;
Générer des événements ;
Données de référence dans MSA ;
Source unique de vérité (Source of Truth) dans MSA.
6. Modèles ISA de base (9 heures)
Modifiable.
Résoudre le problème de la haute connectivité. Versioning des interfaces et des événements. Types de contrats. Modifications du modèle d'événement. Modèles d'organisation des demandes. Châssis de microservices. Maillage de services.
Évolutivité.
Modèles pour construire des équilibreurs. Services de détection et modèles pour travailler avec eux.
Performance.
Modèles de performances dans MSA (surpuissance, dégradation gracieuse, etc.).
Cohérence.
Problèmes de cohérence dans MSA. Théorème du CAP. Solutions aux problèmes de cohérence. Engagements en deux phases. Modèle SAGA. Niveau de consistance réduit.
Fiabilité.
Mécanismes de tolérance aux pannes. Modèles de disjoncteurs, limitation, délais d'attente dépendants, etc.
Sécurité.
Mécanismes de sécurité dans MSA. Authentification. Autorisation. Protection périmétrique. Protection des canaux de communication. Protocoles et modèles de base (OAUTH2, JWT, gatekeeper, valet key, etc.).
Testabilité.
Tests pyramidaux et carrés. Fonctionnalités de test des microservices.
Tests unitaires. Tests d'intégration. Tests de composants. Tests E2E. Modèles de test MSA.
Facilité d'entretien.
Observabilité. Modèles de surveillance (traçage distribué, agrégation de journaux). Surveillance et journalisation. Configuration des microservices. Externalisation de la configuration. Prise en charge du système.
7. Déploiement de microservices (2 heures)
Modèle « pipeline de déploiement » ;
Modèles de déploiement ;
Utiliser les technologies Docker et Kubernetes ;
Utilisation de la grille ISTIO ;
Déploiement sans serveur ;
Stratégies de déploiement (bleu-vert, canari, etc.).
8. Stratégies de migration du monolithe vers MSA (2 heures)
Stratégies de migration du monolithe vers les microservices ;
Monolithe étrangleur ;
Modèles d'étranglement ;
Communication entre un microservice et un monolithe ;
Migration de base de données.