Les microservices sont les dernières architectures à la mode, certains disent que c’est la suite logique des architectures SOA dans un environnement agile. Microsoft au travers de sa plateforme Cloud Azure, propose toute une série d’outils, de services managés pour construire et déployer vos architectures microservices. Découvrons ensemble les différentes solutions d’Azure : Azure Container Service, Docker, Service Fabric, App Service, ainsi que leurs avantages et leurs inconvénients.
Ähnlich wie XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de Cellenza et Matthieu Klotz, Ingénieur d'études - Architecte chez Cellenza
Flexible Workstyle : Comment réussir l'évolution du poste de travail vers les...Microsoft Technet France
Ähnlich wie XebiCon'16 : Architecture MicroServices avec Azure par Michel Hubert, CTO de Cellenza et Matthieu Klotz, Ingénieur d'études - Architecte chez Cellenza (20)
4. @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
5. @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
8. @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
13. @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
20. @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
23. @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
25. @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
26. @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
28. @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
30. @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
33. @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