@xebiconfr #xebiconfr
Architecture
MicroServices avec
Azure
Michel HUBERT
Matthieu Klotz
@xebiconfr #xebiconfr
Speakers
Michel Hubert
http://www.cellenza.com
@michelhubert
michel.hubert@cellenza.com
Matthieu Klotz
http://www.cellenza.com
@matthieuklotz
Matthieu.klotz@cellenza.com
@xebiconfr #xebiconfr
Cellenza
1
@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
@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
@xebiconfr #xebiconfr
Introduction
2
@xebiconfr #xebiconfr
Applications monolithiques2
Toutes les fonctionnalités dans un seul process….
Le scalling se fait en répliquant l’application complète
sur plusieurs serveurs.
@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
@xebiconfr #xebiconfr
Le Projet
3
@xebiconfr #xebiconfr
Device
Dashboard
Hub
Store
User
3 Architecture
@xebiconfr #xebiconfr
Hosting : IaaS
Device IoT Hub
Virtual Network
Store
Load-Balancer
Dashboard
Load-Balancer
User
3
@xebiconfr #xebiconfr
Docker dans Azure
4
@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
@xebiconfr #xebiconfr
Docker Integration4
@xebiconfr #xebiconfr
DevOps4
@xebiconfr #xebiconfr
Docker Datacenter4
@xebiconfr #xebiconfr
Démo
Docker Datacenter Azure
@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
@xebiconfr #xebiconfr
Azure Container Service
5
@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 ToolingService Tooling
@xebiconfr #xebiconfr
Notre projet
Device IoT Hub
Virtual Network
Containers
Load-Balancer
User
Azure Document DB
Swarm Managers
Load-Balancer
Ops
5
@xebiconfr #xebiconfr
Démo
Azure Container Service
@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
@xebiconfr #xebiconfr
Service Fabric
6
@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
@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
programming
models
Resource balancing
Self-healingData Partitioning
Automated Rollback
Health Monitoring
Placement
Constraints
Azure Private cloud Other clouds
6
@xebiconfr #xebiconfr
Démo
Service Fabric
@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
@xebiconfr #xebiconfr
AppService
7
@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
@xebiconfr #xebiconfr
Azure AppService
App Service
Device IoT Hub Azure Function Azure Document DB
User
Azure Web App
Azure API App
7
@xebiconfr #xebiconfr
Démo
Azure AppService
@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
@xebiconfr #xebiconfr
Conclusion
@xebiconfr #xebiconfr
Conclusion
IaaS
• VM
CaaS
• Docker
CaaS
• Service
Fabric
PaaS
• AppService
@xebiconfr #xebiconfr
Questions ?

Xebicon architectures microservices azure v1.0