Débuter avec Windows Azure

Comprendre le fonctionnement de Windows Azure

Vous voici prêts à vous lancer dans la découverte de Windows Azure !
Ce premier chapitre sera entièrement théorique. Le but est pour l’instant de bien comprendre comment fonctionne Azure, et quels en sont les avantages.

Introduction au cloud computing

Commençons par répondre aux questions que vous devez vous poser : qu'est-ce que Windows Azure ? Et surtout : qu'est-ce que le « cloud » ?

En français, cloud signifie nuage. Vous avez peut-être déjà croisé ce terme, on en entend de plus en plus parler, et pour cause : cela apporte tout un tas d’avantages que nous allons découvrir ensemble.
Basiquement, ce qu'on appelle le cloud est un système permettant de faire fonctionner plusieurs serveurs ensemble.

Datacenter

Pour bien comprendre, prenons l'exemple d'un site web classique. Il est hébergé sur un serveur que l'on a choisi pour ses caractéristiques techniques, comme l'espace de stockage du disque dur, la puissance de la base de données, etc.
Lorsqu'un visiteur souhaite consulter ce site, il communique directement avec le serveur grâce au réseau Internet.

Ce serveur est installé quelque part dans ce que l'on appelle un datacenter, ou « centre de données » en français. Ce sont des entrepôts adaptés où sont rassemblés des centaines, voire des milliers de serveurs. C'est dans le datacenter appartenant à notre hébergeur que se trouve un serveur précis hébergeant notre site. Les visiteurs communiqueront donc toujours avec la même machine lorsqu'ils souhaiteront consulter le site.

Site Classique

Site avec un hébergement classique

Dans le cas du cloud, la différence est qu'on ne travaillera pas toujours avec le même serveur. Au lieu de dépendre constamment de la même machine, notre site web va être enregistré sur une machine virtuelle, c'est à dire dans un environnement 100% logiciel, indépendant du matériel. C'est un peu comme un système « portable », qui peut être exécuté n'importe où.
Imaginez que vous ayez avec vous une sauvegarde de tout ce que vous possédez sur votre ordinateur personnel, et que vous puissiez utiliser cette sauvegarde à partir de n'importe quel autre ordinateur. Vous retrouveriez ainsi tous vos logiciels, fichiers, préférences... jusqu'au fond d'écran de votre bureau ! Ici, il s'agit du même principe. L'ensemble qui permet de faire tourner votre application web est composé de certains programmes (serveur web, programme PHP, etc) et fichiers (les pages de votre site, images, etc). Cet ensemble est installé sur une machine virtuelle, que l'on peut donc utiliser à partir de n'importe quel ordinateur !
Cela vous permet de rendre votre site disponible sur des serveurs différents.

Comment les visiteurs vont trouver mon site si on ignore sur quel serveur il est ?

C'est là qu'entre en scène ce qu'on appelle le cloud. Il s'agit en fait d'un système qui s'étend sur plusieurs datacenters et qui permet de faire fonctionner les différents serveurs ensemble. C'est ce système qui va acheminer les visiteurs jusqu'au bon serveur selon leur demande.

Site Cloud

Site avec un hébergement cloud

Et à quoi ça sert d'avoir mon site sur plusieurs serveurs ?

L'intérêt est d'améliorer les performances de votre site. Il sera affiché plus rapidement chez la plupart des visiteurs, parce que plusieurs serveurs travaillent mieux qu'un seul ! Grâce à ce mode de fonctionnement, votre application n'a plus ou presque de limites de performances, les ressources utilisées peuvent évoluer. Bien sûr, avec Windows Azure il est possible d’agir sur toutes ces informations et de les paramétrer, afin d’obtenir un hébergement qui soit personnalisé en fonction de vos besoins. Et c’est justement ce qui fait tout l’intérêt du cloud : vous disposez d’une grande souplesse puisque vous ne dépendez pas d’une seule machine aux caractéristiques bien définies.
Vous bénéficiez également de l'étendue de la plateforme Azure à travers le monde. En effet, Microsoft propose pas moins de 6 datacenters dédiés à Windows Azure, répartis à divers endroits du globe.
Ainsi, chaque visiteur communiquera sans le savoir avec un serveur situé dans le datacenter le plus proche de lui. Les données lui parviendront donc plus rapidement.

