xebicon architectures microservices azure v1.0

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

Upload: michel-hubert

Post on 13-Apr-2017

71 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Xebicon   architectures microservices azure v1.0

@xebiconfr #xebiconfr

Architecture MicroServices avec

AzureMichel HUBERT Matthieu Klotz

Page 2: Xebicon   architectures microservices azure v1.0

@xebiconfr #xebiconfr

Speakers

Michel Hubert

http://www.cellenza.com @michelhubert

[email protected]

Matthieu Klotz

http://www.cellenza.com @matthieuklotz

[email protected]

Page 3: Xebicon   architectures microservices azure v1.0

@xebiconfr #xebiconfr

Cellenza1

Page 4: Xebicon   architectures microservices azure v1.0

@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éveloppementPatterns

d’architectureBest Practices (TDD,

BDD, …)Craftmanship

Méthodes agiles (SCRUM, SafE)

ALMIntégration Continue

Mesure d’impact

Processus, Organisation,

DevOps

Communication, Formation, Coaching

1

Page 5: Xebicon   architectures microservices azure v1.0

@xebiconfr #xebiconfr

Des experts reconnus

10 AzureC#ALMSQL ServerWindows 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   architectures microservices azure v1.0

@xebiconfr #xebiconfr

Introduction2

Page 7: Xebicon   architectures microservices azure v1.0

@xebiconfr #xebiconfr

Applications monolithiques2

Toutes les fonctionnalités dans un seul process….

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

Page 8: Xebicon   architectures microservices azure v1.0

@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   architectures microservices azure v1.0

@xebiconfr #xebiconfr

Le Projet3

Page 10: Xebicon   architectures microservices azure v1.0

@xebiconfr #xebiconfr

Device

Dashboard

Hub

Store

User

3 Architecture

Page 11: Xebicon   architectures microservices azure v1.0

@xebiconfr #xebiconfr

Hosting : IaaS

Device IoT Hub

Virtual Network

Store

Load-Balancer

DashboardLoad-Balancer

User3

Page 12: Xebicon   architectures microservices azure v1.0

@xebiconfr #xebiconfr

Docker dans Azure4

Page 13: Xebicon   architectures microservices azure v1.0

@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 containersShared host OS: Processes in containers are isolated from other containers in user space, but share the kernel with the host and other containersFlexible: Differences in underlying OS and infrastructure are abstracted away, streamlining “deploy anywhere” approachFast: Containers can be created almost instantly, enabling rapid scale-up and scale-down in response to changes in demand

4

 Container

1Container

2Container

3

Unassigned

Host and VM OS files and librariesHost

Page 14: Xebicon   architectures microservices azure v1.0

@xebiconfr #xebiconfr

Docker Integration

Docker

Dockerized app

Windows Server

ContainerLinux

Container

CustomerDatacenter

ServiceProvider

MicrosoftAzure

Run anywhere

4

Page 15: Xebicon   architectures microservices azure v1.0

@xebiconfr #xebiconfr

DevOps

Developers build and test apps in containers, using development environment

Containers pushed tocentral repository

Operations automates deployment and monitors deployed apps from central repository

Physical/Virtual Servers

1 2

2

3Operations collaborates with developers to provide app metrics and insights

Developers update, iterate, and deploy updated containers

4

Page 16: Xebicon   architectures microservices azure v1.0

@xebiconfr #xebiconfr

Docker Datacenter4

Page 17: Xebicon   architectures microservices azure v1.0

@xebiconfr #xebiconfr

DémoDocker Datacenter Azure

Page 18: Xebicon   architectures microservices azure v1.0

@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   architectures microservices azure v1.0

@xebiconfr #xebiconfr

Azure Container Service

5

Page 20: Xebicon   architectures microservices azure v1.0

@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.11Ajout / 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

VMs and VM Scale Sets

ARM Template

Container Services (1st party, 3rd party)

Windows Server Linux

Azure Stack Azure

Container Tooling

Service Tooling

Page 21: Xebicon   architectures microservices azure v1.0

@xebiconfr #xebiconfr

Notre projet

Device IoT Hub

Virtual Network

ContainersLoad-Balancer

User

Azure Document DB

Swarm Managers

Load-Balancer

Ops

5

Page 22: Xebicon   architectures microservices azure v1.0

@xebiconfr #xebiconfr

DémoAzure Container Service

Page 23: Xebicon   architectures microservices azure v1.0

@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   architectures microservices azure v1.0

@xebiconfr #xebiconfr

Service Fabric6

Page 25: Xebicon   architectures microservices azure v1.0

@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   architectures microservices azure v1.0

@xebiconfr #xebiconfr

Service Fabric

Microservices

Service FabricHigh Availability

Hyper-Scale

Hybrid Operations

High Density

Rolling Upgrades Stateful

services

Low Latency Fast startup & shutdown

Container Orchestration & lifecycle management Replication &

Failover

Simple programmin

g models Resource balancing

Self-healingData Partitioning

Automated Rollback

Health Monitoring

Placement Constraints

Azure Private cloud Other clouds

6

Page 27: Xebicon   architectures microservices azure v1.0

@xebiconfr #xebiconfr

DémoService Fabric

Page 28: Xebicon   architectures microservices azure v1.0

@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   architectures microservices azure v1.0

@xebiconfr #xebiconfr

AppService7

Page 30: Xebicon   architectures microservices azure v1.0

@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   architectures microservices azure v1.0

@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   architectures microservices azure v1.0

@xebiconfr #xebiconfr

DémoAzure AppService

Page 33: Xebicon   architectures microservices azure v1.0

@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   architectures microservices azure v1.0

@xebiconfr #xebiconfr

Conclusion

Page 35: Xebicon   architectures microservices azure v1.0

@xebiconfr #xebiconfr

Conclusion

IaaS• VM

CaaS• Docker

CaaS• Service

Fabric

PaaS• AppServic

e

Page 36: Xebicon   architectures microservices azure v1.0

@xebiconfr #xebiconfr

Questions ?