Skip to content

What brings you to CloudLabs?

We tailor the next page to what matters most for your role. You can change this anytime from the footer.

Azure Lab Services prend sa retraite. CloudLabs est l'alternative recommandée par Microsoft – Migrez vos labs

Architecture CloudLabs et automatisation des déploiements d'infrastructure : analyse technique approfondie

Ready to See CloudLabs in Action?

Turn your ideas into hands-on experiences. Tell us what you're looking for, and team CloudLabs will help you find the right solution.

By clicking Submit, I agree to the use of my personal data in accordance with the Spektra Systems Privacy Notice. Spektra Systems will not sell, trade, lease, or rent your personal data to third parties. The Google Privacy Policy and Terms of Service apply.

CloudLabs est une plateforme de laboratoires pratiques utilisée pour planifier, provisionner et gérer le cycle de vie des environnements de laboratoire pour divers scénarios, notamment la formation technique, les ateliers, les conférences sectorielles, les POCs, les démonstrations, etc. CloudLabs est utilisé par des entreprises technologiques et des formateurs du monde entier, à une échelle où nous provisionnons des milliers d’environnements de laboratoire chaque mois.

Dans cet article, nous allons nous plonger dans les technologies sous-jacentes que nous utilisons pour gérer les laboratoires à cette échelle grâce à la puissance d’Azure.

Cet article est publié dans le cadre de l’initiative Applied Cloud Stories de Microsoft. Voici le lien vers plus de détails sur cette initiative.

Architecture CloudLabs et technologies sous-jacentes

Le schéma suivant illustre l’architecture et le flux d’informations dans CloudLabs à un niveau général.

Architecture de haut niveau - Plateforme CloudLabs

CloudLabs est déployé en utilisant des services PaaS Azure tout au long de la solution. Cela nous permet de monter en charge pour des milliers de déploiements sans avoir à nous soucier de la gestion de l’infrastructure sous-jacente.

Authentification

Nous utilisons Azure AD B2C pour l’authentification. L’utilisation d’Azure AD B2C nous permet de proposer divers mécanismes d’authentification, notamment Azure AD, LinkedIn, Microsoft Account (Live ID) et d’autres identités.

Notre cible étant le B2B, l’utilisation d’Azure AD B2C permet aux entreprises utilisant AzureAD comme fournisseur d’identité de recourir à l’authentification unique (SSO) pour accéder au portail d’administration de CloudLabs. À l’heure actuelle, l’authentification Azure AD et LinkedIn est activée.

Portail de connexion B2C de CloudLabs

Hébergement des applications

Nous exploitons diverses technologies PaaS d’Azure pour héberger les différents composants de l’architecture CloudLabs. Le schéma d’architecture incluait les composants de la solution utilisés à un niveau général ; examinons maintenant tous les services Azure que nous utilisons. Cela comprend :

Processus de développement et de déploiement de CloudLabs.

Nous utilisons Azure DevOps comme plateforme DevOps, avec des pipelines de test et de livraison entièrement automatisés. Le code source est stocké dans plusieurs Azure Repos.

Les déploiements sont d’abord effectués dans les environnements de développement et de contrôle qualité ; après validations et tests approfondis, ils sont ensuite poussés en production. Un pipeline unique est conçu pour gérer la compilation et la mise en production dans tous les environnements de manière échelonnée.

La mise à niveau du schéma de base de données est effectuée via des scripts et déployée par les mêmes Azure Pipelines. Nous suivons actuellement des méthodologies de déploiement blue-green. Tous les déploiements en production sont approuvés manuellement, tandis que les déploiements de test/contrôle qualité sont automatisés à l’achèvement d’une pull request sur la branche master.

Sécurité

