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 wird eingestellt. CloudLabs ist die von Microsoft empfohlene Alternative – Labs migrieren

CloudLabs-Architektur und Automatisierung von Infrastruktur-Deployments: Ein technischer Deep-Dive

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 ist eine Hands-on-Lab-Plattform, die zur Planung, Bereitstellung und Verwaltung des Lebenszyklus von Lab-Umgebungen für verschiedenste Szenarien eingesetzt wird, darunter technische Schulungen, Workshops, Branchenkonferenzen, POCs, Demos usw. CloudLabs wird von Technologieunternehmen und Trainern auf der ganzen Welt in einem Umfang genutzt, in dem wir jeden Monat tausende Lab-Umgebungen bereitstellen.

In diesem Artikel werfen wir einen Blick auf die zugrunde liegenden Technologien, mit denen wir die Labs in diesem Umfang mithilfe der Leistungsfähigkeit von Azure verwalten.

Dieser Artikel wird im Rahmen der Applied-Cloud-Stories-Initiative von Microsoft veröffentlicht. Hier finden Sie weitere Details zu dieser Initiative.

CloudLabs-Architektur und zugrunde liegende Technologien

Das folgende Diagramm zeigt die Architektur und den Informationsfluss in CloudLabs auf einer übergeordneten Ebene.

High Level Architecture - CloudLabs-Plattform

CloudLabs wird durchgängig mit Azure-PaaS-Diensten bereitgestellt. Dies ermöglicht es uns, für tausende Deployments zu skalieren, ohne uns um die Verwaltung der zugrunde liegenden Infrastruktur kümmern zu müssen.

Authentifizierung

Für die Authentifizierung verwenden wir Azure AD B2C. Der Einsatz von Azure AD B2C ermöglicht es uns, verschiedene Authentifizierungsmechanismen anzubieten, darunter Azure AD, LinkedIn, Microsoft Account (Live ID) und weitere Identitäten.

Da unser Fokus auf B2B liegt, ermöglicht uns die Nutzung von Azure AD B2C, dass Unternehmen, die AzureAD als Identitätsanbieter verwenden, Single Sign-On für den Zugriff auf das CloudLabs-Administrationsportal nutzen können. Derzeit sind bei uns die Authentifizierung über Azure AD und LinkedIn aktiviert.

CloudLabs-B2C-Anmeldeportal

Anwendungshosting

Wir nutzen verschiedene Azure-PaaS-Technologien, um die einzelnen Komponenten der CloudLabs-Architektur zu hosten. Das Architekturdiagramm enthielt die verwendeten Lösungskomponenten auf übergeordneter Ebene – schauen wir uns nun alle Azure-Dienste an, die wir verwenden. Dazu gehören:

CloudLabs-Entwicklungs- und Deployment-Prozess.

Als DevOps-Plattform nutzen wir Azure DevOps mit vollständig automatisierten Test- und Ausliefer-Pipelines. Der Quellcode wird in mehreren Azure Repos gespeichert.

Deployments werden zunächst in den Dev- und QA-Umgebungen durchgeführt; nach gründlichen Validierungen und Tests werden sie in die Produktion übernommen. Es gibt eine einzige Pipeline, die Build und Release in allen Umgebungen gestaffelt verwaltet.

Das Upgrade des Datenbankschemas erfolgt über Skripte und wird über dieselben Azure Pipelines bereitgestellt. Wir folgen derzeit Blue-Green-Deployment-Methoden. Alle Produktions-Deployments werden manuell genehmigt, während Test-/QA-Deployments bei Abschluss eines Pull Requests im master-Branch automatisiert werden.

Sicherheit

Wir verlassen uns auf die folgenden Sicherheitsfunktionen von Azure, um Zugriffs- und Datensicherheit für die CloudLabs-Plattform zu gewährleisten.

  • Zugriffssicherheit: Wir speichern keinerlei Benutzeranmeldedaten in der Plattform; die Authentifizierung erfolgt über Azure AD B2C, wodurch wir unsere Administratorkonten durch Azure-AD-Premium-Sicherheitsfunktionen wie Conditional Access, Multi-Faktor-Authentifizierung usw. schützen können.
  • Rollenbasierte Zugriffskontrolle: Der Plattformzugriff ist von Grund auf mit RBAC konzipiert, sodass wir Zugriff ausschließlich nach dem Need-to-know-Prinzip gewähren können.
  • Anwendungssicherheit: Alle Web-Apps und API-Apps werden auf Azure App Service mit ausschließlich HTTPS und erzwungener TLS-Version 1.2 gehostet. Wir
  • Datenbanksicherheit: Wir nutzen die Transparent Data Encryption von Azure SQL Database, dynamische Datenmaskierung und mehrere weitere Sicherheitsfunktionen zum Schutz unserer Datenbanken. Der Administratorzugriff auf die Datenbank erfolgt nach dem JIT-Zugriffsprinzip über AAD, wodurch der Zugriff mit MFA-Schutz abgesichert ist. Für verschiedene Berichte und Datenansichten verwenden wir SQL Row-Level Security, um den Datenzugriff zu schützen.
  • Azure Application Gateway WAF V2: Wir setzen Azure Application Gateway WAF v2 im Detect-Modus ein, um Angriffe aus dem Internet zu verhindern.
  • Azure Security CenterundAzure Monitor: Wir nutzen Azure Security Center, um die allgemeine Gesundheit unserer Umgebung aus Sicherheitssicht zu überwachen, wobei Warnmeldungen über Azure Monitor konfiguriert werden.
  • Speicherkonten, die statische Daten hosten, sind durch serverseitige Verschlüsselung und regelmäßige Rotation der Zugriffsschlüssel geschützt.
  • Azure Key Vault wird als sicherer Anmeldeinformationsspeicher genutzt, ohne dass Zugriffsinformationen in Konfigurationsdateien gespeichert werden.

