Mise en place d’un Azure Disaster Recovery sur un environnement Azure Virtual Desktop

Dans le cloud, il faut anticiper les pannes. Au lieu d’essayer d’empêcher toutes les défaillances, l’objectif est de réduire les répercussions d’une défaillance potentielle au niveau de chaque composant. Dans ce cas, les stratégies de sauvegarde et de récupération deviennent importantes.

Azure propose une solution de récupération d’urgence de bout en bout, simple, sécurisée, évolutive et rentable, qui peut être intégrée à des solutions locales de protection des données. Il est donc possible d’assurer une continuité de service par la réplication des ressources sur une seconde région.

Voilà pour la définition officielle côté Microsoft.

Je trouve cette image d’architecture assez parlante : le but d’un Disaster Recovery est bien de répliquer un site de production existante vers un second site, et d’assurer une synchronisation des données pour avoir une reprise d’activité des plus performantes.

Voici un exemple d’architecture Azure, redondée en totalité sur une seconde région Azure.

Contexte : Azure Virtual Desktop

Pour les architectures basées sur Azure Virtual Desktop, le fonctionnement est identique : je vais répliquer les services suivants dans une seconde région Azure :

  • Active Directory : ici Azure Active Directory Domain Services
  • Machine virtuelle : composant principal de AVD
  • Disque managé : utilisé pour OS
  • Compte de stockage : utilisé pour les profils utilisateurs via la solution FSLogix

Il est également possible de répliquer les ressources propres à Azure Virtual Desktop dans une seconde région, telles que :

  • Host Pool
  • Workspace
  • Applications groups

Je ne vais pas faire cette réplication globale dans ce billet, car je souhaite vous montrer ici le processus d’auto-enrôlement des machines virtuelles, issues du Test Failover, directement dans l’environnement Azure Virtual Desktop existant.

Je vais détailler de manière assez rapide la mise en place du premier environnement de production AVD, hébergé sur Suisse Nord. Cela reste un déploiement classique, car il ne nécessite pas de spécificités particulières pour la mise en place du Disaster Recovery, installé dans un second temps.

Etape I : Création d’un domaine Active Directory

La première étape consiste à la création du domaine. Cette solution est obligatoire pour la mise en place de tout environnement Azure Virtual Desktop.

Comme indiqué plus haut, j’ai choisi d’utiliser le service Azure Active Directory Domain Services. Pour rappel, il s’agit d’un domaine managé par Microsoft et c’est une ressource unique par Tenant :

What are the Differences Between Azure Active Directory and Azure Active  Directory Domain Services?

Alternative : Il est malgré tout possible de choisir un serveur Active Directory sur une machine virtuelle.

Voici une vidéo très explicative de Travis Roberts, qui montre les différences entre Active Directory, Azure Active Directory et Azure Active Directory Domain Services

Pour pouvoir répliquer mon service AADDS dans une seconde région Azure, j’ai choisi le SKU “Enterprise” car le SKU “Standard” ne permet pas d’utiliser la fonction Réplica Set. Pas de panique, ce SKU reste modifiable, même après la création du service AADDS et comme expliqué ici :

Merci à AnubhavinIT pour cette démonstration d’installation d’AADDS.

Etape II : Création d’une image pour les machines virtuelles

Encore une fois, je ne vais pas m’étendre en détail sur ce processus de création d’une image pour votre environnement Azure Virtual Desktop. A vrai dire, il ne diffère en rien de la préparation d’une image en dehors du cloud. L’idée générale ici est de créer un ensemble d’applicatifs et de configurations pour automatiser le processus de création de machines virtuelles dans votre environnement AVD.

La dernière vidéo complétement déjantée de Dean Cefola le montre très bien ????.

Etape III : Création d’un environnement Azure Virtual Desktop

Une fois l’image “prête à l’emploi”, nous allons pouvoir créer notre environnement Azure Virtual Desktop. Cette création va mettre en place les ressources Azure suivantes :

  • Host pool
  • x machine(s) virtuelle(s)
  • Workspace
  • Applications groups
Pour être toujours complet dans le processus de création AVD, je vous conseille cette vidéo de Mike Rodrick sur cette étape.

Etape IV : Mise en place du compte de stockage FSLogix

Le service Azure Virtual Desktop recommande les conteneurs de profils FSLogix en tant que solution de profil utilisateur. FSLogix est conçu pour l’itinérance des profils dans des environnements informatiques à distance, comme Azure Virtual Desktop. Il stocke un profil utilisateur complet dans un seul conteneur.

Source : Microsoft
FSLogix on Twitter: "New Microsoft learn module: Separate user profiles  from virtual machines with FSLogix profiles within Windows Virtual Desktop.  Learn more here: https://t.co/LlzMPK43Oa… https://t.co/mRbliUqBIo"
L’idée générale de séparer le profil utilisateur de la VM permet faciliter la mise à jour des images, de laisser l’utilisateur se connecter sur une autre VM en y retrouvant toutes ses applications et ses datas.
Pour comprendre en détail son fonctionnement et son utilité dans notre architecture AVD, quoi de mieux que de demander encore une fois à Dean.