Nous nous appuyons sur les capacités de sécurité suivantes d’Azure pour assurer la sécurité des accès et des données de la plateforme CloudLabs.

  • Sécurité des accès : Nous ne stockons aucune information d’identification des utilisateurs dans la plateforme ; l’authentification est gérée via Azure AD B2C, ce qui nous permet de protéger nos comptes administrateurs grâce aux fonctionnalités de sécurité Azure AD Premium telles que Conditional Access, l’authentification multifacteur, etc.
  • Contrôle d’accès basé sur les rôles : L’accès à la plateforme est conçu autour du RBAC dès le départ, ce qui nous permet de fournir un accès uniquement sur la base du besoin d’en connaître.
  • Sécurité des applications : Toutes les applications web et applications API sont hébergées sur Azure App Service avec HTTPS obligatoire et TLS version 1.2 imposé. Nous
  • Sécurité de la base de données : Nous exploitons le chiffrement transparent des données d’Azure SQL Database, le masquage dynamique des données et plusieurs autres capacités de sécurité pour protéger nos bases de données. L’accès administrateur à la base de données est activé selon le principe d’accès JIT via AAD, ce qui sécurise l’accès avec une protection MFA. Pour divers rapports et vues de données, nous utilisons la sécurité au niveau des lignes (Row-level security) de SQL pour protéger l’accès aux données.
  • Azure Application Gateway WAF V2 : Nous exploitons Azure Application Gateway WAF v2 en mode détection pour prévenir toute attaque provenant d’internet.
  • Azure Security CenteretAzure Monitor : Nous exploitons Azure Security Center pour surveiller la santé globale de notre environnement du point de vue de la sécurité, avec des alertes configurées via Azure Monitor.
  • Les comptes de stockage hébergeant des données statiques sont protégés par un chiffrement côté serveur et une rotation régulière des clés d’accès.
  • Azure Key Vault est utilisé comme coffre-fort sécurisé pour les identifiants, sans qu’aucune information d’accès ne soit stockée dans les fichiers de configuration.

Continuité d’activité et reprise après sinistre.

Les systèmes CloudLabs sont conçus avec la haute disponibilité comme exigence de conception fondamentale pour chaque composant. Nous utilisons plusieurs app services, instances d’API Management, SQL Elastic Pools et technologies similaires à chaque niveau, ce qui garantit que CloudLabs est tolérant aux pannes avec la capacité de monter en charge verticalement ou horizontalement en cas de pics de charge.

Tous les composants de CloudLabs disposent de déploiements redondants dans 2 régions Azure supplémentaires, les bases de données SQL étant répliquées dans 3 régions Azure. Les points de terminaison destinés aux utilisateurs finaux sont publiés via Traffic Manager afin de garantir qu’en cas de panne, il n’y ait aucun impact pour les utilisateurs finaux accédant aux applications.

Automatisation des déploiements de laboratoires d’infrastructure.

CloudLabs s’intègre avec Microsoft Cloud via divers SDK et API, en particulier les API Azure ARM et l’API Microsoft Graph. Tous les déploiements sur Azure sont initiés via API et suivis tout au long de leur cycle de vie.

Tout dans CloudLabs est stocké dans des modèles de définition de laboratoire, qui comprennent diverses méthodes de déploiement, choix de configuration et options d’automatisation. Certains d’entre eux incluent :

  • ARM Templates
  • Scripts PowerShell et CLI
  • Python
  • Selenium
  • Extensions de plateforme
  • Azure API
  • Extensions Databricks
  • Extensions Azure Machine Learning
  • Extensions Synapse Analytics

La définition de laboratoire comprend diverses façons de renforcer la sécurité de l’environnement de laboratoire, notamment des capacités telles que Custom Azure Role, Azure Policy, avec certaines des configurations de sécurité avancées activées par la plateforme.

CloudLabs offre des expériences de laboratoire exceptionnelles afin de proposer des expériences d’apprentissage percutantes à notre public. L’une des principales exigences à cet effet est de garantir que les environnements de laboratoire soient prêts à l’emploi dès l’inscription, sans besoin de configuration supplémentaire. CloudLabs regroupe tous les prérequis et configurations d’expérience souhaitées dans les images des VM, qui sont ensuite utilisées pour déployer des milliers d’environnements de laboratoire pour bon nombre de nos clients.

Nous utilisons Azure Shared Image Gallery pour stocker ces images. Bien qu’il soit assez simple de configurer une Shared Image Gallery et de l’utiliser pour déployer des VM, les choses peuvent vraiment devenir difficiles à gérer lorsqu’on parle de maintenir des centaines d’images avec des milliers de déploiements chaque mois.

Nous utilisons une combinaison d’Azure DevOps, PowerShell, Shared Image Gallery, ARM templates et des capacités natives de CloudLabs pour automatiser l’ensemble de l’infrastructure.

Automatisation de Shared Image Gallery et des images de VM

Azure Pipelines (qui fait partie d’Azure DevOps) est utilisé pour automatiser le processus de mise à jour et de réplication des images.