Datacenters Azure

Les datacenters Windows Azure

Les avantages

Certains avantages du cloud sont directement liés à la possibilité de pouvoir utiliser plusieurs machines virtuelles sur des serveurs différents. D'autres consistent en une simplification des tâches à effectuer, grâce au fonctionnement de la plateforme Azure, qui gère à votre place la majeure partie des étapes de configuration nécessaires.

Adapter les capacités de l'hébergement à vos besoins réels

Le premier de ces avantages, c’est le fait de pouvoir adapter les capacités matérielles et logicielles à vos besoins réels.
Il est ainsi plus facile de faire face à ce qu’on appelle la « montée en charge ».

La montée en charge, c’est tout simplement l’augmentation des performances nécessaires pour faire tourner votre application. Parce que vous avez davantage d’utilisateurs, parce que vous fournissez des services plus nombreux ou plus gourmands en mémoire… Votre application pourra monter en charge progressivement sur le long terme, puisqu’elle gagnera en nombre d’utilisateurs. Mais elle pourra également avoir des « pics » de montée en charge sur des périodes temporaires.
Prenez l’exemple d’une boutique en ligne. Vous aurez forcément certaines périodes beaucoup plus actives que d’autres dans l’année, notamment à l’approche des fêtes de fin d’année par exemple. Lors de ces périodes, vous aurez plus de visiteurs, plus de transactions, plus de pages affichées… Votre application sera donc beaucoup plus gourmande en mémoire, bases de données, etc.

Montée en charge d'une application classique

Montée en charge d'une application classique

Avec un hébergement classique, si vous souhaitez prévoir ce genre de cas, vous devez payer un serveur suffisamment puissant pour encaisser la montée en charge. Votre application est ainsi capable de résister aux périodes de forte charge, mais le reste du temps vous aurez un « gâchis » de performances, puisque vous n’exploitez pas les pleines capacités du serveur. Vous payez donc un produit que vous n’exploitez pas autant que possible.

Avec Azure, vous pouvez adapter les capacités de votre hébergement à vos besoins en temps réel et donc les réduire lorsque la charge de votre application redescend. Vos dépenses sont alors réduites.
Vous êtes également capable de réagir rapidement et facilement à toute montée en charge, prévue comme imprévue. Un hébergement classique vous imposerait de changer de serveur et donc migrer votre application et vos données, ou bien rajouter des serveurs afin de répartir la charge (et donc configurer l’infrastructure réseau permettant à vos serveurs de travailler ensemble correctement). Un hébergement cloud à l’image de Windows Azure vous permet d’augmenter les capacités simplement et rapidement, sans avoir à gérer l’infrastructure ni les serveurs. Vous n’avez à vous préoccuper de rien, sauf de décider qu’il vous faut plus de puissance. En un clin d’œil, votre application est capable de résister à la montée en charge.

Montée en charge d'une application cloud

Montée en charge d'une application Windows Azure

Assurer la disponibilité de l'application

En plus de la possibilité de faire évoluer facilement les capacités de votre hébergement, Azure vous permet une meilleure stabilité. Travailler avec plusieurs serveurs représente ici une sécurité. En effet, dans le cas d'un hébergement classique, si votre serveur tombe en panne pour une raison ou une autre, plus personne ne pourra accéder à votre site. Il vous faudra attendre que le serveur soit réparé pour que le site soit de nouveau accessible.
Avec Azure, si vous utilisez plusieurs serveurs et que l'un d'entre eux vient à tomber en panne, un autre peut prendre le relais automatiquement, sans engendrer d'indisponibilité ni de ralentissement sur votre site.

Vous concentrer sur votre application plutôt que sur l'infrastructure

Enfin, un autre avantage concerne les applications plus conséquentes, celles qui sont trop grosses et trop gourmandes en mémoire pour tenir sur un seul serveur. On ne parle donc pas ici d'un petit site perso, mais plutôt d'une application avec beaucoup d'utilisateurs et de fonctionnalités, suffisamment pour rendre nécessaire l'utilisation de plusieurs serveurs travaillant ensemble constamment.