Point important : L’installation de FSLogix nécessite quelques étapes, notamment au niveau de l’application des droits utilisateurs sur le file share (NTFS + RBAC).

Une bonne vidéo vaut toujours que de longues explications, merci Travis Roberts.

Etape V : Mise en place du Disaster Recovery via Azure Site Recovery

Notre environnement de production de Azure Virtual Desktop est maintenant prêt, nous allons pouvoir commencer la mise en place de la solution de Disaster Recovery.

Pour vous assurer que les utilisateurs peuvent toujours se connecter pendant une panne de région, vous devez répliquer leurs machines virtuelles à un autre emplacement. En cas de panne, le site principal bascule vers les machines virtuelles répliquées dans l’emplacement secondaire. Les utilisateurs peuvent continuer à accéder aux applications à partir de l’emplacement secondaire sans interruption. En plus de la réplication de machine virtuelle, vous devez conserver les identités utilisateur accessibles à l’emplacement secondaire. Si vous utilisez des conteneurs de profils, vous devrez également les répliquer. Enfin, assurez-vous que vos applications d’entreprise qui reposent sur les données de l’emplacement principal peuvent basculer avec le reste des données.

Source : Microsoft

Dans mon cas, je vais utiliser le service Azure Site Recovery pour assurer la réplication des machines virtuelles. En effet ce service assure une réplication constante des données dans Azure.

Attention : pour faire un DR complet, il faudra aussi prendre en considération la réplication du compte de stockage utilisé pour les profils gérés par FSLogix.

Activer la réplication d’une machine virtuelle peut se faire directement depuis l’interface de la VM.

Je vais pouvoir choisir ma région de réplication et personnaliser certains paramètres de configuration. Il n’est pas obligatoire de localiser la réplication sur la région paire de la première. Des coûts de bande passante entre région seront évidemment facturés par Microsoft.

J’ai déjà créé au préalable un premier groupe de ressources et un premier réseau virtuel dans ma seconde région, j’ai donc pu les sélectionner sans souci.

On peut donc démarrer la réplication juste après :

Ce processus d’initialisation prend un peu de temps, mais peut-être suivi par les notifications Azure.
Une fois la première réplication entièrement terminée, nous retrouvons sur la machine virtuelle son état de DR et toutes les informations associées.
Voici les ressources Azure créées dans la seconde région Azure. Finalement, nous n’avons qu’un compte de stockage et qu’un réseau virtuel.

Avant de démarrer la bascule des VMs dans AVD vers la seconde région Azure, je souhaite vous montrer l’état d’environnement de Azure Virtual Desktop :

Le Remote Desktop est bien accessible aux utilisateurs via l’application AVD Remote Desktop ou l’accès WEB.

Pour vérifier le bon fonctionnement du Disaster Recovery, qui je le rappelle doit TOUJOURS être déclenché manuellement, nous allons utiliser la fonction “Test Failover” de ce dernier :

  • Je commence par éteindre les machines virtuelles AVD déjà présentes sur Suisse Nord.
  • Je déclenche le Test Failover sur la ou les VMs AVD.
Un DR, exercice ou non, doit TOUJOURS être déclenché manuellement.

Pourquoi cela ?

Cela tient à une propriété d’enrôlement automatique des machines virtuelles à AVD.

Du fait que les nouvelles machines virtuelles vont avoir le même nom de machine que les précédentes, je souhaite vous montrer ici l’interruption de service, puis la reprise d’activité avec les nouvelles machines dans la seconde région Azure :

L’arrêt des machines virtuelles entraîne un service indisponible dans Azure Virtual Desktop.

Une fois le failover déclenché sur les deux machines virtuelles de mon environnement AVD, on retrouve toutes les nouvelles ressources Azure, automatiquement créées dans la seconde région Ouest Europe :

Copie d’écran des ressource présentes dans le groupe de ressources ASR.
Copie d’écran de ma liste de VMs : on retrouve bien donc deux VMs allumées (Ouest Europe) et deux VMs éteintes (Suisse Nord).

Résultat constaté : quelques minutes plus tard, je retrouve donc un environnement Azure Virtual Desktop opérationnel, sans aucune action supplémentaire de ma part :

Attention une VM qui passe peut en cacher une autre !
On peut noter que la région indique toujours la Région Azure Suisse nord car l’enrôlement de la nouvelle machine virtuelle s’appuie toujours sur les propriétés de la machine originelle.

Côté utilisateur : les utilisateurs peuvent donc se reconnecter à Azure Virtual Desktop :

Aperçu utilisateur via l’application Remote Desktop dédiée à Azure Virtual Desktop.

Note : Une fois le test de Failover réussi, pensez à nettoyer les ressources créées pour l’occasion et rallumer les machines virtuelles de production :

Une fonctionnalité de nettoyage des ressources issues du test du DR est directement disponible ici.

Résultat attendu :

Une fois le nettoyage démarré et les VMs de production rallumées : les machines virtuelles de production reprendront leur place dans l’host pool de Azure Virtual Desktop :

