xebicon'16 : architecture microservices avec azure par michel hubert, cto de cellenza et...

35
@xebiconfr #xebiconfr Architecture MicroServices avec Azure Michel HUBERT Matthieu Klotz

Upload: xebia-france

Post on 09-Jan-2017

102 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de Cellenza et Matthieu Klotz, Ingénieur d'études - Architecte chez Cellenza

@xebiconfr #xebiconfr

Architecture MicroServices avec

Azure Michel HUBERT Matthieu Klotz

Page 2: XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de Cellenza et Matthieu Klotz, Ingénieur d'études - Architecte chez Cellenza

@xebiconfr #xebiconfr

Speakers

Michel Hubert

http://www.cellenza.com @michelhubert

[email protected]

Matthieu Klotz

http://www.cellenza.com @matthieuklotz

[email protected]

Page 3: XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de Cellenza et Matthieu Klotz, Ingénieur d'études - Architecte chez Cellenza

@xebiconfr #xebiconfr

Cellenza

1

Page 4: XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de Cellenza et Matthieu Klotz, Ingénieur d'études - Architecte chez Cellenza

@xebiconfr #xebiconfr

Cellenza ?

“Nous croyons qu’il est possible de réaliser du développement logiciel de haute qualité”

WHY ?

Technologie Méthodologie Gouvernance

Conduite du changement

Développement Patterns d’architecture Best Practices (TDD,

BDD, …) Craftmanship

Méthodes agiles (SCRUM, SafE)

ALM Intégration Continue

Mesure d’impact

Processus, Organisation, DevOps

Communication, Formation, Coaching

1

Page 5: XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de Cellenza et Matthieu Klotz, Ingénieur d'études - Architecte chez Cellenza

@xebiconfr #xebiconfr

Des experts reconnus

10 Azure C# ALM SQL Server Windows Client

1 4

Des publications : •  Livres blancs (Cell’Insights)

•  http://www.cellenza.com/cellinsights •  Articles dans Programmez! •  Blog Cellenza

•  http://blog.cellenza.com •  Organisation de TechEvent •  Speakers lors de conférences Microsoft

•  TechDays, Azure Camp, …

1

Page 6: XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de Cellenza et Matthieu Klotz, Ingénieur d'études - Architecte chez Cellenza

@xebiconfr #xebiconfr

Introduction

2

Page 7: XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de Cellenza et Matthieu Klotz, Ingénieur d'études - Architecte chez Cellenza

@xebiconfr #xebiconfr

Applications monolithiques 2

Toutes les fonctionnalités dans un seul process….

Le scalling se fait en répliquant l’application complète sur plusieurs serveurs.

Page 8: XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de Cellenza et Matthieu Klotz, Ingénieur d'études - Architecte chez Cellenza

@xebiconfr #xebiconfr

Applications monolithiques

Toutes les fonctionnalités dans un seul process….

Chaque fonctionnalité de l’application se traduit par un service

Les services sont répliqués sur différents serveurs En fonction des besoins.

2

Page 9: XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de Cellenza et Matthieu Klotz, Ingénieur d'études - Architecte chez Cellenza

@xebiconfr #xebiconfr

Le Projet

3

Page 10: XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de Cellenza et Matthieu Klotz, Ingénieur d'études - Architecte chez Cellenza

@xebiconfr #xebiconfr

Device

Dashboard

Hub

Store

User

3 Architecture

Page 11: XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de Cellenza et Matthieu Klotz, Ingénieur d'études - Architecte chez Cellenza

@xebiconfr #xebiconfr

Hosting

Device IoT Hub

Virtual Network

Store

Load-Balancer

Dashboard Load-Balancer

User 3

Page 12: XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de Cellenza et Matthieu Klotz, Ingénieur d'études - Architecte chez Cellenza

@xebiconfr #xebiconfr

Docker dans Azure

4

Page 13: XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de Cellenza et Matthieu Klotz, Ingénieur d'études - Architecte chez Cellenza

