Architecture Microservices dans Azure
Octobre 2018
thomasrannou.azurewebsites.net/
2
Concepts et problématiques
Les architectures de services SOA / WOA
Pourquoi SOA
– Les webservices avec SOAP et WSDL
Pourquoi WOA
– Roy Fielding et REST
Avantages et inconvénients des deux approches
OAB - Architecture Microservices dans Azure 3 04/10/2018
Les architectures de services Microservices
Composant logiciel pour un besoin fonctionnel précis, définis et délimité.
Composant autonome au niveau du déploiement et de l’exécution.
Environnements hautement distribué
04/10/2018 OAB - Architecture Microservices dans Azure 4
Les architectures de services Microservices : avantages Un microservice : unité de service fonctionnelle qui se développe, se déploie, s’exécute et gère ses données indépendamment des autres services du système
Code base indépendant et restreint
Développement et déploiement indépendant
Scalabilité automatique
Tolérance au panne
Mise à jour facilité
Indépendances et agilité technologiques
Séparation des responsabilités
OAB - Architecture Microservices dans Azure 5 04/10/2018
Les architectures de services Microservices : inconvénients Un microservice : unité de service fonctionnelle qui se développe, se déploie, s’exécute et gère ses données indépendamment des autres services du système
Augmentation de la complexité du SI
Intégration et déploiements nombreux
Tests plus difficiles
Hausse nombre d’éléments à développer, surveiller, livrer
Augmentation du traffic réseau et latence HTTP
Hétérogénéité des technologies utilisées
OAB - Architecture Microservices dans Azure 6 04/10/2018
Les architectures de services Microservices : Pourquoi ?
OAB - Architecture Microservices dans Azure 7
Une application :
04/10/2018
Les architectures de services Microservices : Pourquoi ?
OAB - Architecture Microservices dans Azure 8
Une application et des services :
04/10/2018
Les architectures de services Microservices : Pourquoi ?
OAB - Architecture Microservices dans Azure 9
Une application et des services dupliqués :
04/10/2018
Les architectures de services Microservices : Pourquoi ?
OAB - Architecture Microservices dans Azure 10
Un problème :
04/10/2018
Les architectures de services Microservices : un peu de recul …
Une SOA qui évolue :
– Avantages de l’approche services
– DevOps
– Cloud
Microservices = buzzword ?
12factor.net
Bien mesurer avantages et inconvénients
Peut-on se le permettre ?
OAB - Architecture Microservices dans Azure 11 04/10/2018
12
Mise en oeuvre
Problématiques Un microservice : unité de service fonctionnelle qui se développe, se déploie, s’exécute et gère ses données indépendamment des autres services du système
Quel périmètre pour un microservice ?
Comment appeler un microservice ?
Comment communiquent-ils entre eux ?
Gestion des données
Gestion des logs et monitoring
Tolérance aux pannes
Gestion des transactions
Application Lifecycle Management
OAB - Architecture Microservices dans Azure 13 04/10/2018
14
Azure
Azure Offres
OAB - Architecture Microservices dans Azure 15 04/10/2018
Azure Microservices
Azure Container Services – Docker – Orchestrateur de services
Azure Service Fabric – PAAS Microsoft – Orchestrateur de services
Haute disponibilité
Scalabilité à grande échelle
Gestion des mises à jour
Monitoring
Démarrage et un arrêt rapide des services
Gestion du load balancing des services
OAB - Architecture Microservices dans Azure 16 04/10/2018
Azure Service Fabric Quel périmètre pour un microservice ?
Séparer la complexité fonctionnelle et technique
Eviter le couplage entre services.
Trouver un équilibre entre macroservices et nanoservices
Domain Driven Design
OAB - Architecture Microservices dans Azure 17 04/10/2018
Azure Service Fabric Comment appeler un microservice ?
Appel client – service en direct
OAB - Architecture Microservices dans Azure 18 04/10/2018
Azure Service Fabric Comment appeler un microservice ?
Ou via Azure API Management
OAB - Architecture Microservices dans Azure 19 04/10/2018
Azure Service Fabric Communication entre microservices
Appel synchrone
Reverse Proxy Circuit Breaker
OAB - Architecture Microservices dans Azure 20 04/10/2018
Azure Service Fabric Communication entre microservices
Appel asynchrone avec Azure Service Bus
OAB - Architecture Microservices dans Azure 21 04/10/2018
Azure Service Fabric Gestion des données
SQL Server NoSQL : mongoDB MySql
Nos options sont :
Un service : un jeu de tables.
Un service : un schéma de la base.
Un service : une base de données.
CQRS
Event Sourcing
OAB - Architecture Microservices dans Azure 22 04/10/2018
Azure Service Fabric Tolérance aux pannes
Windows Application Diagnostics
Application Insights
OAB - Architecture Microservices dans Azure 23
Scalabilité automatique : règles de charge
Load balancer
Redémarrage des services automatique
Outils de monitoring et de diagnostics pour analyser les problèmes
04/10/2018
Azure Service Fabric Gestion des transactions
Problématique logicielle
OAB - Architecture Microservices dans Azure 24 04/10/2018
Azure Service Fabric Récapitulons
Une offre PAAS Azure.
Scalabilité.
Découvrabilité via le Reverse Proxy.
API Management.
Monitoring avec Application Insights.
Communication avec Azure Service Bus pour les appels asynchrone.
Framework de développement .Net + templates
Solution CI/CD compatible avec VSTS
OAB - Architecture Microservices dans Azure 25 04/10/2018
04/10/2018
Azure Service Fabric Récapitulons
OAB - Architecture Microservices dans Azure 27 04/10/2018
Azure Service Fabric Récapitulons
OAB - Architecture Microservices dans Azure 28 04/10/2018
29
Développons !
Azure Service Fabric Création du cluster dans Azure
OAB - Architecture Microservices dans Azure 30 04/10/2018
Azure Service Fabric Création du cluster dans Azure
OAB - Architecture Microservices dans Azure 31
Gestion certificat :
04/10/2018
Azure Service Fabric Création du cluster dans Azure
OAB - Architecture Microservices dans Azure 32
Service Explorer :
Template ARM :
04/10/2018
Azure Service Fabric Création du cluster dans Azure
OAB - Architecture Microservices dans Azure 33
Règles d’ouverture de port :
Ajout d’Insights :
04/10/2018
Azure Service Fabric Création du cluster dans Azure
OAB - Architecture Microservices dans Azure 34
Ajout de règles de montée en charge :
04/10/2018
Azure Service Fabric Création du projet dans Visual Studio
OAB - Architecture Microservices dans Azure 35 04/10/2018
Azure Service Fabric Création du projet dans Visual Studio
OAB - Architecture Microservices dans Azure 36 04/10/2018
Azure Service Fabric Création du projet dans Visual Studio
OAB - Architecture Microservices dans Azure 37 04/10/2018
Azure Service Fabric Création du projet dans Visual Studio
OAB - Architecture Microservices dans Azure 38 04/10/2018
Azure Service Fabric Test en local
OAB - Architecture Microservices dans Azure 39 04/10/2018
Azure Service Fabric Déploiement
OAB - Architecture Microservices dans Azure 40
https://try.servicefabric.azure.com/
04/10/2018
Azure Service Fabric Création du projet dans Visual Studio
OAB - Architecture Microservices dans Azure 41
Si un autre service de mon cluster doit réaliser le même appel, l’url sera la suivante : http://localhost:19081/OrangeTechsMicroservices/Clients/1
04/10/2018
Azure Service Fabric Les microservices
OAB - Architecture Microservices dans Azure 42 04/10/2018
Azure Service Fabric ALM
OAB - Architecture Microservices dans Azure 43
VSTS => Azure DevOps TFS => Azure DevOps Server
04/10/2018
≠ Azure DevOps Project
Azure Service Fabric ALM avec VSTS
OAB - Architecture Microservices dans Azure 44 04/10/2018
Multi langage multi plateforme
Azure DevOps Agilité
45 04/10/2018
Azure DevOps Overview
OAB - Architecture Microservices dans Azure 46 04/10/2018
Azure DevOps Builds
26/04/2018 OAB - Architecture Microservices dans Azure 47
04/10/2018
Azure DevOps Déploiements
OAB - Architecture Microservices dans Azure 48 04/10/2018
Azure DevOps Infra As Code
OAB - Architecture Microservices dans Azure 49 04/10/2018
https://github.com/Azure/azure-quickstart-templates
Azure DevOps Infra As Code
OAB - Architecture Microservices dans Azure 50 04/10/2018
Azure DevOps Infra As Code
OAB - Architecture Microservices dans Azure 51 04/10/2018
Azure Service Fabric : Pricing
OAB - Architecture Microservices dans Azure 52
Puissance nœuds du cluster
Nombre d’instances
Consommation CPU / RAM
azure.microsoft.com/fr-fr/pricing/calculator/
try.servicefabric.azure.com
04/10/2018
merci