• 12 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 16/10/2023

Appréhendez le Cloud public de Microsoft

Dans ce chapitre, vous allez aller plus loin que votre “simple” serveur Windows physique, et ce même s’il héberge quelques machines virtuelles. Vous allez découvrir en détail le Cloud. Le Cloud public de Microsoft s’appelle Azure. Il permet, tout comme le Cloud Amazon, Google ou même OVH, de créer des instances assimilables à des machines virtuelles, mais sur un serveur qui ne vous appartient pas.

Qu’est-ce que le Cloud Azure ?

Chez Microsoft, ce service (nommé Azure) propose, en plus des “simples instances” ou VMs, tout un écosystème de services hébergés plus ou moins géré par les équipes de Microsoft.

Ses deux caractéristiques fondamentales :

  • Être hébergé et géré par un tiers ;

  • Être facturé à l’usage, c’est-à-dire que vous pouvez payer uniquement ce que vous consommez. Si vous n’avez besoin que d’un processeur, ou encore de 10 Gio de stockage, pourquoi payer pour plus ? 

Grâce au Cloud, vous pouvez ainsi maîtriser votre consommation et souvent faire des économies par rapport à l’acquisition de votre propre infrastructure.

Prenez en main Azure

Pour commencer sur Azure, il vous suffit de créer un compte à cette adresse. Généralement, et comme chez presque tous les fournisseurs de ce type, vous aurez droit à une sorte de bon d’achat sur les services du fournisseur. Ainsi vous pourrez tester en toute liberté et sans frais ces fameux services.

Une fois votre compte créé, vous avez accès au tableau de bord du portail Azure. Il vous liste les options disponibles sur le menu de gauche, et vous offre une vue de vos ressources sur le reste de l’écran :

Tableau de bord du portail Azure
Tableau de bord du portail Azure

L’avantage ici, c’est que vous avez également un encart “démarrage rapide + tutoriels” qu’il vous suffira de suivre pour être aidé dans vos premières créations. Ces tutoriels sont plutôt bien faits et vous offrent trois possibilités d’utilisation d’Azure :

  1. Via le portail.

  2. Via Azure PowerShell.

  3. Via la ligne de commande Azure CLI.

Trois façon de gérer ses ressources Cloud sur Azure
Trois façon de gérer ses ressources Cloud sur Azure

Je vous propose tout de même et dans un premier temps, de rester sur le portail afin de vous familiariser avec les paramètres de chaque service. Il vous sera d’ailleurs possible de générer les commandes PowerShell et CLI pour faciliter vos prochains déploiements.

Créez votre première instance Cloud

Sur le portail, vous allez pouvoir sélectionner, sur le menu de gauche, Machines virtuelles. Vous arriverez sur une nouvelle fenêtre vous proposant d’ajouter une instance. Sélectionnez Ajouter et vous obtiendrez l’écran de paramétrage avec sept différents onglets permettant de définir précisément les caractéristiques de votre machine virtuelle (De base, Disques, Mise en réseau, Administration, Configuration de l’invité, Étiquettes, Vérifier + créer).

Le premier onglet vous permet de choisir sur quel abonnement vous allez créer votre machine, veillez à bien rester sur l’abonnement gratuit (pour ma part, j’ai déjà utilisé ce crédit gratuit il y a bien longtemps, c’est pourquoi vous observerez sur la capture suivante un abonnement Pay-As-You-Go où je suis facturé uniquement sur ce que je consomme).

Création d’une machine virtuelle
Création d’une machine virtuelle

Après avoir choisi l’abonnement, il vous faut définir un groupe de ressources. Il s’agit d’un regroupement de ressources ayant un objectif identique.

Ensuite, vous aurez à entrer le nom de la machine virtuelle. Encore une fois, un nommage cohérent permettra de faciliter la recherche et l’identification de votre instance. Azure vous demande également une région. Il s’agit du centre de données dans lequel votre machine virtuelle sera provisionnée. Elle peut se trouver n’importe où dans l’un des 54 centres de données disponibles à l’heure actuelle, et gérés par Microsoft.

