slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Windows Azure : Plongée en eaux profondes PowerPoint Presentation
Download Presentation
Windows Azure : Plongée en eaux profondes

Loading in 2 Seconds...

play fullscreen
1 / 45

Windows Azure : Plongée en eaux profondes - PowerPoint PPT Presentation


  • 65 Views
  • Uploaded on

CLO302. Windows Azure : Plongée en eaux profondes. 8 février 2011 Bernard Ourghanlian CTO, CSO & DPE Lead Microsoft France. Sommaire. Introduction au Cloud Les fondamentaux de Windows Azure Le fonctionnement interne du Fabric Controller Mettre à jour un service

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Windows Azure : Plongée en eaux profondes' - cissy


Download Now An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
windows azure plong e en eaux profondes

CLO302

Windows Azure : Plongée en eaux profondes

8 février 2011

Bernard OurghanlianCTO, CSO & DPE LeadMicrosoft France

sommaire
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
les fondamentaux du cloud
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
les b n fices du cloud
Les bénéfices du Cloud
  • Le Cloud permet de fournir de la capacité à bas coût, à la demande

Windows Azure

windows azure
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é
sommaire1
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
fonctionnalit s de base de windows azure
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
mod liser des applications cloud
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

Windows

Azure

Storage,SQL Azure

HTTP/HTTPS

Front-End

Middle-Tier

Equilibrage de charge

Application Cloud

le mod le de service windows azure
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
    • WorkerRole : 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
contenu du r le
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/WorkerRole: DLL hébergée et autres exécutables
    • VM Role : VHD
  • Configuration :
    • Nombre d’instances
    • Nombre d’update et faultdomains

Service

Role: Front-End

Definition

Type: Web

VM Size: Small

Endpoints: External-1

Configuration

Instances: 2

Update Domains: 2

FaultDomains: 2

Role: Middle-Tier

Definition

Type: Worker

VM Size: Large

Endpoints: Internal-1

Configuration

Instances: 3

Update Domains: 2

FaultDomains: 2

fichiers de mod le de service
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)
disponibilit update domains
Disponibilité : Update Domains

Middle Tier-2

Middle Tier-1

Middle Tier-3

Front-End-1

Front-End-2

  • 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

Middle Tier-1

Middle Tier-2

Middle Tier-3

Update Domain 1

Update Domain 2

Update Domain 3

disponibilit fault domains
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 faultdomains lors de l’allocation des service roles
    • 2 faultdomains 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

Front-End-2

Middle Tier-1

Middle Tier-2

Middle Tier-3

Fault Domain 1

Fault Domain 2

Fault Domain 3

d ployer un service dans le cloud vue d avion
Déployer un Service dans le Cloud :vue d’avion

Service

  • 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

Portail de Service

Services RDFE

Datacenter de Dublin

FC

sommaire2
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
le fabric controller fc
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 viedu 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

Datacenter

Fabric Controller

Service

Serveur

Noyau

Processus

Word

SQL Server

Exchange

Online

SQL Azure

Windows Kernel

Fabric Controller

Server

Datacenter

pour tre clair avec les fabrics
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 WorkflowFoundation
    • 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
datacenter architecture
Datacenter Architecture

Datacenter Routers

AggregationRouterset

LoadBalancers

Agg

Agg

Agg

Agg

Agg

Agg

LB

LB

LB

LB

LB

LB

LB

LB

LB

LB

LB

LB

Top of Rack

Switches

TOR

TOR

TOR

TOR

TOR

TOR

TOR

TOR

TOR

TOR

TOR

TOR

TOR

TOR

TOR

Racks

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

PDU

PDU

PDU

PDU

PDU

PDU

PDU

PDU

PDU

PDU

PDU

PDU

PDU

PDU

PDU

Power Distribution Units

architecture fc haut niveau
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 faultdomains
    • 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

TOR

TOR

TOR

TOR

TOR

AGG

LB

LB

LB

LB

LB

FC3

FC2

FC5

FC4

FC1

FC3

Nœuds

Rack

provisionner un n ud
Provisionner un nœud

Fabric Controller

Référentiel d’images

  • 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 »

Serveur PXE

OS de maintenance

OS Parent

Images des rôles

Images des rôles

Images des rôles

Images des rôles

OS de maintenance

OS Windows Azure

Nœud

OS Windows

Azure

FC Host Agent

Hyperviseur Windows Azure

sommaire3
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
les tapes de d ploiement d un service
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 loadbalancers pour permettre le trafic
allocation des ressources d un service
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)
    • Faultdomains
    • 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
exemple d une allocation de service
Exemple d’une allocation de service

Role B

Count: 2

Update Domains: 2

Fault Domains: 2

Size: Medium

Role A

Count: 3

Update Domains: 2

Fault Domains: 2

Size: Large

www.mycloudapp.net

www.mycloudapp.net

Load

Balancer

10.100.0.185

10.100.0.36

10.100.0.122

Fault Domain 1

Fault Domain 2

Fault Domain 3

provisionner une instance de r le
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 guestagent pour le FC au sein du VHD pour les Web/Workerroles
    • 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 healthheartbeat 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)
provisioner les instances de vm role
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

VHD différentiel secondaire

Service de caching VHD

RDFE

VHD différentiel miroir

VHD de base

Windows Azure Blob Storage

VHD différentiel original

VHD différentiel miroir

VHD original de base

Miroir du VHD de base

Nœud

a sein d une vm de r le
A sein d’une VM de Rôle

Volume de l’OS

Volume de ressource

Volume pour le Rôle

Guest Agent

Hôte du Rôle

Point d’entrée du Rôle

la s curit du fabric controller
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
sommaire4
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
types de mises jour
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

Role A

UD 1

Role A

UD 1

Role A

UD 1

Role A

UD 2

Role A

UD 2

Role A

UD 2

Role B

UD 1

Role B

UD 2

Mise à jour In-Place

Role B

UD 1

Role B

UD 1

Role B

UD 1

Role B

UD 2

Role B

UD 2

Role B

UD 2

LB

Mis à jour VIP Swap

d tails de la mise jour in place
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
sommaire5
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
mettre jour l os de l h te
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
exemple d allocations
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

Service A

Role A-1

UD 1

Service A

Role A-1

UD 1

Service B

Role A-1

UD 1

Service A

Role A-1

UD 2

Service A

Role A-1

UD 2

Service B

Role A-1

UD 2

Service A

Role B-1

UD 1

Service A

Role B-1

UD 1

Service B

Role B-1

UD 1

Service B

Role B-1

UD 1

Service A

Role B-2

UD 2

Service A

Role B-2

UD 2

Service B

Role B-2

UD 2

Service B

Role B-2

UD 2

Allocation 1

Service B

Role A-1

UD 1

Service B

Role A-1

UD 2

Allocation 2

sommaire6
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
maintenance de la sant des n uds et des r les
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
node health index
NodeHealth 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

En bonne santé

Heartbeats

manqués

Timeout

de santé

Node

Health

Index

Heartbeat

manqué

Récupération

initiée

Intervalle deHeartbeat

Timeout de Heartbeat

d placer une instance de r le
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é
conclusion
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 FabricController 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…
remerciements
Remerciements
  • Merci à Mark Russinovich pour une large part de cette présentation !