Aufbau einer Konferenz komplett in Azure - am Beispiel vom PASS Camp 2014

Um eine Konferenz in Azure aufzubauen, gibt es einiges zu tun - ähnlich einem traditionellen Aufbau einer IT Konferenz. Der Vorteil von Azure zu lokaler Hardware ist relativ einfach: Event-Locations verfügen in der Regel über eine endliche Internetanbindung und eine endliche elektrische Anbindung (Strom-Anbindung). Zwei wesentliche Punkte für den Betrieb einer Konferenz. Wenn man lokal auf dem Event virtualisiert, dann benötigt man Serverhardware an der Event-Location. Diese benötigt wiederum Platz und Strom - ähnlich viel wie im normalen Rechenzentrum. Damit ist die Qualität und Stärke der Stromanbindung gefordert. Ist die Stromanbindung ausgereizt, so springt die Sicherung heraus, der Server ist von jetzt auf gleich aus und man ruft den Techniker an und wird für die Zukunft beim Stromanbieter eine größere Leitung beantragen und zwischenzeitlich ein paar Server weniger anschalten, sofern bei der Überlastung des Gesamtsystems nicht noch etwas kaputt gegangen ist.

Verwendet man Microsoft Azure - also ein Azure Rechenzentrum zum Hosten der Event-Lokation - verändert sich die Bedeutung der elektrischen Anbindung. D.h. Labs und Demo-Umgebungen laufen komplett in einem Azure Rechenzentrum, bei dem sich die Frage der Qualität der Stromanbindung erst gar nicht stellt. Die Internetverbindung wird umso wichtiger und die Stromanbindung daher unwichtiger am Veranstaltungsort. Mittels Funk- und Kabel-Internet-Übertragungstechniken kann man nach heutiger Technik komplette Konferenzen auf diese Weise bewerkstelligen - wie man am PASS CAMP 2014 sieht.

Aufbau der Event-Location beim PASS Camp 2014

Das PASS Camp ist eine Konferenz von Technikern für Techniker. Neben WLAN hat jeder Teilnehmer einen mobilen Rechner mitgebracht. D.h. die Präsentationen sind vorhanden, doch die Hands On Labs sind umso häufiger vertreten in der Agenda. Ein Hands On Lab wird in der Regel pro Teilnehmer und ggf. pro Szenario erstellt oder man schafft es, alle Szenarien in eine Lab-Umgebung zu integrieren. Durch die Integration der Szenarien steigt die Hardwareanforderung. Beim PASS CAMP sprechen wir von Hardwareanforderungen rund um den SQL Server. In der Vorabplanung hat man alle Szenarien in eine Lab-Umgebung zusammengepackt und ein Master-Image bereitgestellt. Die geplante Hardwareanforderung für die Lab-Umgebung betrug 8 CPU-Kerne, 28 GB RAM und einen Festplattenverbund von 4 Festplatten. Wie man sieht, ist das ein ordentliches Paket an Hardware, erst recht wenn man bedenkt, dass jeder Teilnehmer diese Ausstattung zur Verfügung gestellt bekommt.

Bei Microsoft Azure ist das kein Problem - da Hardware als Service bereitgestellt wird (*klingt komisch, ist aber so*), kann man so viel Hardware auf Knopfdruck bekommen wie man braucht. Der Vorteil ist das Abrechnungskonzept: Mittels minutengenauer Erfassung kann man Hardware bekommen und wieder zurückgeben und nur für den verwendeten Zeitraum wird diese Hardware berechnet, ähnlich einem Stromzähler, der den verbrauchten Strom in Kilowattstunden anzeigt. Bei Azure ist es mit der Angabe von Storage-Volumen oder Computer (Kernen) pro Minute ähnlich.

Nach dem die Lab-Umgebung bereitstellt wurde, hat man einen Vervielfachungsmechanismus von Azure verwendet. Dieser Mechanismus erfordert ein Konzept und ein paar Einstellungsschritte, die man im Azure Management-Portal durchführen kann. Patrick Heyde hat hierfür ein Powershell Skript bereitgestellt und hat auf diese Art die Bereitstellung automatisiert.

Was passiert im Bereitstellung-Skript?

(incremental ms Enrollment.ps1) Als erstes wird das Master-Image in einen separaten Storage-Account von Azure kopiert - mittels einer Inner-Stamp-Copy (was dahinter steckt, kann hier nachgelesen werden). Auf diese Weise können TerraByte-Dateien in Sekunden vervielfacht werden.

Genau diesen Mechanismus macht man sich hier zunutze und kopiert die knapp 267 GB VHD-Dateien innerhalb von Sekunden.

Danach registriert man die kopierten VHDs in die HyperVisor-Komponente von Azure. Hier gibt es einen Unterschied zwischen einer Betriebssystem-VHD und einer angehangenen DatenDisk-VHD.

