Übersicht über Azure Cloud Services (klassisch)
Wichtig
Cloud Services (klassisch) ist jetzt ab dem 1. September 2024 für alle Kunden veraltet. Alle vorhandenen ausgeführten Bereitstellungen werden beendet und von Microsoft heruntergefahren, und die Daten sind ab Oktober 2024 dauerhaft verloren. In neuen Bereitstellungen sollte das neue auf Azure Resource Manager basierende Bereitstellungsmodell für Azure Cloud Services (erweiterter Support) verwendet werden.
Azure Cloud Services sind ein Beispiel für Platform-as-a-Service (PaaS). Diese Technologie unterstützt genau wie Azure App Service skalierbare und zuverlässige Anwendungen mit geringen Betriebskosten. Azure Cloud Services werden wie App Service auf virtuellen Computern (VMs) gehostet. Sie haben jedoch mehr Kontrolle über die virtuellen Computer. Sie können Ihre eigene Software auf virtuellen Computern installieren, die Azure Cloud Services verwenden, und remote darauf zugreifen.
Mehr Kontrolle bedeutet leider oft auch weniger Benutzerfreundlichkeit. Wenn Sie die zusätzlichen Verwaltungsoptionen nicht benötigen, ist es im Vergleich zu Azure Cloud Services meist schneller und einfacher, Webanwendungen im Web-Apps-Feature in App Service zu implementieren.
Es gibt zwei Arten von Azure Cloud Services-Rollen. Der einzige Unterschied besteht darin, wie Ihre Rolle auf den VMs gehostet wird:
Webrolle: Ihre App wird mithilfe von Internet Information Services (IIS) automatisch bereitgestellt und gehostet.
Workerrolle: IIS wird nicht verwendet; die App wird eigenständig ausgeführt.
Einfache Anwendungen verwenden beispielsweise lediglich eine einzige Webrolle für eine Website. Komplexere Anwendungen verwenden eine Webrolle für eingehende Benutzeranforderungen und delegieren die Verarbeitung dieser Anforderungen an Workerrollen. (Für diese Kommunikation wird Azure Service Bus oder Azure Queue Storage verwendet.)
Die voranstehende Abbildung zeigt, dass alle VMs in einer einzigen Anwendung im gleichen Clouddienst laufen. Benutzer greifen über eine einzige öffentliche IP-Adresse auf die Anwendung zu, und die Anforderungen werden automatisch auf die einzelnen VMs verteilt. Die virtuellen Computer in einer Azure Cloud Services-Anwendung werden von der Plattform so skaliert und bereitgestellt, dass einzelne Fehlerquellen (Single Points of Failure, SPOF) vermieden werden.
Wichtig: Anwendungen werden zwar auf virtuellen Computern ausgeführt, Azure Cloud Services stellen jedoch PaaS und nicht Infrastructure-as-a-Service (IaaS) bereit. Dies können Sie sich folgendermaßen vorstellen. Mit IaaS, z.B. Azure Virtual Machines, erstellen und konfigurieren Sie zuerst die Umgebung, in der Ihre Anwendung ausgeführt wird. Dann stellen Sie Ihre Anwendung in dieser Umgebung bereit. Sie sind zu einem großen Teil für die Verwaltung dieser Umgebung verantwortlich und müssen beispielsweise neue gepatchte Versionen des Betriebssystems auf den einzelnen virtuellen Computern bereitstellen. Im Gegensatz dazu ist die Umgebung bei PaaS gewissermaßen bereits vorhanden. Somit müssen Sie in diesem Fall nur noch Ihre Anwendung bereitstellen. Sie müssen sich weder um die Verwaltung der Plattform noch um das Aufspielen neuer Betriebssystemversionen kümmern.
Skalierung und Verwaltung
Mit Azure Cloud Services erstellen Sie keine virtuellen Computer. Stattdessen teilen Sie Azure mithilfe einer Konfigurationsdatei mit, wie viele Instanzen Sie benötigen (beispielsweise „drei Webrolleninstanzen“ und „zwei Workerrolleninstanzen“), und die Plattform erstellt diese Instanzen dann für Sie. Sie wählen zwar die Größe der zugrunde liegenden virtuellen Computer aus, müssen diese aber nicht selbst erstellen. Wenn Ihre Anwendung eine höhere Last zu bewältigen hat, können Sie bei Azure weitere virtuelle Computer anfordern. Nimmt die Last wieder ab, können Sie die Instanzen herunterfahren, sodass sie keine weiteren Kosten verursachen.
Azure Cloud Services-Anwendungen werden Benutzern üblicherweise in zwei Schritten bereitgestellt. Zunächst führt ein Entwickler den Upload der Anwendung in den Stagingbereich der Plattform durch. Wenn der Entwickler die Anwendung live schalten möchte, kann er sie über das Azure-Portal vom Staging in die Produktion wechseln. Der Wechsel zwischen Staging und Produktion erfolgt ohne Ausfallzeit. Dadurch können laufende Anwendungen ohne Beeinträchtigung der Benutzer auf neue Versionen aktualisiert werden.
Überwachung
Azure Cloud Services bieten außerdem Überwachungsfunktionen. Genau wie bei Virtual Machines werden Ausfälle von physischen Servern erkannt und die entsprechenden virtuellen Computer auf einem anderen Server neu gestartet. Neben Hardwarefehlern erkennen Azure Cloud Services aber auch Ausfälle von virtuellen Computern und Anwendungen. Im Gegensatz zu Virtual Machines verfügt Cloud Services in jeder Web- und Workerrolle über einen Agent. Dadurch können bei einem Ausfall neue virtuelle Computer und Anwendungsinstanzen gestartet werden.
Das PaaS-Konzept von Azure Cloud Services hat noch weitere Auswirkungen. Einer der wichtigsten Aspekte ist, dass Sie Anwendungen für diese Technologie so entwickeln sollten, dass sie auch dann ordnungsgemäß funktionieren, wenn eine Instanz einer Web- oder Workerrolle ausfällt. Um dieses Ziel zu erreichen, sollten Azure Cloud Services-Anwendungen ihren Zustand nicht im Dateisystem der eigenen virtuellen Computer speichern. Im Gegensatz zu VMs, die mit Virtual Machines erstellt werden, sind Schreibvorgänge auf Azure Cloud Services-VMs nicht persistent. Es gibt nichts Vergleichbares zu einem Virtual Machines-Datenträger. Azure Cloud Services-Anwendungen müssen daher sämtliche Zustandsinformationen in Azure SQL-Datenbank, Blobs, Tabellen oder auf andere externe Speichermedien schreiben. Auf diese Weise erstellte Anwendungen zeichnen sich durch eine bessere Skalierbarkeit und Fehlerresistenz aus. Skalierbarkeit und Resilienz sind beide wichtige Ziele von Azure Cloud Services.