Le statut des VMs dans le host pool AVD retourne en « Unvailable » lorsque je le nettoie les ressources issue du test du Failover.
Le statut des VMs de retourne en « Available » lorsque je redémarre les machines de productions dans Suisse Ouest.

Conclusion

J’espère avoir été assez claire dans ce billet pour vous permettre de faire votre propre test dans votre environnement Azure Virtual Desktop.

Attention rappel, je n’ai pas parlé de la réplication de compte de stockage pour FSLogix, lui aussi à prendre en compte dans une solution de disaster recovery complète.

N’hésitez pas à faire part de vos réactions ou questions dans les commentaires ????

Mettre en place un Disaster Recovery sur Suisse Ouest

Carte représentant les régions Microsoft Azure à travers le monde
(Crédits : Microsoft).

Un des plus grands atouts de Microsoft Azure est bien le nombre de régions disponibles à travers le monde. A l’heure j’écris ce billet, nous pouvons déjà compter sur plus de 65 régions disponibles. Par région, j’entends que chacune d’entre elle dispose d’un ou plusieurs centres de données, appelés également zone de disponibilité.

Quoi de neuf en 2021 ?

L’année 2021 va continuer sur cette forte progression puisqu’il a été annoncé lors de l’Ignite 2021, que chaque région Azure aura droit à des zones de disponibilités en son sein. Aucun calendrier précis n’a été communiqué pour l’heure.

En revanche, chaque région Azure disponible se retrouve liée à une région paire au sein de la même zone géographique. Ces deux régions sont donc spécéfiquement reliées pour obtenir une faible latence mais aussi des services supplémentaires, comme de la continuité d’activité en cas de grand sinistre.

Les régions paires ne sont jamais mises à jour en même temps. La région paire va servir de stockage de secours pour les ressources configurées en GRS (Geo-redundant storage).

Pour tout comprendre sur les principes de régions et de disponibilités, je ne peux que vous conseiller l’excellente vidéo de Travis Roberts :

Et la Suisse dans tout ça ?

Microsoft Azure est implanté sur le territoire Suisse depuis 2019. Cela rend possible la mise en place d’un nouveau tenant 365 dans le pays helvétique, mais aussi le placement de ressources Azure. Il s’agit ici d’une évolution importante pour les entreprises et les organisations ayant des besoins en matière de résidence, de sécurité et de conformité des données.

Azure est présent sur Suisse dans deux régions distinctes: la Suisse occidentale située à Genève et la Suisse du Nord située à Zurich.

Deux régions Azure sont donc disponibles sur Suisse, mais cela ne veut pas dire que les deux sont accessibles pour tous. En effet, la région Suisse Nord reste à ce jour la région principale pour cette zone géographique. Il est malgré tout possible de faire une demande auprès de Microsoft pour installer des environnements de production sur Suisse Ouest, mais cette demande devra être motivée par son caractère stratégique et/ou critique.

Et si l’on souhaite mettre un disaster recovery sur la région paire ?

Pour rappel, un disaster recovery est une solution de réplication vers un lieu géographique éloigné pour assurer une continuité de service. L’intérêt de ce type de service est de limiter certains coûts liés à l’infrastructure secondaire. En effet, Azure propose un service appelé Azure Site Recovery, qui va se charger de répliquer les données en continu. Les ressources ne sont créées qu’en cas de failover (bascule). On ne paye donc que pour le stockage répliqué sur la seconde région. Ce schéma ci-dessous montre bien l’effort d’architecture pour assurer une continuité pour les 3 couches de service en cas de grand sinistre :

Azure Site Recovery | Microsoft Azure
Exemple de réplication d’architecture entre deux régions Azure. Traffic manager sera en mesure de détecter tout seul que la première région ne répond plus aux requêtes et pourra donc rediriger tous les flux vers la seconde région.

Pour installer notre Azure Site Recovery en Suisse Ouest, nous aurons donc besoin au préalable de faire une demande auprès des services de Support Microsoft. Un processus de demande d’accès aux régions Azure est disponible ici. A noter qu’en cas d’achat des ressources Azure par un Cloud Service Provider (CSP), cette demande devra être faite directement auprès de leurs services afin d’être correctement traitée. Une fois la demande validée par Microsoft, vous pourrez donc avoir « Suisse Ouest » dans la liste des régions disponible lors de la création de votre Azure Site Recovery.

Microsoft Azure Regions in Switzerland now available - Thomas Maurer

Vous voilà prêt à mettre tout ça en place !

Quelques conseils :

  • La création du groupe de ressource devra aussi faire sur la région paire (Suisse Ouest). Vous pourrez rencontrer un blocage lors de la configuration de la réplication avec Azure Site Recovery si ce dernier se trouve également dans un groupe de ressource créé sur Suisse Nord. Après réflexion, cela semble logique car le sinistre risquerait d’empêcher d’accéder à votre ressource, située dans une autre région non impactée, mais dont son groupe de ressource l’est potentiellement.
  • Comme toujours, avant toute mise en place de ressource Azure, vérifier la disponibilité de tous les services nécessaires dans ladite région, afin de vous retrouver bloqué en milieu de déploiement.

????