Business Continuity und Disaster Recovery.

CloudLabs-Systeme werden mit hoher Verfügbarkeit als grundlegender Designanforderung für jede Komponente entwickelt. Wir setzen auf jeder Ebene mehrere App Services, API-Management-Instanzen, SQL Elastic Pools und ähnliche Technologien ein, wodurch sichergestellt wird, dass CloudLabs fehlertolerant ist und bei Lastspitzen sowohl vertikal als auch horizontal skaliert werden kann.

Alle CloudLabs-Komponenten verfügen über redundante Deployments in 2 zusätzlichen Azure-Regionen, wobei SQL-Datenbanken in 3 Azure-Regionen repliziert werden. Endbenutzer-Endpunkte werden über Traffic Manager veröffentlicht, um sicherzustellen, dass es bei einem Ausfall keine Auswirkungen auf Endbenutzer gibt, die auf die Anwendungen zugreifen.

Automatisierung von Infrastruktur-Lab-Deployments.

CloudLabs integriert sich über verschiedene SDKs und APIs, insbesondere die Azure-ARM-APIs und die Microsoft-Graph-API, in Microsoft Cloud. Alle Deployments in Azure werden über die API initiiert und über ihren gesamten Lebenszyklus hinweg nachverfolgt.

Alles in CloudLabs wird in Lab-Definitionsvorlagen gespeichert, die verschiedene Deployment-Methoden, Konfigurationsoptionen und Automatisierungsoptionen umfassen. Dazu gehören unter anderem:

  • ARM Templates
  • PowerShell- und CLI-Skripte
  • Python
  • Selenium
  • Plattformerweiterungen
  • Azure API
  • Databricks-Erweiterungen
  • Azure-Machine-Learning-Erweiterungen
  • Synapse-Analytics-Erweiterungen

Die Lab-Definition umfasst verschiedene Möglichkeiten, die Sicherheit der Lab-Umgebung zu erhöhen, darunter Funktionen wie Custom Azure Role und Azure Policy, mit einigen der von der Plattform aktivierten erweiterten Sicherheitskonfigurationen.

CloudLabs bietet außergewöhnliche Lab-Erlebnisse, um unserem Publikum wirkungsvolle Lernerfahrungen zu ermöglichen. Eine der zentralen Anforderungen dafür ist, sicherzustellen, dass die Lab-Umgebungen ab der Anmeldung sofort einsatzbereit sind, ohne zusätzlichen Einrichtungsaufwand. CloudLabs verpackt alle Voraussetzungen und gewünschten Erlebniskonfigurationen in den VM-Images, die anschließend zur Bereitstellung tausender Lab-Umgebungen für viele unserer Kunden verwendet werden.

Wir nutzen Azure Shared Image Gallery zur Speicherung dieser Images. Auch wenn es recht einfach ist, eine Shared Image Gallery einzurichten und darüber VMs bereitzustellen, kann die Sache wirklich außer Kontrolle geraten, wenn es darum geht, hunderte Images bei tausenden Deployments pro Monat zu pflegen.

Wir nutzen eine Kombination aus Azure DevOps, PowerShell, Shared Image Gallery, ARM-Templates und den nativen Fähigkeiten von CloudLabs, um die gesamte Infrastruktur zu automatisieren.

Automatisierung von Shared Image Gallery und VM-Images

Azure Pipelines (Teil von Azure DevOps) wird verwendet, um den Prozess der Image-Aktualisierung und -Replikation zu automatisieren.