Ce genre de configuration est tout à fait possible sans avoir recours au cloud, mais elle implique de travailler longuement sur l'infrastructure, la configuration réseau, les logiciels que vous installez sur les différentes machines, les capacités techniques de ces dernières et la façon dont elles vont échanger l'information entre elles. Vous l'aurez compris, c'est quelque chose qui prend beaucoup de temps, et qui demande pas mal de connaissances spécifiques.

L’intérêt d’héberger une application « sur le nuage », c’est que vous n’avez pas à vous préoccuper de l’endroit où elle sera stockée, ni de la façon dont elle sera stockée. Windows Azure gère pour vous l’aspect logiciel, matériel et réseau, et ce même si votre application demande de très fortes ressources matérielles. Vous n’avez qu’à consacrer votre temps à votre application en elle-même.
Vous gérez le « quoi ». Azure gère le « où » et le « comment ».

En conclusion, votre hébergement cloud sur Azure vous permet :

  • Une plus grande réactivité : vous pouvez faire évoluer les capacités de votre hébergement très rapidement, à la demande.

  • Des économies : vous n'utilisez (et ne payez) que les ressources dont vous avez réellement besoin.

  • Une meilleure stabilité : vous êtes à l'abri si un serveur vient à planter.

  • Un gain de temps : vous pouvez vous concentrer sur votre application et vos données plutôt que sur l’infrastructure.

La plateforme Windows Azure

Nous l’avons vu, Windows Azure est une plateforme dédiée à l’hébergement cloud proposé par Microsoft. On en comprend le but, mais en pratique : comment cela fonctionne ?

Windows Azure rassemble plusieurs services pouvant travailler ensemble ou indépendamment, chacun ayant un rôle précis :

  • Windows Azure : principal composant de la plateforme Azure, il s’agit en fait d’un système d’exploitation, adapté au cloud et installé sur les serveurs de Microsoft.

  • SQL Azure : il s’agit de la version cloud du SGBD de Microsoft, SQL Server.

  • Azure AppFabric : fournit les outils pour créer des applications cloud avec des fonctionnalités avancées, ou des applications « hybrides » exécutées en partie sur le cloud et en partie sur serveur dédié ou privé.

Windows Azure

logo Windows Azure

Comme tout système d’exploitation, il permet d’utiliser le matériel mis à disposition sans avoir à se préoccuper des caractéristiques techniques ni de l’infrastructure. Il fournit ce qu’on appelle une « abstraction » de l’infrastructure. Le rôle de Windows Azure est de gérer un système pouvant s’étendre à plusieurs serveurs fonctionnant ensemble (c’est ce qu’on appelle le cloud), afin de :

  • stocker des données

  • exécuter des applications

Ce système fournit deux services principaux, indépendants l’un de l’autre : Compute et Storage.

Compute : service d’exécution

Ce service se base sur des rôles. Les rôles sont en quelque sorte des applications que l'on va créer sur notre plateforme Azure. Il existe deux types de rôles :

  • Les Web Role : comme leur nom l’indique, ce sont des applications dont le but est d’interagir avec des utilisateurs via le web. Par exemple, un site internet, une boutique en ligne ou une interface utilisateur sont des Web Role.

  • Les Worker Roles : ceux-là ne sont pas faits pour être en interaction avec l’utilisateur, mais plutôt pour effectuer des tâches de fond, comme par exemple de la manipulation de fichiers.

Pour un site simple, on aura simplement besoin d'un Web Role. Mais selon les besoins, il peut arriver qu'un Web Role communique avec un Worker Role pour lui envoyer des instructions.

Prenons l'exemple d'une application web destinée à gérer des fichiers à distance, via une interface dans votre navigateur. Cette interface serait basée sur un Web Role, vous permettant de créer tout ce que verront vos utilisateurs.
Par contre, le travail effectué par l'application étant essentiellement de la manipulation de fichiers (renommer un dossier, déplacer ou supprimer un fichier, envoyer de nouveaux fichiers sur le serveur, etc), il sera effectué par un Worker Role, qui recevra ses ordres directement du Web Role.

Web role et Worker role

