Azure Einstieg – die Basics

Azure ist die Cloud-Umgebung von Microsoft. Sie steht in Konkurrenz zur Amazon Cloud Amazon Web Services sowie zur Google Cloud Platform.

Alle Cloud-Plattformen bieten Dienstleistungen und Produkte rund um die drei Säulen einer Cloud: Platform-as-a-Service, Infrastructure-as-a-Service und Software-as-a-Service – hier im Vergleich zu Inhouse-Rechenzentren, auch OnPremise genannt.

Während bei On-Premise-Lösungen, also eigenen Rechenzentren, die Verantwortung vollständig bei einem selbst liegt, verlagert diese IaaS, PaaS und SaaS in verschiedenen Stufen an den Plattformbetreiber, sodass man sich als Diensteanbieter auf seine Kernkompetenzen fokussieren kann.

Bei Infrastructure-as-a-Service wird die Verantwortung für die Hardware bis hin zur Virtualisierung an den Cloudanbieter abgetreten. Man entscheidet sich über entsprechende Administrationsportale dann nur noch für die Leistung, die durch die Hardware zur Verfügung stehen muss und kann anschließend entweder ein eigenes Betriebssystem installieren oder – wie es am meisten verbreitet ist – über entsprechende Portale Vorlagen solcher auswählen, die dann binnen Minuten bereit stehen. Ein anderes Beispiel wäre ganz einfach der Speicher, der zur Verfügung gestellt wird.

Bei Platform-as-a-Service stellt der Anbieter das Betriebssystem sowie die Laufzeitumgebung vollständig zur Verfügung. Exemplarisch ist dies am besten mit einer eigenen Web-Applikation zu veranschaulichen: der Webserver sowie die Dienste drum herum werden vom Anbieter zur Verfügung gestellt. Man muss nur noch seine Web-Applikationssoftware (zB. WordPress) sowie die erforderlichen Ressourcen wie Datenbanken hinzufügen – auch dies kann in Form eines PaaS-Angebots erfolgen.

Software-as-a-Service bieten Cloud-Anbieter direkt eher seltener; ist so langsam als Rundum-sorglos-Paket aber im Kommen. Hier bucht man nur noch die Nutzung einer Software, zum Beispiel im Rahmen eines 30-Tages-Pakets. Hier kümmert sich der Anbieter vollständig um den Betrieb wie auch die Wartung der Software. Man selbst hat quasi nur noch selbst ein Benutzerlogin (simples Beispiel: Office 365).

Weitere Beispiele:

Während PaaS und IaaS in vielen Bereichen anfangen sich zuv verschmelzen, kristallisieren sich viele spezielle Services heraus, darunter High-Computing-as-a-Service, wozu man zum Beispiel Azure Batch zählen könnte. Alles zusammen wird mittlerweile als Everything-as-a-Service (XaaS) unter einem Dach zusammengefasst.

Was bietet mir Microsoft Azure?

Azure bietet allen Zielgruppen vollständige und durchgängige Leistungen rund um die Cloud; egal ob Einzelkämpfer – also Freiberufler – und Hobby-Entwicklern, dem kleinen Blogbetreiber, mittelständischen Unternehmen, Börsennotierten Großkonzernen oder Behörden: Azure bietet allen, was sie brauchen.

Azure hat derzeit 22 Datenzentren, ist in über 130 Ländern verfügbar und expandiert weiter – ab 2016 auch in Deutschland mit zwei weiteren Rechenzentren; in Frankfurt/Main und Magdeburg. Musste man sich früher mit zig verschiedenen Anbietern beschäftigen, wenn man weltweit präsent sein wollte, hat man heute nur noch einen einzigen Anbietern und ist dank des riesigen Azure-Netzwerks trotzdem Vor-Ort beim Kunde.

WebApps

Azure WebApps sind simple Webseiten-Instanzen in Form eines IIS-Prozesses für .NET Anwendungen, Tomcat für Java-Anwendungen oder Apache für PHP-Webseiten.

DocumentDB

Die Azure DocumentDB, eine JSON-basierte Datenbank, die die Microsoft Open-Source-Engine CHAKRA verwendet, ist eine NoSQL-Datenbank. Als einzige ihrere Art versteht sie Datei den SQL-Syntax, sodass die Einstiegshürde für Entwickler sinkt – aber die Leistung steigt. Mit Hilfe von Alltags-CRUD-Abfragen können Datensätze in gewohnter Art und Weise erstellt, und verändert werden – vollständig skalierend und hoch-performant.

Azure Batch

Mit Hilfe von Azure Batch können rechenintensive Aufgaben auf wenige bis hin zu zigtausende virtuelle Computer mit wenigen Zeilen Code skaliert werden.

Azure Stream Analytics