Der Ablauf umfasst Folgendes:

  1. Der Administrator lädt ein neues VHD-Image in das definierte Storage-Konto hoch oder erstellt ein Image direkt in Azure.
  2. Azure DevOps erkennt die Änderungen und stellt fest, ob bereits eine bestehende Version des Images in der Shared Image Gallery vorhanden ist.
  3. Basierend auf Punkt 2 erstellt Azure Pipelines entweder eine neue Version des Images in der Shared Image Gallery oder eine neue Image-Definition basierend auf den mit dem Image bereitgestellten Konfigurationen.
  4. Die Pipeline repliziert das Image entsprechend den angegebenen Konfigurationen in mehrere Azure-Regionen.
  5. Der Administrator verwendet ARM-Templates, die auf die Shared Image Gallery verweisen, und aktualisiert die Lab-Definition im CloudLabs-Administrationsportal. Die Templates sind so aufgebaut, dass sie über Azure-Subscriptions und -Regionen hinweg verwendet werden können. Ein Beispiel für das Template wird am Ende dieses Artikels geteilt.
  6. Über CloudLabs können Kunden tausende solcher Instanzen mit nur wenigen Klicks bereitstellen.

Wir arbeiten derzeit daran, den Azure VM Image Builder in die Lab-Deployment-Szenarien zu integrieren, um den Prozess der Image-Erstellung und -Aktualisierung nahtloser und anpassbarer zu gestalten. Wir freuen uns darauf, das Deployment-Erlebnis mit allem zu verbessern, was der VM Image Builder mit sich bringt.

Nutzung verschachtelter Virtualisierung auf Azure für Migrationen lokaler Lab-Infrastrukturen

Traditionell wurde Lab-Infrastruktur auf lokaler Virtualisierungsinfrastruktur bereitgestellt, auf der Hyper-V oder eine ähnliche Hypervisor-Technologie lief. Ein Lab-Deployment umfasste in der Regel einen Satz von VHDs für die verschiedenen VMs im Lab sowie ein in PowerShell erstelltes Deployment-Skript, um diese VMs zu starten. Diese Skripte liefen in der Regel stundenlang und mussten ständig überwacht werden, um sicherzustellen, dass Fehler rechtzeitig erkannt und behoben wurden. Kapazitätsprobleme in Lab-Umgebungen waren keine Seltenheit, was in der Regel dazu führte, dass sich viele Teilnehmer dieselben Lab-VMs teilen mussten. Wir lösen diese Herausforderungen und beseitigen die Möglichkeit einer schlechten Erfahrung für Teilnehmer und Trainer, indem wir die Fähigkeiten der verschachtelten Virtualisierung in Azure nutzen.

Mit CloudLabs helfen wir Trainern dabei, diese lokalen Lab-Infrastrukturen nach Azure zu verlagern, ohne die gesamte Lab-Topologie und die Skripte neu aufbauen zu müssen.

Azure-VMs, die mit den VM-Serien DSv2 und ESv3 laufen, ermöglichen es uns, Hyper-V innerhalb der VM auszuführen und die vollwertige Virtualisierung zu nutzen, um VMs innerhalb der Azure-VM zu hosten. Es stehen verschiedene Netzwerktopologien zur Verfügung, etwa die Nutzung von NAT auf dem Hyper-V-Host, um VMs den Internetzugang zu ermöglichen, oder die Nutzung von RRAS auf Hyper-V, um die Gast-VMs mit anderen Ressourcen im virtuellen Netzwerk von Azure zu verbinden. Je nach Lab-Topologie erfassen wir die erforderliche Netzwerkkonfiguration und automatisieren diese mithilfe von Custom Script Extensions.

Diese Hosts werden anschließend in Images umgewandelt und mit CloudLabs tausende Male automatisiert bereitgestellt.

Wie Kunden CloudLabs nutzen

Kunden nutzen CloudLabs, um jeden Monat tausende Lab-Instanzen mit einem Lebenszyklus von wenigen Stunden bis zu einigen Monaten bereitzustellen. Werfen wir einen Blick auf einige der bisher erfassten Statistiken.

  • 400000+ bereitgestellte Lab-Instanzen
  • 28920+ geschulte Teilnehmer
  • 5000+ Veranstaltungen

Obwohl CloudLabs zur Automatisierung jeder Art von Cloud-Infrastruktur-Deployment eingesetzt werden kann, haben wir festgestellt, dass unsere Kunden das Erlebnis für alle Beteiligten insbesondere in den folgenden Anwendungsfällen verbessern.

  • Interne/externe Schulungen
  • Partner-Enablement
  • Sales-Enablement
  • Orchestrierung von Cloud-Deployments
  • Virtuelle Labs
  • Selbstgesteuertes Lernen
  • Zertifizierungsvorbereitung
  • Hackathons
  • POCs
  • Vertriebsdemos

Ressourcen

  1. Beispiel-ARM-Template mit Shared Image Gallery - Jetzt aufrufen
  2. GitHub-Konto von Spektra Systems mit zahlreichen Repositorys für unsere Code-Beispiele, Lab-Beispiele, Anleitungen usw. - Jetzt aufrufen

Vielen Dank. Wir werden diesen Artikel weiterhin aktualisieren, während wir Änderungen an der Plattform vornehmen und mit Azure weiter innovieren.

Autor- Amit Malik