Vue en 3D de toutes les centres de données (“Régions”) disponibles  source : https://infrastructuremap.microsoft.com/explore
Vue en 3D de toutes les centres de données (“Régions”) disponibles source : https://infrastructuremap.microsoft.com/explore

Après avoir choisi l’emplacement, vous avez la possibilité de définir le niveau de disponibilité de votre machine virtuelle.

Le niveau de disponibilité se présente sous 3 options :

  1. Aucune redondance d’infrastructure requise (pas de haute disponibilité).

  2. Zone de disponibilité.

  3. Groupe à haute disponibilité.

Différents choix possibles concernant la disponibilité sous Azure
Différents choix possibles concernant la disponibilité sous Azure

Ces options vont vous permettre de créer un applicatif avec une disponibilité garantie par Microsoft (sous réserve de suivre les bonnes pratiques). Dans les faits, ces options signifient :

  • "Groupe à Haute Disponibilité" désigne au moins deux machines virtuelles déployées dans différents domaines d’erreur, pour éviter un point unique de défaillance ;

  • "Zone de Disponibilité" désigne une zone isolée du domaine d’erreur dans une région Azure qui fournit une alimentation, un refroidissement et un réseautage redondants.

Il peut également être possible de mettre en œuvre un stockage avec une réplication :

  • Trois fois dans la région choisie ;

  • Trois fois dans deux ou trois datacenters au sein d’une même région ou dans deux régions distinctes ;

  • Vers une région secondaire à des centaines de kilomètres de la région primaire (appelée réplication géoredondante) ;

La zone de disponibilité permet d’aller plus loin dans la conception d’une application avec le schéma suivant :

Schéma Microsoft décrivant les zones de disponibilités
Schéma Microsoft décrivant les zones de disponibilité

Grâce au service Load Balancer (1) qui sera le point d’entrée de votre application, et avec un réseau “front end” (2) et un réseau “back end” (3), vous allez pouvoir mettre en œuvre une application web (4) qui accède à une base de données (5).

Le nombre de vos serveurs web pourra augmenter sans impacter la disponibilité de votre application, grâce à la redirection du trafic liée au load balancer (6 et 7).

Enfin, la taille de votre instance va vous être demandée et va également fortement conditionner le tarif. Pour une image Windows 2019 Datacenter, vous avez près de 122 tailles différentes allant de 1 à 72 CPU et de 0,75 à 432 Gio de RAM, en passant par des variantes avec des disques très haut de gamme capables de gérer des milliers d’opérations de lecture/écriture par seconde.

Dans le cas d’une offre gratuite, vous n’aurez accès qu’à un nombre limité de tailles.

Une fois tous les détails de l’instance définis, vous allez rentrer dans la partie Authentification administrateur, où vous serez amené à nommer votre compte administrateur et générer un mot de passe. Une fois que cela est fait, vous pouvez directement passer à la vérification et à la création de la machine, elle sera approvisionnée en quelques minutes.

La première instance mettra plus de temps à se créer que les suivantes, car il sera nécessaire de créer le groupe de ressources avec les différentes composantes nécessaires à son bon fonctionnement. À savoir :

  • Un réseau virtuel ;

  • Une interface réseau ;

  • L’espace de stockage du disque virtuel ;

  • Une IP publique ;

  • Un pare-feu.

Récapitulatif avant la création de ma machine virtuelle
Récapitulatif avant la création de ma machine virtuelle

Pour mon cas, en PowerShell, il me faudra entrer les commandes suivantes :

<#
.SYNOPSIS
   Deploys a template to Azure

.DESCRIPTION
   Deploys an Azure Resource Manager template

.PARAMETER subscriptionId
   The subscription id where the template will be deployed.

.PARAMETER resourceGroupName
   The resource group where the template will be deployed. Can be the name of an existing or a new resource group.

