„Rechnen“ (englisch: compute) heißt in Azure: Ihr Programm läuft irgendwo auf Prozessoren und Arbeitsspeicher. Die Frage ist nur, wie viel von dem Drumherum Sie selbst in der Hand haben wollen. Eine virtuelle Maschine gibt Ihnen ein ganzes Betriebssystem zum Verwalten. Ein Container nimmt Ihnen das Betriebssystem ab. Azure Functions nimmt Ihnen den Server ganz ab, Sie liefern nur Code. Aus Modul B1 kennen Sie diesen Gedanken schon als IaaS, PaaS und Serverless. Diese Lektion zeigt die Azure-Dienste dahinter.

Virtuelle Maschinen

Eine Azure Virtual Machine (virtuelle Maschine, kurz VM) ist ein virtualisierter Server in Azure und ein Dienst der Art Infrastructure as a Service (IaaS). Wie bei einem echten Server bestimmen Sie das Betriebssystem und die Software darauf. Dafür patchen und konfigurieren Sie die Maschine auch selbst. VMs passen laut Microsoft, wenn Sie volle Kontrolle über das Betriebssystem brauchen, eigene Software betreiben oder eine besondere Hosting-Konfiguration benötigen. Typische Einsätze: Test und Entwicklung, das Betreiben von Anwendungen, die Erweiterung des eigenen Rechenzentrums, Notfallwiederherstellung und das Verlagern bestehender Server („Lift and Shift“).

Was zu einer VM gehört

Beim Anlegen wählen Sie die Größe (Anzahl der Prozessorkerne und Menge an Arbeitsspeicher), die Datenträger und das Netzwerk. Azure ordnet Größen in Familien, zum Beispiel B für günstige Test-Workloads, D für allgemeine Zwecke, E für viel Arbeitsspeicher, F für viel Rechenleistung und N mit GPU. Neben der Maschine entstehen unterstützende Ressourcen, standardmäßig in derselben Ressourcengruppe:

  • ein virtuelles Netzwerk mit Subnetz
  • eine Netzwerkkarte (network interface, NIC), die die VM mit dem Netzwerk verbindet
  • eine private IP-Adresse und manchmal eine öffentliche
  • eine Netzwerksicherheitsgruppe (NSG), die den Datenverkehr erlaubt oder blockiert
  • ein Betriebssystem-Datenträger und gegebenenfalls weitere Datenträger
  • in manchen Fällen eine Lizenz für das Betriebssystem

Wichtig für die Kosten: Diese unterstützenden Ressourcen haben teils eigene Kosten, etwa Datenträger und IP-Adressen. Eine Netzwerkkarte oder eine Netzwerksicherheitsgruppe kosten dagegen nichts extra.

Gruppen von VMs

Einzelne VMs reichen für Tests. Für höhere Verfügbarkeit gruppieren Sie sie:

  • Virtual Machine Scale Sets erstellen und verwalten Gruppen identischer VMs mit Lastverteilung. Die Zahl der Instanzen kann nach Bedarf oder Zeitplan automatisch steigen und sinken.
  • Verfügbarkeitsgruppen (availability sets) verteilen VMs innerhalb einer Region auf Updatedomänen und Fehlerdomänen. So trifft ein Wartungsereignis oder ein Hardwarefehler nicht alle zugleich. Sie kosten nichts extra, Sie bezahlen nur die VMs. Microsoft empfiehlt inzwischen für Hochverfügbarkeit eher Scale Sets mit flexibler Orchestrierung, und in Regionen mit Verfügbarkeitszonen sind zonenbasierte Entwürfe meist zu bevorzugen.

Azure Virtual Desktop

Azure Virtual Desktop ist ein Dienst für die Virtualisierung von Desktops und Anwendungen: Benutzer erreichen ein Windows-Desktop oder einzelne Apps aus der Cloud, von vielen Gerätetypen und Orten. Es hängt an Microsoft Entra ID und unterstützt Einzel- und Mehrbenutzersitzungen. Es eignet sich, wenn viele Menschen zentral verwaltete Desktops brauchen, etwa ein verteiltes Support-Team.

Container