Pour savoir tirer parti de Windows Azure au maximum, l’essentiel est de comprendre le fonctionnement des rôles. Un rôle s’exécute en fait dans une machine virtuelle, et non pas directement sur un serveur physique. Cette machine virtuelle peut être installée à l'identique sur plusieurs serveurs différents, ce qu’on appelle des instances. Multiplier le nombre d’instances d’un même rôle revient à améliorer ses performances. Un peu comme si vous aviez plusieurs ouvriers travaillant ensemble à la même tâche plutôt qu’un seul : le travail est effectué plus rapidement.
Pour chaque rôle, on pourra donc décider du nombre d’instances que l’on veut déployer, en fonction des besoins. Vous pourrez en ajouter ou en enlever chaque fois que nécessaire, afin d’adapter les ressources dont vous disposez à la charge réellement demandée par votre application.

Storage : service de stockage de données

Le service de storage est donc la partie du système Windows Azure qui va s'occuper de stocker des données. Il fonctionne via plusieurs outils, adaptés aux différents types de données que l'on peut manipuler :

  • Blobs : stockage de fichiers.

  • Tables : enregistrement de données sous la forme nom / valeur.

  • Queues : transmission d’informations entre rôles (ex : instructions données à un worker role par un web role).

SQL Azure

logo SQL Azure

C'est l'équivalent cloud du SGBDMicrosoft SQL Server. À quelques différences près, le fonctionnement est identique à celui d'une base de données classique via SQL Server. La principale nouveauté est que vous bénéficiez ici des avantages du cloud Azure :

  • Souplesse : vous pouvez faire varier la taille de la base de données utilisée pour adapter vos dépenses à vos besoins.

  • Réplication : de la même manière que la multiplication des instances pour un rôle, la réplication vous permet d'avoir plusieurs copies de votre base de données, qui travaillent ensemble. Vous gagnez ainsi en rapidité et en stabilité.

  • Sauvegardes automatiques : plus besoin de sauvegarder vous-même votre base de données, SQL Azure s'en charge pour vous !

Azure AppFabric

logo Azure AppFabric

Azure AppFabric permet la création d'applications cloud avec des fonctionnalités avancées, ou la création d'applications "hybrides", c'est-à-dire exécutées en partie sur le cloud et en partie sur serveur dédié ou privé.

Combien coûte un hébergement Windows Azure ?

On l'a dit, le concept de l'hébergement cloud, c'est d'adapter votre consommation logicielle et matérielle à vos besoins réels. Le but étant évidemment de ne payer que ce dont vous avez besoin, ni plus ni moins.
La plateforme Windows Azure vous permet de payer à l'usage ou bien de souscrire à un abonnement. Le paiement à l'usage vous permettra d'ajuster en temps réel les ressources que vous utilisez, et donc votre facture. Les abonnements, moins flexibles, représentent cependant une réduction pouvant aller jusqu'à 20% du prix, ce qui n'est pas négligeable. ^^

Paiement à l'usage

Windows Azure
  • Calcul

    • Très petite instance : 0,0355 € par heure

    • Petite instance (par défaut) : 0,0852 € par heure

    • Instance moyenne : 0,1703 € par heure

    • Instance large : 0,3405 € par heure

    • Instance extra-large : 0,6809 € par heure

  • Réseau virtuel

    • Windows Azure Connect - Gratuit pendant la version préliminaire CTP

  • Stockage

    • 0,1064 € par gigaoctet et par mois

    • 0,0071 € pour 10 000 transactions de stockage

  • Réseau de distribution de contenu

    • 0,1064 € par gigaoctet pour les transferts de données depuis l'Europe et l'Amérique du Nord

    • 0,1419 € par gigaoctet pour les transferts de données depuis tout autre pays

    • 0,0071 € pour 10 000 transactions

  • Calcul

    • Très petite instance : 0,0355 € par heure

    • Petite instance (par défaut) : 0,0852 € par heure

    • Instance moyenne : 0,1703 € par heure

    • Instance large : 0,3405 € par heure

    • Instance extra-large : 0,6809 € par heure

  • Réseau virtuel

    • Windows Azure Connect - Gratuit pendant la version préliminaire CTP

  • Stockage

    • 0,1064 € par gigaoctet et par mois

    • 0,0071 € pour 10 000 transactions de stockage

  • Réseau de distribution de contenu

    • 0,1064 € par gigaoctet pour les transferts de données depuis l'Europe et l'Amérique du Nord

    • 0,1419 € par gigaoctet pour les transferts de données depuis tout autre pays

    • 0,0071 € pour 10 000 transactions