.PARAMETER resourceGroupLocation
   Optional, a resource group location. If specified, will try to create a new resource group in this location. If not specified, assumes resource group is existing.

.PARAMETER deploymentName
   The deployment name.

.PARAMETER templateFilePath
   Optional, path to the template file. Defaults to template.json.

.PARAMETER parametersFilePath
   Optional, path to the parameters file. Defaults to parameters.json. If file is not found, will prompt for parameter values based on template.
#>

param(
[Parameter(Mandatory=$True)]
[string]
$subscriptionId,

[Parameter(Mandatory=$True)]
[string]
$resourceGroupName,

[string]
$resourceGroupLocation,

[Parameter(Mandatory=$True)]
[string]
$deploymentName,

[string]
$templateFilePath = "template.json",

[string]
$parametersFilePath = "parameters.json"
)

<#
.SYNOPSIS
   Registers RPs
#>
Function RegisterRP {
   Param(
       [string]$ResourceProviderNamespace
   )

   Write-Host "Registering resource provider '$ResourceProviderNamespace'";
   Register-AzureRmResourceProvider -ProviderNamespace $ResourceProviderNamespace;
}

#******************************************************************************
# Script body
# Execution begins here
#******************************************************************************
$ErrorActionPreference = "Stop"

# sign in
Write-Host "Logging in...";
Login-AzureRmAccount;

# select subscription
Write-Host "Selecting subscription '$subscriptionId'";
Select-AzureRmSubscription -SubscriptionID $subscriptionId;

# Register RPs
$resourceProviders = @("microsoft.network","microsoft.compute","microsoft.storage");
if($resourceProviders.length) {
   Write-Host "Registering resource providers"
   foreach($resourceProvider in $resourceProviders) {
       RegisterRP($resourceProvider);
   }
}

#Create or check for existing resource group
$resourceGroup = Get-AzureRmResourceGroup -Name $resourceGroupName -ErrorAction SilentlyContinue
if(!$resourceGroup)
{
   Write-Host "Resource group '$resourceGroupName' does not exist. To create a new resource group, please enter a location.";
   if(!$resourceGroupLocation) {
       $resourceGroupLocation = Read-Host "resourceGroupLocation";
   }
   Write-Host "Creating resource group '$resourceGroupName' in location '$resourceGroupLocation'";
   New-AzureRmResourceGroup -Name $resourceGroupName -Location $resourceGroupLocation
}
else{
   Write-Host "Using existing resource group '$resourceGroupName'";
}

# Start the deployment
Write-Host "Starting deployment...";
if(Test-Path $parametersFilePath) {
   New-AzureRmResourceGroupDeployment -ResourceGroupName $resourceGroupName -TemplateFile $templateFilePath -TemplateParameterFile $parametersFilePath;
} else {
   New-AzureRmResourceGroupDeployment -ResourceGroupName $resourceGroupName -TemplateFile $templateFilePath;
}

Voilà pourquoi il faut commencer par l’utilisation du portail, c’est assez long. Mais une fois maîtrisé, cela vous permettra de générer des machines en gagnant un temps considérable !

Voilà, vous n’avez plus qu’à identifier vos besoins et à créer autant de machines dans autant de groupes de ressources que nécessaire.

En résumé

  • Azure permet de créer des services hébergés dans les infrastructures de Microsoft, dans un réseau de centres de données tout autour de la planète.

  • Il est possible de gérer Azure via trois modes au moins : ligne de commande, PowerShell, ou le portail Web.

  • Il existe plus d’une centaine de services accessibles via Azure, de la machine virtuelle “standard” au services de bases de données à la demande gérés par Microsoft.

  • Azure permet de gérer des instances publiques ou privées accessibles à tous, ou simplement aux réseaux que vous aurez définis.

Vous connaissez désormais Azure, le service Cloud de Microsoft.

Pour se rapprocher encore plus des services liés au web, vous verrez dans le dernier chapitre de ce cours le service web de Windows Server : IIS, qui permet, par exemple, d’héberger une application web.

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