Le flux comprend les étapes suivantes :

  1. L’administrateur télécharge une nouvelle image VHD vers le compte de stockage défini ou crée une image directement dans Azure.
  2. Azure DevOps détecte les changements et identifie si une version existante de l’image est déjà présente dans la Shared Image Gallery.
  3. Sur la base du point 2, Azure Pipelines crée une nouvelle version de l’image dans la Shared Image Gallery ou crée une nouvelle définition d’image basée sur les configurations fournies avec l’image.
  4. Le pipeline réplique l’image vers plusieurs régions Azure en fonction des configurations spécifiées.
  5. L’administrateur utilise des modèles ARM faisant référence à la Shared Image Gallery et met à jour la définition de laboratoire dans le portail d’administration CloudLabs. Les modèles sont conçus de manière à pouvoir être utilisés dans différentes souscriptions et régions Azure. Un exemple de modèle est partagé à la fin de cet article.
  6. Grâce à CloudLabs, les clients peuvent déployer des milliers de ces instances en quelques clics seulement.

Nous travaillons actuellement à l’intégration d’Azure VM Image Builder dans les scénarios de déploiement de laboratoires, afin de rendre le processus de création et de mise à jour des images plus fluide et personnalisable. Nous sommes impatients d’améliorer l’expérience de déploiement avec tout ce que VM Image Builder apporte.

Utilisation de la virtualisation imbriquée sur Azure pour les migrations d’infrastructure de laboratoire sur site

Traditionnellement, l’infrastructure de laboratoire a été déployée sur une infrastructure de virtualisation sur site exécutant Hyper-V ou une technologie d’hyperviseur similaire. Le déploiement d’un laboratoire impliquait généralement un ensemble de VHD pour les différentes VM du laboratoire, ainsi qu’un script de déploiement conçu en PowerShell pour démarrer ces VM. Ces scripts s’exécutaient généralement pendant des heures et devaient être surveillés en permanence pour s’assurer que toute défaillance soit détectée et corrigée à temps. Il n’était pas rare de rencontrer des problèmes de capacité dans les environnements de laboratoire, ce qui conduisait généralement de nombreux participants à partager les mêmes VM de laboratoire. Nous résolvons ces défis et éliminons la possibilité d’une mauvaise expérience pour les participants et les formateurs en utilisant les capacités de virtualisation imbriquée d’Azure.

Avec CloudLabs, nous aidons les formateurs à migrer ces infrastructures de laboratoire sur site vers Azure sans avoir à reconstruire l’ensemble de la topologie et des scripts du laboratoire.

Les VM Azure exécutant les séries de VM DSv2 et ESv3 nous permettent d’exécuter Hyper-V à l’intérieur de la VM et d’utiliser une virtualisation complète pour héberger des VM au sein de la VM Azure. Plusieurs topologies réseau sont disponibles, comme l’utilisation de NAT sur l’hôte Hyper-V pour permettre l’accès à internet aux VM, ou l’utilisation de RRAS sur Hyper-V pour connecter les VM invitées à d’autres ressources s’exécutant dans le réseau virtuel Azure. Selon la topologie du laboratoire, nous capturons la configuration réseau requise et l’automatisons à l’aide de Custom Script Extensions.

Ces hôtes sont ensuite convertis en images et déployés avec CloudLabs des milliers de fois de manière automatisée.

Comment les clients utilisent CloudLabs

Les clients utilisent CloudLabs pour déployer des milliers d’instances de laboratoire chaque mois, avec un cycle de vie allant de quelques heures à quelques mois. Examinons quelques-unes des statistiques dont nous disposons à ce jour.

  • 400000+ instances de laboratoire déployées
  • 28920+ participants formés
  • 5000+ événements

Bien que CloudLabs puisse être utilisé pour automatiser tout type de déploiement d’infrastructure cloud, nous avons constaté que nos clients améliorent l’expérience de chacun dans les cas d’usage suivants.

  • Formation interne/externe
  • Habilitation des partenaires
  • Habilitation des ventes
  • Orchestration des déploiements cloud
  • Laboratoires virtuels
  • Apprentissage à son propre rythme
  • Préparation aux certifications
  • Hackathons
  • POCs
  • Démonstrations commerciales

Ressources

  1. Exemple de modèle ARM utilisant Shared Image Gallery - Accéder maintenant
  2. Compte GitHub de Spektra Systems contenant de nombreux dépôts pour nos exemples de code, exemples de laboratoires, guides, etc. - Accéder maintenant

Merci. Nous continuerons à mettre à jour cet article au fur et à mesure des évolutions apportées à la plateforme et de nos innovations avec Azure.

Auteur- Amit Malik