Echtzeit-Datenströme für die Live-Analyse: dafür gibt es Azure Stream Analytics. Besonders bei IoT-Themen, bei denen man Millionen über Millionen an Informationen erhält, oft aber nur einen gewissen Zeitraum für Echtzeitdashboards analysieren muss, eignet sich dies.

Die Erstellung von sogenannten "Analyse-Fragen" erfolgt dabei wie gewohnt – aber durch Keywords erweitern – mit Hilfe von T-SQL.

Azure Traffic Manager

Anders als der Name zuerst vermuten lässt läuft über den Azure Traffic Manager kein wirklicher Traffic. Er ist viel mehr eine Art DNS-Server. Anhand der Anfrage des Besuchers ermittelt der Traffic Manager die IP der nächste gelegenen Instanz und gibt diese dem Benutzer zurück.

Der Benutzer verbindet sich dann direkt mit dem jeweiligen Service – ohne weitere Interaktion des Traffic Managers. Erst wenn der entsprechende DNS-Eintrag erneut aufgelöst werden muss, wird erneut der Traffic Manager angefragt.

Notification Hub

Azure Notification Hub ermöglichen Push-Benachrichtigungen – also Hinweise an Benutzer, die man von jeder modernen Applikation erwartet – für alle gängigen Plattform, für Millionen Empfänger mit minimalem Aufwand – und das auch abhängig von Ort und Sprache der Benutzer.

IoT Hub

Millionen von Geräten und deren Status-Meldungen, Telemetrieinformationen und Co können via AAzure IoT Hub Hub zentral gesammelt und verteilt werden. Die Kommunikation erfolgt dabei hoch-skalierend mit allen Geräten bi-direktional und mit moderner Authentifizierung.

Load Balancer

Mit Hilfe des Azure Load Balancer wird die Skalierbarkeit von Webseiten und Servern gewährleistet: die Anfrage wird – in Kombination mit dem Traffic-Manager – in Anbetracht der Lokalität des Benutzers auf den Server verteilt, der derzeit am schnellsten Antworten kann. So wird die Webseite nie langsam.

Sollten die definierten Ressourcen aufgebraucht sein so kann – sofern gewünscht und aktiviert – sowohl die horizontale wie auch vertikale Skalierung automatisch erfolgen.

Virtual Network

Das Azure Virtual Network ist der Einstieg in die hybride Cloud-Welt. Während Daten im eigenen Rechenzentrum abgelegt werden können, läuft die Public API in Azure. Die Verbindung zwischen Daten und API erfolgt durch einen sichereren VPN-Kanal.

… und vieles vieles mehr.

Die vollständigen Features können auf der offiziellen Microsoft Azure Website angesehen und dank eines 170€ Gutscheins auch ausgiebig getestet werden.

Die Preise sind transparent und können dank eines vollständig und detaillierten Preisrechners vorkalkuliert werden. Bezahlt wird nur das, was man auch tatsächlich benötigt und auch nicht im Rahmen einer sonst weit verbreiteten aber ungeliebten Vorauszahlung.

Die ersten Schritte

Als erstes muss man sich bei Microsoft ein Geschäftskonto erstellen – ein bestehender Microsoft Live Account geht hier nicht. Aktuell erhält man einen Gutschein im Wert von ~170€(200$), der vier Wochen lang genutzt werden kann. Subscriber von Visual Studio erhalten bei der Wahl von Jahreslizenzen zusätzlich bis zu ~130€ (150$) im Monat (und auch weitere Leistungen wie Pluralsight und Co).

Auch während der Testphase, bei denen man die rund 170€ Guthaben hat, muss eine gültige Kreditkarte hinterlegt werden. Einige Produkte – vor allem die, die nicht direkt von Microsoft, sondern von Partnern auf Azure angeboten werden (z.B. MySQL) – können nicht über das Guthaben abgerechnet werden.

Bezahlung

Azure bietet verschiedene Bezahlungsmodelle an. Das bekannteste ist das Prinzip Du zahlst, was Du nutzt, was für die meisten an dieser Stelle interessant sein dürfte. Rabatt gewährt Microsoft für Großabnehmer an. Dies erfolgt in Form von Vorauszahlungen oder im Rahmen des Open-Volumenlizenzprogramms – oder einem Enterprise Agreement. Das Kleingedruckte ist hier sehr umfangreich, sodass dies im individuellen Fall evaluiert werden muss.

Nutzungsbasierte Bezahlung

Die günstigste VM ist aktuell mit ~10€/Monat, die günstigste SQL-Datenbank mit aktuell ca. 3€/Monat zu haben. Eine vollständige Preisübersicht und einen Preisrechner ist auf der offiziellen Azure Seite verfügbar.

Beispiel:

Eine VM wird nun aber nicht nur nach der Leistung, sondern auch nach dem Speicherplatz bezahlt. Ist die VM aber ausgeschalten, wird nur die Bezahlung des Speicherplatzes berechnet.

Das ist also insbesondere für Testumgebungen interessant, die oft nur wenige Stunden am Tag betrieben werden. Hier sind große Einsparungen möglich – dabei aber eine deutlich flexiblere Umgebung als bei OnPremise-Testumgebungen.

Wann kann man schon mal ausprobieren, ob der eigene Code auf einer VM mit 16 Kernen und 112GB richtig skaliert – oder immense Summen in eine entsprechende Hardware zu investieren?

Das Portal

Seit wenigen Tagen ist das neue Azure Portal nun offiziell da; davor war es zwar nutzbar, jedoch ausdrücklich als Preview. Ich selbst verwende das modernere Portal schon einige Zeit – viele Sachen sind auch nur im neuen Portal (zB. Docker) verfügbar.

Das liegt mit unter daran, dass Azure seine komplette API auf Powershell-Schnittstellen aktualisiert hat, die sich viel einfacher und auch sicherer automatisieren lässt. Zuvor musste man das selbst via XML/JSON Schnittstellen umsetzen. So haben wir nun CmdLets, die wir selbst in unseren Skripten nutzen und auch sehr einfach auf Korrektheit, zB. mit PESTER testen können. Die Grundlagen zum Azure Resource Manager können in rund 60 Minuten via Microsoft Virtual Academy erlernt werden.

Das Azure Portal zeigt einem sehr übersichtlich die aktuellen Rechenzentren und den jeweiligen Status. Mit einem Klick auf die Karte kann anschließend auch tiefer in den Status der Services der einzelnen Rechenzentren eingetaucht werden.
            Über entsprechend definierte Filter können dabei auch Ressourcentypen, Abonnements, Dienststati und entsprechend der Zeitraum gefiltert oder fokussiert werden.
        </span>
    </span>
</span>

Die erste Azure Ressource erstellen

Ich empfehle meistens, dass man als erstes eine Webseite erstellt, um damit ein wenig zu spielen. Denn 10 Webseiten und die ersten 5 GB Bandbreite können im Free-Modus betrieben werden, sodass keine Kosten entstehen und man mit dem Portal warm wird.

WebApp erstellen

Alle Webseiten-Instanzen heissen in Azure WebApp. Dies können IIS, Apache oder Tomcat-Instanzen sein, je nachdem, ob man ASP.NET, PHP, NodeJS oder Java für die Abwendung verwenden möchte. Es gibt noch weitere, sehr ähnliche Ressourcen in Azure wie zum Beispiel Mobile Apps, API Apps, Logic Apps, die aber einen anderen Fokus haben.

Eine WebApp hat immer einen Service Name, der zeitgleich Bestandteil der Subdomain ist, sodass die Webanwendung auch ohne eigene Domain betrieben werden kann. Im Free-Modus können ohnehin keine eigenen Domains hinterlegt werden. Der Name kann zudem nur ein einziges Mal im gesamten Azure Netzwerk verwendet werden.

Ebenso muss das Abonnement hinterlegt werden, auf dem die Abrechnung erfolgen soll, sofern Kosten entstehen würden.

Die Ressourcengruppe ist eine virtuelle Gruppierung in Azure. Dies dient zur leichteren Gruppierung und Übersicht der Abhängigkeiten von Ressourcen untereinander (z.B. Datenbanken zu Webanwendungen).

Am Ende wird immer definiert, wo die WebApp betrieben werden soll, also in welcher Region und in welchem Rechenzentrum, sofern die Region mehrere Rechenzentren anbietet.

WebApp erstellt

Nach dem Klick auf Erstellen wird die WebApp in wenigen Sekunden zur Verfügung gestellt und ist anschließend sofort unter der entsprechenden Subdomain verfügbar; in meinem Fall http://meinetestwebapp.azurewebsites.net/

Es könnte nun mit Inhalten begonnen werden.

Toast

Jede ausführende Aktion in Azure wird durch Toasts bestätigt.

Beim Klick auf einen Toast kann dabei auch die genaue Information der Aktion sowie die verschiedenen Ereignisse (ein Ereignis gibt es immer, mehrere sind aber je nach Aktion möglich).

Die Zentrale: das Dashboard

Jede Azure Ressource hat eine Art Dashboard, über das der aktuelle Status der Ressource eingestellt, überwacht und Aktionen ausgeführt werden können. Das Grundgerüst ist bei allen Ressourcen gleich; sie Unterscheiden sich in ihrem Zweck. So kann eine Webanwendung eben direkt zB. durch GIT veröffentlicht werden, was bei einer virtuellen Maschine so nicht funktioniert. Beide können aber auf die gleiche Art und Weise überwacht, gestartet oder auch wieder entfernt werden.