Azure AppFabric
  • Access Control

    • 1,4114 € pour 100 000 transactions

  • Service Bus

    • 2,8298 € par connexion avec paiement à l'utilisation

    • Pack de 5 connexions 7,0566 €

    • Pack de 25 connexions 35,2827 €

    • Pack de 100 connexions 141,1308 €

    • Pack de 500 connexions 705,654 €

  • Mise en cache

    • 128 Mo de cache pour 31,914 €

    • 256 Mo de cache pour 39,006 €

    • 512 Mo de cache pour 53,19 €

    • 1 Go de cache pour 78,012 €

    • 2 Go de cache pour 127,656 €

    • 4 Go de cache pour 230,49 €

  • Access Control

    • 1,4114 € pour 100 000 transactions

  • Service Bus

    • 2,8298 € par connexion avec paiement à l'utilisation

    • Pack de 5 connexions 7,0566 €

    • Pack de 25 connexions 35,2827 €

    • Pack de 100 connexions 141,1308 €

    • Pack de 500 connexions 705,654 €

  • Mise en cache

    • 128 Mo de cache pour 31,914 €

    • 256 Mo de cache pour 39,006 €

    • 512 Mo de cache pour 53,19 €

    • 1 Go de cache pour 78,012 €

    • 2 Go de cache pour 127,656 €

    • 4 Go de cache pour 230,49 €

SQL Azure
  • Web Edition

    • 7,085 € par base de données, jusqu'à 1 Go par mois

    • 35,425 € par base de données, jusqu'à 5 Go par mois

  • Business Edition

    • 70,913 € par base de données, jusqu'à 10 Go par mois

    • 141,826 € par base de données, jusqu'à 20 Go par mois

    • 212,739 € par base de données, jusqu'à 30 Go par mois

    • 283,652 € par base de données, jusqu'à 40 Go par mois

    • 354,565 € par base de données, jusqu'à 50 Go par mois

  • Web Edition

    • 7,085 € par base de données, jusqu'à 1 Go par mois

    • 35,425 € par base de données, jusqu'à 5 Go par mois

  • Business Edition

    • 70,913 € par base de données, jusqu'à 10 Go par mois

    • 141,826 € par base de données, jusqu'à 20 Go par mois

    • 212,739 € par base de données, jusqu'à 30 Go par mois

    • 283,652 € par base de données, jusqu'à 40 Go par mois

    • 354,565 € par base de données, jusqu'à 50 Go par mois

Transfert de données
  • Régions Amérique du Nord et Europe

    • 0,071 € par gigaoctet entrant

    • 0,1064 € par gigaoctet sortant

  • Région Asie-Pacifique

    • 0,071 € par gigaoctet entrant

    • 0,1419 € par gigaoctet sortant

  • Régions Amérique du Nord et Europe

    • 0,071 € par gigaoctet entrant

    • 0,1064 € par gigaoctet sortant

  • Région Asie-Pacifique

    • 0,071 € par gigaoctet entrant

    • 0,1419 € par gigaoctet sortant

Abonnements

Selon l'usage que vous souhaitez faire du cloud, Microsoft propose différents abonnements.
Si vous dépassez les limites de capacités de l'abonnement pour lequel vous avez opté, il vous faudra payer un supplément basé sur la tarification à l'usage.

Pack Windows Azure

C'est le pack de base, qui permet de déployer des applications sur le cloud. Attention, il ne comprend pas de base de données, si vous souhaitez en utiliser une il vous faudra payer un supplément.
À partir de 51,06 € / mois. Valable 6 mois renouvelables une fois.

Détail de l'offre Pack Windows Azure

Pack SQL Azure

Ce pack vous permet un accès à une base de données SQL Azure. Vous pourrez le coupler avec le pack Windows Azure, ou l'utiliser seul si votre but est simplement de stocker des données sur le cloud et non une application complète.
À partir de 56,73 € / mois. Valable 6 mois renouvelables une fois.

Détail de l'offre Pack SQL Azure

Vous savez maintenant ce qu'est le cloud, et comment fonctionne Windows Azure ! Nous allons pouvoir passer aux choses sérieuses dès le prochain chapitre.

Découvrez aussi ce cours en...

Exemple de certificat de réussite
Exemple de certificat de réussite