architecture microservices dans azure · 2018. 10. 12. · azure service fabric – paas microsoft...

53
Architecture Microservices dans Azure Octobre 2018 thomasrannou.azurewebsites.net/

Upload: others

Post on 07-Sep-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

Architecture Microservices dans Azure

Octobre 2018

thomasrannou.azurewebsites.net/

Page 2: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

2

Concepts et problématiques

Page 3: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

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

Page 4: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

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

Page 5: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

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

Page 6: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

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

Page 7: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

Les architectures de services Microservices : Pourquoi ?

OAB - Architecture Microservices dans Azure 7

Une application :

04/10/2018

Page 8: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

Les architectures de services Microservices : Pourquoi ?

OAB - Architecture Microservices dans Azure 8

Une application et des services :

04/10/2018

Page 9: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

Les architectures de services Microservices : Pourquoi ?

OAB - Architecture Microservices dans Azure 9

Une application et des services dupliqués :

04/10/2018

Page 10: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

Les architectures de services Microservices : Pourquoi ?

OAB - Architecture Microservices dans Azure 10

Un problème :

04/10/2018

Page 11: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

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

Page 12: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

12

Mise en oeuvre

Page 13: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

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

Page 14: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

14

Azure

Page 15: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

Azure Offres

OAB - Architecture Microservices dans Azure 15 04/10/2018

Page 16: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

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

Page 17: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

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

Page 18: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

Azure Service Fabric Comment appeler un microservice ?

Appel client – service en direct

OAB - Architecture Microservices dans Azure 18 04/10/2018

Page 19: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

Azure Service Fabric Comment appeler un microservice ?

Ou via Azure API Management

OAB - Architecture Microservices dans Azure 19 04/10/2018

Page 20: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

Azure Service Fabric Communication entre microservices

Appel synchrone

Reverse Proxy Circuit Breaker

OAB - Architecture Microservices dans Azure 20 04/10/2018

Page 21: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

Azure Service Fabric Communication entre microservices

Appel asynchrone avec Azure Service Bus

OAB - Architecture Microservices dans Azure 21 04/10/2018

Page 22: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

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

Page 23: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

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

Page 24: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

Azure Service Fabric Gestion des transactions

Problématique logicielle

OAB - Architecture Microservices dans Azure 24 04/10/2018

Page 25: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

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

Page 26: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

04/10/2018

Page 27: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

Azure Service Fabric Récapitulons

OAB - Architecture Microservices dans Azure 27 04/10/2018

Page 28: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

Azure Service Fabric Récapitulons

OAB - Architecture Microservices dans Azure 28 04/10/2018

Page 29: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

29

Développons !

Page 30: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

Azure Service Fabric Création du cluster dans Azure

OAB - Architecture Microservices dans Azure 30 04/10/2018

Page 31: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

Azure Service Fabric Création du cluster dans Azure

OAB - Architecture Microservices dans Azure 31

Gestion certificat :

04/10/2018

Page 32: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

Azure Service Fabric Création du cluster dans Azure

OAB - Architecture Microservices dans Azure 32

Service Explorer :

Template ARM :

04/10/2018

Page 33: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

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

Page 34: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

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

Page 35: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

Azure Service Fabric Création du projet dans Visual Studio

OAB - Architecture Microservices dans Azure 35 04/10/2018

Page 36: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

Azure Service Fabric Création du projet dans Visual Studio

OAB - Architecture Microservices dans Azure 36 04/10/2018

Page 37: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

Azure Service Fabric Création du projet dans Visual Studio

OAB - Architecture Microservices dans Azure 37 04/10/2018

Page 38: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

Azure Service Fabric Création du projet dans Visual Studio

OAB - Architecture Microservices dans Azure 38 04/10/2018

Page 39: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

Azure Service Fabric Test en local

OAB - Architecture Microservices dans Azure 39 04/10/2018

Page 40: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

Azure Service Fabric Déploiement

OAB - Architecture Microservices dans Azure 40

https://try.servicefabric.azure.com/

04/10/2018

Page 41: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

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

Page 42: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

Azure Service Fabric Les microservices

OAB - Architecture Microservices dans Azure 42 04/10/2018

Page 43: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

Azure Service Fabric ALM

OAB - Architecture Microservices dans Azure 43

VSTS => Azure DevOps TFS => Azure DevOps Server

04/10/2018

≠ Azure DevOps Project

Page 44: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

Azure Service Fabric ALM avec VSTS

OAB - Architecture Microservices dans Azure 44 04/10/2018

Multi langage multi plateforme

Page 45: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

Azure DevOps Agilité

45 04/10/2018

Page 46: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

Azure DevOps Overview

OAB - Architecture Microservices dans Azure 46 04/10/2018

Page 47: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

Azure DevOps Builds

26/04/2018 OAB - Architecture Microservices dans Azure 47

04/10/2018

Page 48: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

Azure DevOps Déploiements

OAB - Architecture Microservices dans Azure 48 04/10/2018

Page 49: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

Azure DevOps Infra As Code

OAB - Architecture Microservices dans Azure 49 04/10/2018

https://github.com/Azure/azure-quickstart-templates

Page 50: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

Azure DevOps Infra As Code

OAB - Architecture Microservices dans Azure 50 04/10/2018

Page 51: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

Azure DevOps Infra As Code

OAB - Architecture Microservices dans Azure 51 04/10/2018

Page 52: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

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

Page 53: Architecture Microservices dans Azure · 2018. 10. 12. · Azure Service Fabric – PAAS Microsoft – Orchestrateur de services Haute disponibilité Scalabilité à grande échelle

merci