2. 2
Sommaire
• Introduction au Cloud
• Les fondamentaux de Windows Azure
• Le fonctionnement interne du Fabric Controller
• Mettre à jour un service
• Mises à jour du système d’exploitation hôte
• La réparation d’un service
3. 3
Les fondamentaux du Cloud
• Infrastructure as a Service (IaaS) : ressources de
calcul et de stockage de base
– Serveurs à la demande
– Ex : Amazon EC2, VMware vCloud
• Platform as a Service (PaaS): infrastructure
applicative du Cloud
– Environnement d’hébergement d’applications à la
demande
– Ex : Google AppEngine, Salesforce.com, Windows Azure
• Software as a Service (SaaS): applications cloud
– Applications à la demande
– Ex : GMail, Microsoft Office Web Companions/O365
4. 4
Les bénéfices du Cloud
• Le Cloud permet de fournir de la capacité à bas
coût, à la demande
= Géré pour vous Serveurs
isolés
IaaS PaaS SaaS
Applications
Runtimes
Base de données
Système d’exploitation
Virtualisation
Serveur
Stockage
Réseau
Windows Azure
5. 5
Windows Azure
• Windows Azure est un système d’exploitation pour le Datacenter
• Modèle : traiter le Datacenter comme une machine
• Traite la gestion des ressources, le provisionnement et la
surveillance
• Gère le cycle de vie des applications
• Permet aux développeurs de se concentrer sur la logique
métier
• Fournit un réservoir partagé de ressources de calcul, de stockage
et de réseau
• Stockage, calcul et réseau virtualisés
• Illusion de ressources sans limites
• Fournit des blocs de base communs pour construire des
applications distribuées
• File d’attente fiable, stockage structuré simple, stockage SQL
• Des services applicatifs comme contrôle d’accès et
connectivité
6. 6
Composants de Windows Azure
PaaS - Windows Azure
Applications Modèle de Service Windows Azure
Runtimes .NET 3.5/4, ASP .NET, PHP
Système
d’exploitation
Système d’exploitation compatible
Windows Server 2008 ou 2008 R2
Virtualisation Hyperviseur Windows Azure
Serveur Blades/Containers Microsoft
Base de
données
SQL Azure
Stockage Stockage Windows Azure (Blob, Queue,
Table)
Réseau Réseau configuré pour Windows Azure
7. 7
Sommaire
• Introduction au Cloud
• Les fondamentaux de Windows Azure
• Le fonctionnement interne du Fabric Controller
• Mettre à jour un service
• Mises à jour du système d’exploitation hôte
• La réparation d’un service
8. 8
Fonctionnalités de base de Windows
Azure
• Configuration et déploiement :
• Gestion de certificats (par exemple SSL)
• Points de terminaison (endpoints) publics à
équilibrage de charge
• Configuration et découverte des endpoints internes
• Opérations :
• Gestion de l’accès aux bureaux distants
• Mises à jour automatisées des systèmes d’exploitation
et des runtimes
• Mises à jour coordonnées
• Disponibilité :
• Surveillance de la santé de l’environnement
• Disponibilité garantie par SLA
9. 9
Modéliser des Applications Cloud
• Une application Cloud est typiquement construite à l’aide de divers
composants
• Front End : par exemple : des serveurs Web à équilibre de
charge stateless
• Middle tier : par exemple : traitement des commandes, encodage
• Stockage Back End : par exemple : tables SQL ou fichiers
• Plusieurs instances de chacun pour des raisons de passage à
l’échelle et pour la disponibilité
Front-
End
Application Cloud
Front-
End
HTTP/HTTPS
10. 10
Le modèle de service Windows Azure
• Une application Windows Azure est appelée un « service »
• Information de définition
• Information de configuration
• Au moins un « rôle »
• Les rôles sont comme des DLL au sein du « processus » d’un service
• Collection de code avec un point d’entrée qui s’exécute dans sa
propre machine virtuelle
• Il y a aujourd’hui trois types de rôles :
• Web Role : IIS7 et ASP.NET dans un système d’exploitation
fourni par Windows Azure
• IIS 7.5 maintenant
• Worker Role : code arbitraire dans un système d’exploitation
fourni par Windows Azure
• Middle tier
• VM Role : VHD téléchargé avec le système d’exploitation fourni
par le client
11. 11
Contenu du rôle
• Définition :
– Nom du rôle
– Type du rôle
– Taille de VM (par exemple
small, medium, etc.)
– Endpoints réseau
• Code :
– Web/Worker Role : DLL
hébergée et autres exécutables
– VM Role : VHD
• Configuration :
– Nombre d’instances
– Nombre d’update et fault
domains
Service
Role: Front-End
Definition
Type: Web
VM Size: Small
Endpoints: External-1
Configuration
Instances: 2
Update Domains: 2
Fault Domains: 2
12. 12
Fichiers de modèle
de service
• La définition du Service est
dans ServiceDefinition.csdef
• La configuration du Service est
dans ServiceConfiguration.cscfg
• Le programme CSPack
compresse (Zip) les binaires du
service et la définition dans un
fichier empaquetant le service
(service.cscfg)
13. 13
Disponibilité : Update Domains
• Objectif : Assurer que le service
reste disponible pendant qu’on
le met à jour et que le système
d’exploitation Windows Azure se
met à jour
• Le système prend en compte la
notion d’update domains quand
il met à jour un service
– 1/update domains = pourcentage
du service qui sera hors service
– Défaut et max : 5, mais vous
pouvez outrepasser avec la
propriété de définition du service
upgradeDomainCount
• Le SLA de Windows Azure est
basé sur au moins 2 update
domains et deux instances de
rôle dans chaque rôle
Front-
End-1
Front-
End-2
Update
Domain 1
Update
Domain 2
Update
Domain 3
14. 14
Disponibilité : Fault Domains
• Objectifs : éviter les points de
défaillance unique
– Concept semblable aux update
domains
– Mais vous ne contrôlez pas les mises
à jour
• Unité de défaillance basé sur la
topologie du Datacenter
– Par exemple : un switch situé au-
dessus d’un rack de machines
• Windows Azure considère les
fault domains lors de l’allocation
des service roles
– 2 fault domains par service
– Essaye de répartir les rôles au
maximum
– Par exemple, ne place pas tous les
rôles dans le même rack
Front-
End-1
Fault
Domain
1
Fault
Domain
2
Front-
End-2
Middle
Tier-2
Middle
Tier-1
Fault
Domain
3
Middle
Tier-3
15. 15
Déployer un Service dans le Cloud :
vue d’avion
• Le package correspondant au
Service est téléchargé sur le portail
– Le Windows Azure Portal Service
passe le package de service au
service Azure « Red Dog Front End »
(RDFE)
– RDFE convertit le package de service
en version native « RD »
• RDFE envoie le service au Fabric
Controller (FC) en fonction de la
région cible
• Le FC stocke l’image dans le
référentiel , déploie et active le
service
16. 16
Sommaire
• Introduction au Cloud
• Les fondamentaux de Windows Azure
• Le fonctionnement interne du Fabric Controller
• Mettre à jour un service
• Mises à jour du système d’exploitation hôte
• La réparation d’un service
17. 17
Le Fabric Controller (FC)
• Le « noyau » du système d’exploitation du Cloud
• Gère le hardware du Datacenter
• Gère les services Windows Azure
• 4 principales responsabilités :
• Affectation des ressources du
Datacenter
• Provisionnement des
ressources du Datacenter
• Gestion du cycle de vie
du Service
• Gestion de l’état de santé
du Service
• Entrées :
• Description des ressources hardware et réseau qu’il
contrôlera
• Modèle de Service et binaires pour les applications Cloud
Serveur
Noyau
Processus
Datacenter
Fabric Controller
Service
Server Datacenter
18. 18
Pour être clair avec les « Fabrics »…
• Le Fabric Controller de Windows Azure n’a absolument
rien à voir avec AppFabric
• AppFabric est une marque qui comprend :
• Windows Server AppFabric : un ensemble de
composants pour construire des applications
composites fondées sur Windows Communication
Foundation et Windows Workflow Foundation
• Windows Azure AppFabric : Services Cloud pour
connecter des applications Cloud et en interne
• AppFabric Access Control Server
• AppFabric Service Bus
• AppFabric Cache
• Construits comme des services Windows Azure
19. 19
Datacenter Architecture
TOR
LB LB
A
gg
PDU
LB LB
A
gg
LB LB
A
gg
LB LB
A
gg
LB LB
A
gg
LB LB
A
gg
Racks
Datacenter
Routers
Aggregation
Routers et
Load
Balancers
TOR
PDU
TOR
PDU
TOR
PDU
TOR
PDU
TOR
PDU
TOR
PDU
TOR
PDU
TOR
PDU
TOR
PDU
TOR
PDU
TOR
PDU
TOR
PDU
TOR
PDU
TOR
PDU
……… … …
Top of Rack
Switches
Power
Distribution
Units
…
Nœuds
Nœuds
Nœuds
Nœuds
Nœuds
Nœuds
Nœuds
Nœuds
Nœuds
Nœuds
Nœuds
Nœuds
Nœuds
Nœuds
Nœuds
21. 21
Architecture FC haut niveau
• FC est une application distribuée, stateful qui s’exécute sur les
nœuds (blades) répartie au travers des fault domains
• Installé par l’ « utilitaire » Fabric Controller
• Un d’entre eux agit comme « primaire » et maintient une vue synchronisée
du reste du monde par les autres
• Choix d’un nouveau primaire si celui-ci tombe grâce un algorithme de
consensus de Paxos
• Supporte les rolling upgrades et les services continuent de s’exécuter même
si un FC tombe entièrement
…
…
…
…
…
…
…
…
…
…
Nœuds
Rack
22. 22
Provisionner un nœud
• Mettre sous tension le
nœud en parlant au PDU
• Amorçage PXE d’un OS
de maintenance
• L’agent formate le disque
et télécharge le système
d’exploitation hôte
• Le système d’exploitation
hôte démarre, exécute
Sysprep /specialize et
redémarre
• FC se connecte avec le
« Host Agent »
Images
des
rôles
Images
des
rôles
Images
des
rôles
Images
des
rôles
Référentiel
d’images
OS de
maintenance
OS Parent
Nœud
OS de
maintenance
OS Windows
Azure
OS Windows
Azure
23. 23
Sommaire
• Introduction au Cloud
• Les fondamentaux de Windows Azure
• Le fonctionnement interne du Fabric Controller
• Mettre à jour un service
• Mises à jour du système d’exploitation hôte
• La réparation d’un service
24. 24
Les étapes de déploiement d’un Service
• Traitement des fichiers du modèle de service
• Déterminer les besoins en ressources (taille de VM, nombre
d’instances,…)
• Créer les images des rôles
• Allouer les ressources de calcul et de réseau
• Préparer les nœuds
• Placer les images des rôles sur les nœuds
• Créer les machines virtuelles
• Démarrer les machines virtuelles et les rôles
• Configurer le réseau
• Adresses IP dynamiques (DIP) affectées aux blades
• Internes
• Adresses IP virtuelles (VIP) affectées et mappées vers les
ensembles de DIP
• Visibles à l’extérieur
• Programmer les load balancers pour permettre le trafic
25. 25
Allocation des ressources d’un
service• Objectif : allouer les composants du service en direction des
ressources disponibles tout en satisfaisant toutes les
contraintes dures
• Besoin de passage à l’échelle : nombre d’instances
• Besoins hardware : CPU, Mémoire, Stockage, Réseau
• Besoins de l’environnement d’hébergement (OS, VM)
• Fault domains
• Update domains
• Objectif secondaire : satisfaire les autres contraintes
• Préférer les allocations qui simplifient le service de l’OS hôte/de
l’hyperviseur
• Optimiser la proximité réseau (ex : front-end, middle-tier, back-end)
• L’allocation du Service produit l’état de l’objectif pour chacune
des ressources affectées aux composants du Service
• Configuration nœud et VM (OS, environnement d’hébergement)
• Fichiers images et configuration à déployer
• Processus à démarrer
• L’allocation du Service alloue aussi les ressources réseau
telles que LB et VIP
26. 26
Exemple d’une allocation de service
Role B
Count: 2
Update Domains:
2
Fault Domains: 2
Size: Medium
Fault Domain 1 Fault Domain 2 Fault Domain 3
Load
Balancer
10.100.0.36
10.100.0.122
10.100.0.185
27. 27
Provisionner une instance de rôle
• Le FC pousse les fichiers de rôle et les informations de
configuration en direction du host agent du nœud cible
• Le host agent crée trois VHD :
• Un VHD différentiel pour l’image de l’OS (D:)
• Le host agent injecte un guest agent pour le FC au sein du VHD pour les
Web/Worker roles
• Un VHD ressource pour les fichiers temporaires (C:)
• Un VHD Role pour les fichiers rôle (la première lettre disponible
ensuite, par exemple E:, F:)
• Le host agent crée les VM, y attache les VHD et démarre
les VM
• Le guest agent démarre le hôte du rôle, qui appelle alors le
point d’entrée du rôle
• Démarre le health heartbeat et accepte des commandes en
provenance du host agent
• Le load balancer ne route seulement que vers les points de
terminaison externes quand il répond à un simple HTTP
GET (sonde du LB)
28. 28
Provisioner les instances de VM Role
• Le VHD de base et le VHD différentiel d’un VM Role sont stockés
dans des Windows Azure storage blobs
• Des versions miroirs sont créées quand les originaux sont téléchargés
• Les lectures depuis le VHD sont toutes réalisées à travers un service de
caching de VHD
• Les lectures sont effectuées à la demande depuis le cache (comme
la pagination)
• Les écritures vont en direction d’un second VHD différentiel
• Une opération de « Reimage » le supprime simplement et redémarre
Windows Azure Blob StorageMiroir du
VHD de base
VHD différentiel
miroir
VHD de base
VHD différentiel miroir
VHD différentiel
secondaire
Nœud
29. 29
A sein d’une VM de Rôle
Volume de ressource
Volume de l’OS
Volume pour le Rôle
Guest Agent
Hôte du Rôle
Point d’entrée
du Rôle
30. 30
La sécurité du Fabric
Controller
• La machine virtuelle est la frontière de sécurité à partir de
laquelle est basée la sécurité de Windows
• L’OS de l’hôte et le host agent du FC sont considérés
comme dignes de confiance
• Le guest agent est indigne de confiance
• Le host agent du FC assure que la VM peut seulement
accéder aux adresses IP affectées aux VM du même
service
• Permet l’accès aux adresses Internet
• Le FC utilise des certificats et la sécurité réseau pour
autoriser l’accès aux ressources du Datacenter
31. 31
Sommaire
• Introduction au Cloud
• Les fondamentaux de Windows Azure
• Le fonctionnement interne du Fabric Controller
• Mettre à jour un service
• Mises à jour du système d’exploitation hôte
• La réparation d’un service
32. 32
Types de mises à jour
• Il y a deux types de mises à jour :
• In-place
• VIP swap
• Mise à jour In-place :
• Supporte les changements de la
configuration ou des binaires mais pas
de la définition du service
• Les instances de Rôle sont mis à jour
un update domain après l’autre
• Deux modes : automatique et manuel
• Mise à jour VIP swap :
• La définition du service peut changer
mais les points de terminaison
externes doivent rester les mêmes
• La nouvelle version du service
déployée, le nouveau mappage
externe VIP/DIP est échangé avec
l’ancien
• Les changements du nombre de
points de terminaux externes
nécessitent un nouveau déploiement
Role
A
UD 1
Role
A
UD 2
Mise à jour In-Place
Mis à jour VIP Swap
33. 33
Détails de la mise à jour In-Place
• Le FC déploie les fichiers mis à jour du rôle et de la
configuration sur tous les nœuds en parallèle
• Prépare les nouvelles instance du rôle :
• Le host agent du FC crée un nouveau VHD pour le rôle
• Attache et monte le nouveau VHD pour le rôle
• Stoppe l’ancienne instance du rôle :
• Le FC charge le guest agent de stopper l’instance du rôle
• Démonte et détache l’ancien VDD du rôle
• Démarre les nouvelles instances du rôle :
• Appelle le nouveau point d’entrée du rôle
• Considère que la mise à jour de l’instance du rôle a été
couronnée de succès quand le code du rôle signale « ready »
• A noter le fait que le volume de ressource est préservé
lors de la mise à jour de l’instance du rôle
34. 34
Sommaire
• Introduction au Cloud
• Les fondamentaux de Windows Azure
• Le fonctionnement interne du Fabric Controller
• Mettre à jour un service
• Mises à jour du système d’exploitation hôte
• La réparation d’un service
35. 35
Mettre à jour l’OS de l’hôte
• Lancé par l’équipe Windows Azure
• Typiquement pas plus qu’une fois par mois
• Objectif : mettre à jour toutes les machines le plus
rapidement possible
• Contrainte : ne doit pas violer le SLA
• Un service a besoin d’au moins deux update domains et deux
instances de rôle pour respecter le SLA
• On ne peut pas permettre à plus d’un update domain de
n’importe quel service d’être hors service à un instant donné
• Note : votre instance de rôle garde la même VM et les
mêmes VHD, préservant ainsi les données cachées dans
le volume de ressource
• Essentiellement un problème de coloriage de graphe
• Des arrêtes existent entre des sommets (nœuds) si les deux
nœuds hébergeant les deux instances de hôtes pour le même
rôle de service sont dans des update domains différents
• Les nœuds qui n’ont pas d’arrêtes entre eux peuvent être mis à
jour en parallèle
36. 36
Exemple d’allocations
• Les deux
allocations sont
valides du point
de vue des
services
• Allocation 1
permet à 2 nœuds
de rebooter
simultanément
• Allocation 2 ne
permet qu’à un
seul nœud d’être
arrêté à n’importe
quel moment
• Une mise à jour
de l’OS hôte avec
l’allocation 1 est 2
fois plus rapide
Allocation 1
Allocation 2
Service B
Role A-1
UD 2
Service B
Role B-2
UD 2
Service B
Role B-2
UD 2
Service B
Role A-1
UD 2
37. 37
Sommaire
• Introduction au Cloud
• Les fondamentaux de Windows Azure
• Le fonctionnement interne du Fabric Controller
• Mettre à jour un service
• Mises à jour du système d’exploitation hôte
• La réparation d’un service
38. 38
Maintenance de la santé des nœuds
et des rôles
• Le FC maintient la disponibilité du service en
surveillant la santé du software et du hardware
• Basée principalement sur des heartbeats
• « Répare » automatiquement les rôles
affectés
Problème Détection Réponse de la Fabric
Crash d’une instance de
rôle
Le guest agent du FC surveille la
fin d’un rôle
Le FC redémarre le rôle
Une VM invitée ou un
agent crashe
Le host agent du FC remarque
les heartbeats manquant du
guest agent
Le FC redémarre la VM et le rôle
hébergé
L’OS hôte ou l’agent
crashe
Le FC remarque les heartbeats
manquant du host agent
Tentative de récupérer le nœud.
Le FC réalloue les rôles à d’autres
nœuds
Détection d’un problème
hardware sur le nœud
Le host agent en informe le FC Le FC migre les rôles vers d’autres
nœuds
Marque le nœud « out for repair »
39. 39
Node Health Index
• Les timeouts varient en fonction de l’état du
nœud et des opérations
• Basés sur des heartbeats, qui sont
typiquement de 15 secondes
• Utilisés pour statut et récupération
• L’échantillonneur d’état de santé fait un reset
de l’index après un échantillonnage couronné
de succès
• Une fois que l’index tombe en dessous de 0 le
FC tente de réparer le nœud
• Par exemple, le timeout du host agent est de
10 minutes
• Le temps de réaction dans le pire cas est de
: intervalle de timeout + intervalle de
heartbeat
Node
Health
Index
Heartbeats
manqués
Intervalle de
Heartbeat
Heartbeat
manqué
Récupération
initiée
Timeout de
Heartbeat
Timeout
de santé
En bonne santé
40. 40
Déplacer une instance de rôle
• Déplacer une instance de rôle ressemble à une mise à
jour de service
• Sur le nœud source :
• Les instances du rôle sont stoppées
• Les VM sont stoppées
• Le nœud est re-provisionné
• Sur le nœud destination :
• Mêmes étapes que lors du déploiement initial du rôle
• Attention : le VHD ressource n’est pas déplacé
41. 41
Conclusion
• La mise en place d’une solution de type Platform as a
Service a pour but essentiel de réduire le surcoût lié au
management et aux opérations
• Le Fabric Controller Windows Azure est la fondation de
la plateforme Windows Azure
• Provisionnement des machines
• Déploiement des services
• Configuration du hardware pour les services
• Surveillance de la santé du service et du hardware
• Réparation du service
• Le Fabric Controller continue d’évoluer…