@xebiconfr #xebiconfr

Docker Datacenter

Qu’est-ce qu’un container ? Dependencies: Every application has it’s own dependencies which includes both software (services, libraries) and hardware (CPU, memory, storage)

Virtualization: Container engine is a light weight virtualization mechanism which isolates these dependencies per each application by packaging them into virtual containers

Shared host OS Processes in containers are isolated from other containers in user space, but share the kernel with the host and other containers

Differences in underlying OS and infrastructure are abstracted away, streamlining “deploy anywhere” approach

Containers can be created almost instantly, enabling rapid scale-up and scale-down in response to changes in demand

4

Page 14: XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de Cellenza et Matthieu Klotz, Ingénieur d'études - Architecte chez Cellenza

@xebiconfr #xebiconfr

Docker Integration 4

Page 15: XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de Cellenza et Matthieu Klotz, Ingénieur d'études - Architecte chez Cellenza

@xebiconfr #xebiconfr

DevOps 4

Page 16: XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de Cellenza et Matthieu Klotz, Ingénieur d'études - Architecte chez Cellenza

@xebiconfr #xebiconfr

Docker Datacenter 4

Page 17: XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de Cellenza et Matthieu Klotz, Ingénieur d'études - Architecte chez Cellenza

@xebiconfr #xebiconfr

Démo Docker Datacenter Azure

Page 18: XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de Cellenza et Matthieu Klotz, Ingénieur d'études - Architecte chez Cellenza

@xebiconfr #xebiconfr

Docker Datacenter

Avantages

• Mutualisation des ressources • Tool chain connue et documentée • Plateforme complète

Inconvénients

• Gestion des machines virtuelles (mise à jour, etc.) • Gestion du réseau virtuel (politiques de sécurité, load-balancing, etc.) • Gestion des ressources : ajout / suppression de machines manuel • Coût : licence (150€ par VM) + nombre de machines (minimum 6)

4

Page 19: XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de Cellenza et Matthieu Klotz, Ingénieur d'études - Architecte chez Cellenza

@xebiconfr #xebiconfr

Azure Container Service

5

Page 20: XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de Cellenza et Matthieu Klotz, Ingénieur d'études - Architecte chez Cellenza

@xebiconfr #xebiconfr

Azure Container Service

Objectif : ne plus s’occuper de la quantité de resources virtuelles •  Usage de Virtual Machine Scaleset Container Service est une offre de cluster Docker, basée sur Swarm 1.11 Ajout / Suppression de VMs en fonction de la charge CPU, mémoire, etc. Premier pas vers le PaaS : suppression de MongoDB, passage à DocumentDB •  Drivers Compatible •  Plus de gestion des volumes

5

Containers

Container Tooling Service Tooling

Page 21: XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de Cellenza et Matthieu Klotz, Ingénieur d'études - Architecte chez Cellenza

@xebiconfr #xebiconfr

Notre projet

Device IoT Hub

Virtual Network

Containers Load-Balancer

User

Azure Document DB

Swarm Managers

Load-Balancer

Ops

5

Page 22: XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de Cellenza et Matthieu Klotz, Ingénieur d'études - Architecte chez Cellenza

@xebiconfr #xebiconfr

Démo Azure Container Service

Page 23: XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de Cellenza et Matthieu Klotz, Ingénieur d'études - Architecte chez Cellenza

@xebiconfr #xebiconfr

Azure Container Service

Avantages

•  Mutualisation des ressources •  Même tooling que Docker Datacenter •  Gestion automatique de la quantité de resources virtuelles •  Gain financier face à Docker Datacenter (plus de licence), moins de machines

Inconvénients

•  Gestion des machines virtuelles (mise à jour, etc.) •  Monitoring : intégration de solutions tiers telles que OMS •  Pas de Swarm Mode (Swarm 1.12) •  Nombre de machines virtuelles : minimum 5