Ist die Registrierung der VHD im HyperVisor erledigt, baut man die Teilnehmer-VM genauso zusammen wie das Master-Image. Auch hier hat Azure eine Hilfe parat, indem man mittels des PowerShell Befehlt: Export-AzureVM den kompletten Bauplan vom Master-Image abrufen kann.

Danach ist nur noch eine winzige Anpassung pro Teilnehmer durchzuführen und die Teilnehmer-Umgebung wird auf diese Weise bereitgestellt. Die Winzigkeit besteht darin, die Disk von Lun0 wieder auf Lun0 zu setzen und die Disk von Lun1 wieder auf Lun1.

Nach den 235 Zeilen Powershell ist der Kopiervorgang erledigt und die Hands On Lab Umgebung komplett aufgebaut bzw. voll-automatisch bereitgestellt bei einer Dauer von ca. 3 Minuten pro Umgebung. Da das Skript inkrementell implementiert ist, hat der Aufbau von 70 Teilnehmer-Umgebungen x 3 Minuten = 210 Minuten gekostet. Am Ende ist auf diese Weise eine Konferenzumgebung von 8 x 70 = 560 CPU Kerne entstanden mit 28 GB x 70 = 1.960 GB Arbeitsspeicher und einem gesamten Datenvolumen von 7 TerraByte.

Dieses Ausrollen, d.h. das Ausführen von incremental ms Enrollment.ps1 passiert am Vorabend der Konferenz - nicht zuletzt auch dem geschuldet, dass in einem Master-Image noch bis auf die letzte Sekunde der Deadline Änderungen eingeflossen sind.

Der schlafende Riese

Nach dem alle Hands On Lab Umgebungen erstellt wurden, jede Umgebung einmal komplett hochgefahren ist, hat mal alle VM schlafen gelegt. Wie beim Menschen gibt es bei Microsoft Azure einen normalen Schlaf und einen Tiefschlaf. Der Tiefschlaf nennt sich „Angehalten (Zuordnung aufgehoben)“. Dieser Zustand verbraucht keine Compute-Hardware, die ca. 90% der laufenden AzureVM-Kosten ausmacht. Ist eine AzureVM nur heruntergefahren, gibt die Machine die Hardware nicht wieder frei und produziert noch immer Compute-Kosten. Ist eine AzureVM/Hands On Lab-Umgebung in diesem Zustand „Angehalten (Zuordnung aufgehoben)“, zeigt der Verbrauchsmonitor von Azure 0 Kerne/Cores in Verwendung. Für das PASS Camp 2014 hat man den schlafenden Riesen über 3 Azure Subscriptions zu je 200 Kernen zur Verfügung gestellt. Es wäre auch möglich gewesen, eine Subscription auf bis zu 10.000 Kerne erweitern zu lassen mittels einer Quota-Erweitung. (https://aka.ms/azurelimits)

Das Erwachen des schlafenden Riesen

Pünktlich zum Konferenzbeginn hat man die 70 AzureVM aufgeweckt und den Teilnehmern zur Verfügung gestellt. Da ein Inkrementelles Anstarten bei 70 VMs ca. 180 Minuten Zeit gekostet hätte, hat man einen zeitsparenden Ansatz gewählt. Alle Hands On Labs stehen komplett eigenständig voneinander getrennt zur Verfügung. Daher kann man alle Hands On Labs parallelisiert starten. Patrick Heyde wählte mittels Powershell den Ansatz aus 2 Skripten:

  1. Sammle pro Hands On Lab Umgebung alle notwendigen Informationen zusammen und starte einen neuen Prozess pro Umgebung.

  2. Im neuen Prozess wird die einzelne Hands On Lab Umgebung gestartet.

Auf diese Weise wird binnen 3 Minuten der schlafende Riese aus vielen kleinen Einzelumgebungen geweckt. 8 x 70 = 560 Kerne bekommen eine Hardware-Reservierung, produzieren ab diesem Zeitpunkt Kosten für die Veranstaltung. Die Hands On Lab Umgebungen sind innerhalb von 3 Minuten komplett verfügbar. Wir sprechen also von 560 Kernen, 1.960 GB Ram für alle Teilnehmer und minutengenau abgerechnet.

Wenn man die gesamte Umgebung so schnell ausrollen kann, dann kann man diese ebenfalls schnell wieder einrollen. Genau das wurde an jedem Abend 22:00 gemacht, binnen 3 Minuten mit:

Auf diese Weise wird die Hardware-Reservierung wieder zurückgegeben und die Compute-Kosten auf 0 € gesetzt.

Sie möchten mehr erfahren?

Patrick Heyde – Aufbau & Umsetzung der Azure Implementierungen
Lars Schmoldt – Hilfe bei der Business-Planung in Azure

 

Ein Beitrag von Barbara Steiger (@basteig)
Communications Manager Cloud, Entwicklungsplattform, MBS und Innovation