Azure-Verwaltung: Die Qual der Wahl

5. Oktober 2017

Das Bereitstellen von Diensten, Apps und Ressourcen im unternehmensinternen Rechenzentrum (RZ) erscheint für viele Firmen nicht mehr zeitgemäß. In der Regel lassen sich Zugriffszeiten verringern, Hochverfügbarkeit erhöhen und Kosten einsparen, wenn bestimmte Services in die Cloud ausgelagert werden. An dieser Stelle setzen die IT-Verantwortlichen auf externe Cloud-Anbieter, hosten ihre „eigene“ Cloud, oder setzen auf hybride Lösungsansätze. Falls die Wahl auf Microsofts Cloud-Plattform „Azure“ gefallen sein sollte, setzen die Systembetreuer oftmals die Web-basierte Konfigurationsmethode ein, um die „ersten Schritte“ zu unternehmen. Warum auch nicht, denn mit dem Azure-Kontrollzentrum lassen sich Ressourcen anlegen, Konfigurationsinformationen abrufen, oder den „alltäglichen Admin-Pflichten“ nachkommen. Warum sollten die Administratoren sich nicht immer auf das Azure-Portal verlassen?

Neuheiten bei Microsoft Azure werden in der Regel zuerst über die „REST API“, danach mittels der Powershell (PS), danach mit Hilfe von Azure CLI und zuletzt über das Portal verfügbar. Falls die Systembetreuer auf die „neuesten“ Features zugreifen möchten, ist das Azure-Portal nicht unbedingt die beste Wahl.

Müssen etwa sehr viele VMs angelegt werden, ist das Azure-Portal nicht unbedingt die effektivste Lösung. Denn um eine VM zu konfigurieren, werden die Administratoren einige Minuten benötigen, bei eine großen Anzahl an zu erstellenden VMs würden die Systembetreuer zu viel Zeit „verschwenden“. Zudem wird die hundertfache Wiederholung von bestimmten Arbeitsschritten (etwa das definieren von Massenspeicher- und DRAM-Kapazitäten) bei keinem Admin für Beifallsstürme sorgen. Mit Scripting-Lösungen dagegen können zehn, hundert oder tausend VMs mit (beinahe) den gleichen Aufwand erstellt werden – ein deutlicher Vorteil.

Aktionen im Azure-Portal lassen sich nicht automatisieren. Falls bestimmte Änderungen in regelmäßigen Zeitabspännen vorgenommen werden müssen, bleibt den Systembetreuern nichts übrig, als sich jedes Mal beim Azure-Portal anzumelden, und den Job händisch zu erledigen. Per Scripting dagegen sehen sich die Administratoren in der Lage, derartige Jobs zeitgesteuerten anzulegen, und auf diese Weise komplett zu automatisieren. Das ist besonders bei Wartungsaufgaben eine Arbeitserleichterung für die IT-Verantwortlichen.

Menschen machen Fehler, besonders wenn „stupide“ Aufgaben immer wiederholt werden. Daher kommt es beim Einsatz des Azure-Portals oftmals zu Fehlkonfigurationen, besonders falls eine größere Anzahl an gleichen oder ähnlichen Aufgaben auf die Systembetreuer wartet. Wer schon einmal dutzende VMs angelegt hat, kann ein Lied davon singen. Bei einem Skript dagegen ist es (beinahe) ausgeschlossen, dass plötzlich zu einer Fehlkonfiguration bei einer Aufgabe kommt. Es sei denn der Fehler befindet sich im Skript selbst, daher müssen die Vorlagen immer doppelt und dreifach überprüft werden. Ist das Skript „sauber“ zusammengestellt, gibt es in der Regel keine Probleme.

Tritt ein Problem bei vielen VMs  auf, etwa weil der zugewiesene DRAM-Speicher zu gering bemessen wurde, müssen diese Stellschrauben im Portal von Hand angepasst werden. Somit müssen die Administratoren im Problemfall wieder einiges an Zeit aufwenden, um die (falsch konfigurierten) Ressourcen entsprechend anzupassen. Mit einem Skript dagegen ist dieses Problem in wenigen Minuten „erledigt“.

Wegen den angesprochenen Gründen setzten viele (erfahrene) Systembetreuer auf weitere Möglichkeiten, um Änderungen bei Azure vorzunehmen:

  • Powershell (PS): Viele Windows-Systembetreuer haben bereits ihre Erfahrungen mit der Windows Powershell gesammelt. Daher liegt es nahe, diese Methode auch für die Verwaltung von Azure-Ressourcen einzusetzen. Mit der PS steht den Administratoren eine effiziente Methode zur Seite, um etwa Azure-VMs oder Dienste zu erstellen, zu modifizieren und zu warten.
  • Azure CLI (Command Line Interface): Mit dieser Lösung steht den Systembetreuern ein Kommandozeilen-Tool zur Verfügung, um auch größere Aufgaben schnell und sicher zu „erledigen“. Zudem ist das Werkzeug sowohl unter Windows, MacOS und Linux verfügbar. Da dieses Werkzeug auf der Linux-Kommandozeile (Bash) basiert, fühlen sich vor allem Linux-affine Systembetreuer bei diesem Tool schnell „heimisch“.
  • JSON Templates (JavaScript Object Notation): Azure basiert zum Teil auf JSON (beispielsweise beim Ressourcen-Manager). Ein derartiges Template ist eine der besten Methoden, um größere Mengen an Ressourcen (wie etwa Dienste oder VMs) zu erstellen. Allerdings eignen sich JSON-Vorlagen nicht, um etwa VMs zu starten und zu stoppen.

Welche Methode sollten die Systembetreuer nun einsetzen, um Azure zu verwalten, Ressourcen zu erstellen, und Wartungsaufgaben wahrzunehmen? Die Antwort darauf ist nicht einfach zu finden. Oftmals macht eine Kombination aus zwei Ansätzen Sinn, beispielsweise wenn eine Skripting-Lösung wie Azure CLI oder Powershell als primäres Werkzeug eingesetzt wird. Hier sind eher persönliche Vorlieben ausschlaggebend, setzte ich beispielsweise bereits sehr viele Linux-Systeme ein, bin ich mit der Azure CLI in der Regel gut bedient. Windows-Administratoren, die täglich mit der Powershell arbeiten, werden dieses Tool sicherlich auch gerne zur Azure-Verwaltung einsetzen.

Zudem sollte noch eine sekundäre Verwaltungs-Methode eingesetzt werden. An dieser Stelle sollten die Systembetreuer dringend einen Blick auf die JSON-Vorlagen werfen, dennn diese Methode eignet sich besonders gut, wenn es darum geht, dutzende, hunderte oder gar tausende von  gleichen oder ähnlichen Ressourcen – wie etwa VMs – zu erstellen. Müssen dagegen nur einige wenige VMs erstellt werden, können die Systembetreuer bedenkenlos zum Azure-Portal greifen.

Florian Huttenloher

Lesen Sie auch