5

Page 24: XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de Cellenza et Matthieu Klotz, Ingénieur d'études - Architecte chez Cellenza

@xebiconfr #xebiconfr

Service Fabric

6

Page 25: XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de Cellenza et Matthieu Klotz, Ingénieur d'études - Architecte chez Cellenza

@xebiconfr #xebiconfr

Service Fabric

Objectif : ne plus s’occuper du Framework Service Fabric est une plateforme pour : •  Créer et déployer des micro-services stateless ou statefull •  Hébergement d’applicatif externes (ex : redis) •  Gérer ses containers docker (windows ou linux) Service Fabric est la base de nombreux composants Azure : DocumentDB, Azure SQL Database, Event Hub, Cortana, etc.

6

Page 26: XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de Cellenza et Matthieu Klotz, Ingénieur d'études - Architecte chez Cellenza

@xebiconfr #xebiconfr

Service Fabric

Microservices

Service Fabric High Availability

Hyper-Scale

Hybrid Operations

High Density Rolling Upgrades Stateful services

Low Latency Fast startup & shutdown

Container Orchestration & lifecycle management

Replication & Failover

Simple programming

models Resource balancing

Self-healing Data Partitioning

Automated Rollback

Health Monitoring

Placement Constraints

Azure Private cloud Other clouds

6

Page 27: XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de Cellenza et Matthieu Klotz, Ingénieur d'études - Architecte chez Cellenza

@xebiconfr #xebiconfr

Démo Service Fabric

Page 28: XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de Cellenza et Matthieu Klotz, Ingénieur d'études - Architecte chez Cellenza

@xebiconfr #xebiconfr

Service Fabric

Avantages

• Mutualisation des ressources • Mise à jour automatique du framework • Monitoring inclus • Linux & Windows • Modèle Acteur natif • Service Stateless & Statefull

Inconvénients

• Apprentissage de la plateforme • Mise à jour de l’Operating System à gérer • Nombre de machines virtuelles : minimum 5

6

Page 29: XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de Cellenza et Matthieu Klotz, Ingénieur d'études - Architecte chez Cellenza

@xebiconfr #xebiconfr

AppService

7

Page 30: XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de Cellenza et Matthieu Klotz, Ingénieur d'études - Architecte chez Cellenza

@xebiconfr #xebiconfr

Azure AppService

Objectif : full PaaS. Plus de gestion de VMs App Service est une plateforme d’hébergement : •  Différents languages : C#, Java, Php, Node.js, Python •  Auto-scaling & Load-Balancing automatique •  Auto-Patching •  Intégration continue avec les outils habituels : Git, TFS, etc. Azure Function est une solution de traitement de données •  Server-Less •  Intégré à App Service

7

Page 31: XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de Cellenza et Matthieu Klotz, Ingénieur d'études - Architecte chez Cellenza

@xebiconfr #xebiconfr

Azure AppService

App Service

Device IoT Hub Azure Function Azure Document DB

User

Azure Web App

Azure API App

7

Page 32: XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de Cellenza et Matthieu Klotz, Ingénieur d'études - Architecte chez Cellenza

@xebiconfr #xebiconfr

Démo Azure AppService

Page 33: XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de Cellenza et Matthieu Klotz, Ingénieur d'études - Architecte chez Cellenza

@xebiconfr #xebiconfr

Azure App Service

Avantages

• Mutualisation des ressources •  Intégration aux gestionnaires de sources • Monitoring (via Application Insights) • Haute Scalabilité • Plus de IaaS

Inconvénients

• Support limité en nombre de langages

7

Page 34: XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de Cellenza et Matthieu Klotz, Ingénieur d'études - Architecte chez Cellenza

@xebiconfr #xebiconfr

Conclusion

Page 35: XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de Cellenza et Matthieu Klotz, Ingénieur d'études - Architecte chez Cellenza

@xebiconfr #xebiconfr

Questions ?