Ein Container läuft wie eine VM auf einem Host, bringt aber kein eigenes Betriebssystem zum Verwalten mit. Container sind leichtgewichtig und lassen sich schnell erstellen, vergrößern und stoppen. Azure unterstützt Docker, eine der verbreitetsten Container-Engines. Microsoft nennt drei Dienste, von „schnell gestartet“ bis „tief verwaltet“:

  • Azure Container Instances: der schnellste, einfachste Weg, einen Container zu starten, ohne VMs zu verwalten (PaaS).
  • Azure Container Apps: ähnlich, aber mit eingebauter Lastverteilung und Skalierung (PaaS).
  • Azure Kubernetes Service (AKS): ein Orchestrierungsdienst, der den Lebenszyklus vieler Container verwaltet.

Container passen gut zu Microservices: Sie teilen eine Anwendung in kleine, unabhängige Teile, die sich getrennt ändern und skalieren lassen.

Azure Functions

Azure Functions ist ereignisgesteuertes Serverless-Rechnen. Ein Ereignis, etwa eine Anfrage, ein Zeitgeber oder eine Nachricht, weckt die Funktion. Danach gibt Azure die Ressourcen wieder frei. Sie bezahlen nur für die Rechenzeit, in der die Funktion läuft, und die Funktion skaliert nach Bedarf automatisch. Das passt, wenn Sie sich nur um den Code kümmern wollen und die Arbeit schnell erledigt ist, in Sekunden oder weniger.

Anwendungen hosten

Für Webanwendungen gibt es neben VMs und Containern Azure App Service. Er hostet Web-Apps, API-Apps, WebJobs und Mobile Apps in der Programmiersprache Ihrer Wahl, ohne dass Sie Infrastruktur verwalten. Er skaliert automatisch und bietet Hochverfügbarkeit. Microsoft beschreibt eine Skala: bei VMs haben Sie die meiste Kontrolle, bei App Service den geringsten Betriebsaufwand, Container liegen dazwischen.

Vergleich

Option Kontrolle Sie kümmern sich um Passt zu
Virtuelle Maschine am höchsten Betriebssystem, Updates, Software eigene Software, Lift and Shift
Container mittel Container und Anwendung Microservices, schnelle Skalierung
App Service gering nur die Anwendung Web-Apps und APIs
Azure Functions am geringsten nur den Code kurze, ereignisgesteuerte Aufgaben

Ein Beispiel

Die ausgedachte „Bäckerei Vogel“ nimmt Vorbestellungen online an. Die Bestell-Webseite läuft im App Service, denn sie ist eine gewöhnliche Web-App. Wenn eine Bestellung eingeht, schickt eine Azure Function eine Bestätigungsmail. Sie läuft nur dann, wenn eine Bestellung kommt. Die Warenwirtschaft der Bäckerei ist eine alte Windows-Software, die sich nicht umbauen lässt. Sie läuft unverändert auf einer VM.

Übung 1

Wählen Sie für jedes Szenario eine Rechenart und begründen Sie sie in einem Satz:

  1. Eine Hausverwaltung will ihre alte Verwaltungssoftware, die ein bestimmtes Betriebssystem verlangt, ohne Umbau in die Cloud holen.
  2. Ein Onlineshop soll bei Aktionen automatisch von wenigen auf viele identische Server wachsen.
  3. Eine Firma will jede Nacht eine kleine Aufgabe ausführen, die wenige Sekunden dauert.
  4. Ein Steuerbüro will 30 Mitarbeitenden an wechselnden Orten dieselben Windows-Desktops zur Verfügung stellen.

Lösung 1

  1. Virtuelle Maschine. Die Software braucht ein bestimmtes Betriebssystem und soll nicht umgebaut werden. Das ist Lift and Shift auf IaaS, mit voller Kontrolle über das System.
  2. Virtual Machine Scale Set. Es verwaltet identische, lastverteilte VMs und kann deren Zahl automatisch nach Bedarf erhöhen und senken. Wenn der Shop nicht auf einer VM bleiben muss, wäre auch App Service mit automatischer Skalierung möglich.
  3. Azure Functions. Ein Zeitgeber löst die Funktion aus, sie läuft Sekunden, und bezahlt wird nur die Rechenzeit.
  4. Azure Virtual Desktop. Es liefert zentral verwaltete Windows-Desktops für verteilte Nutzer, angemeldet über Microsoft Entra ID.

Bei Aufgabe 2 gibt es zwei vertretbare Antworten. Entscheidend ist die Begründung: Wer eine VM-Gruppe wählt, behält die Kontrolle über das Betriebssystem, wer App Service wählt, gibt sie für weniger Betriebsaufwand ab.