Microsoft Azure für Entwickler: Welche Optionen bietet die Cloud-Plattform

Azure eröffnet Entwicklern neue Möglichkeiten. Die wichtigsten Punkte über Microsoft Azure und wie es sich gegenüber AWS und Google positioniert.

Azure und Office 365 sind für Microsoft Schlüsselprodukte. Das sieht man schon daran, dass Hinweise und Links, die auf Azure und Office 365 verweisen, derzeit in allen Microsoft-Produkten erscheinen – von Windows über Office bis zu Serveranwendungen wie SQL Server.

Im mobilen Bereich ist Microsoft hingegen eher auf dem Rückzug. So wendet sich das Unternehmen von seinen wenig erfolgreichen Windows-Phone-Bemühungen zugunsten eines plattformneutralen Ansatzes ab, der Entwickler ermutigt, Azure für Backend-Services bei mobilen Anwendungen zu verwenden.

Office 365 ist aus dem einfachen Grund schnell gewachsen, weil die Unternehmen den Appetit auf einen lokalen Office-Betrieb in Eigenverantwortung zusehends verlieren. Schließlich müssen sie gleichzeitig eine immer größer und wichtiger werdende mobile Belegschaft unterstützen. Da sind viele Organisationen froh, wenn sie sich nicht um den Office-Betrieb kümmern müssen.

Stark von diesen Veränderungen betroffen sind Entwickler. Die Migration in die Cloud – die nicht unbedingt Microsofts Cloud sein muss, sondern auch Konkurrenten wie Amazon Web Services (AWS) und die Google Cloud Plattform umfasst – hat enorme Auswirkungen auf Entwickler und ihre Arbeitsmethoden.

Für fast alle Entwickler stellt sich inzwischen die Frage: Welche neuen Möglichkeiten bietet Azure, was bietet es im Vergleich zu anderen Cloud-Plattformen und wie verhält es sich mit den Risiken, eine falsche Wahl zu treffen?

Die Entwicklerperspektive

Vom unmittelbaren Reiz von Azure fühlen sich am stärksten Unternehmen angezogen, die bereits auf Microsoft-Plattformen arbeiten (zum Beispiel Office 365, On-Premise oder beides), und Entwickler, die mit den Tools und Frameworks des Unternehmens vertraut sind, insbesondere mit Visual Studio, SQL Server und dem .NET-Framework.

Visual Studio funktioniert inzwischen gut mit Azure. Wenn Sie sich als Entwickler bei Ihrem Azure-Konto anmelden, können Sie Ressourcen mit dem Cloud Explorer betrachten, Vorlagen zum Bau von Azure-Anwendungen verwenden und diese über die IDE bereitstellen.

Kommen wir aber erst zur Frage, was Azure eigentlich genau ist. Grundlage der Azure-Plattform ist ein wachsendes Netzwerk von Rechenzentren, die von Microsoft verwaltet werden. Microsoft hat dafür mittlerweile 30 sogenannte Azure Regionen gegründet, die sich aus mehreren Gruppen von Rechenzentren zusammensetzen. Einige von ihnen sind noch im Aufbau. Jede Region setzt sich in der Regel aus mehreren Rechenzentren zusammen.

Die angebotenen Dienstleistungen gliedern sich in folgende Kategorien:

Virtuelle Maschinen (VMs): Von der kleinsten VM (A0) mit 0.75GB RAM, einem Kern und 20 GB Festplatte bis zur größten VM (G5) mit 448 GB RAM und 32 Kernen.

Anwendungsplattform: Gehostete Webanwendungen und mobile Backends auf Azure mit Optionen zur Skalierung oder Auto-Skalierung auf Bedarf. Container Service für Docker-basierte Dienstleistungen oder Microservices.

Daten und Storage: Gehostete SQL-Datenbank, allgemein nutzbarer Storage, Cache-Dienste, DocumentDB NoSQL-Datenbank, SQL Data Warehouse.

Kognitive Services: Application Programming Interfaces (APIs) für Spracherkennung, Textanalyse, Gesichtsanalyse.

Analytics: Dienstleistungen für die Speicherung und Analyse von Massendaten einschließlich Hadoop und APIs für Machine Learning.

Internet der Dinge (IoT): Eine Plattform, um sensorbestückte Geräte miteinander zu verbinden, ihre Daten zu sammeln und zu speichern und die Ergebnisse zu analysieren.

Networking: Aufbau und Betrieb virtueller Netze mit Traffic Manager, Load Balancer und Virtual Private Network (VPN) Gateway.

Mediendienste: Codierung und Content-Delivery-Netzwerke.

Hybride Cloud-Integration: Backup und Site-Recovery-Dienste, BizTalk für die Integration von Anwendungen, Service Bus für Enterprise Messaging.

Entwickler Services: Visual Studio Team Services einschließlich Build-Automatisierung und Lasttests, Anwendungsanalysen, HockeyApp für die Erfassung und Analyse von Crash-Berichten.

Identity Services: Azure Active Directory (wird ebenfalls von Office 365 verwendet), Multi-Faktor-Authentifizierung.

Management: Planung und Automatisierung, Key Vault für sicheren Zertifikatsspeicher.

Die obige Liste ist nicht vollständig und neue Dienste werden immer wieder hinzugefügt. Einige sind noch im Preview-Status, andere nur in bestimmten Regionen verfügbar. Dennoch ist es eine riesige Liste an Services, die Entwicklern viele Optionen bietet. Diese Optionen waren noch vor wenigen Jahren nur schwer oder überhaupt nicht umsetzbar, wenn sie auf die eigenen physischen Ressourcen einer Organisation beschränkt waren.

Wenn Sie in der glücklichen Lage sind, ein neues Projekt zu beginnen, bei dem die Ressourcen entweder schon enthalten sind oder bereits in der Cloud liegen, sollte die Entwicklung mit Azure glatt verlaufen.

Das ASP.NET Web-Framework ist standardmäßig verfügbar. Azure AD-Authentifizierung lässt sich einfach integrieren. Wenn Ihre Organisation Office 365 einsetzt oder Active-Directory-Synchronisierung für Azure AD konfiguriert hat, können sich die Benutzer in diesem Fall mit ihren bestehenden Arbeitsplatz-Anmeldedaten einloggen.

Ein wesentliches Merkmal ist hier Microsoft Graph (früher die Office 365 Unified-API). Dies ist ein API-Endpunkt und SDK, um sowohl auf Azure AD als auch andere Office-365-Services zugreifen zu können.

Um mit Azure zu arbeiten, sollten man sich mit den Azure Active Directory Authentifizierungsbibliotheken (ADAL) vertraut machen. Diese erlauben es Benutzern, sich zu authentifizieren und verwenden den zurückgegebenen OAuth-Zugriffs-Token, um auf andere Informationen zuzugreifen, wie etwa auf Gruppen, zu denen der Benutzer gehört.

Einer der Vorteile von Azure für Entwickler ist der komfortable und leichte Ansatz, mit dem Prototypen und laufende Arbeiten für Tests und Bewertungen bereitgestellt werden können. Dies ist sehr kostengünstig, da Ihnen der Setup Service von Azure eine Skalierung von einer kostenlose Site auf einer gemeinsam genutzten VM auf bis zu 20 Instanzen auf 4-Kern-VMs mit sieben GB RAM erlaubt. So können Sie zum Beispiel eine der Basic Sites zum Testen verwenden und für den produktiven Einsatz hochskalieren.

Der Haken an Azure ist, dass sich die meisten Enterprise-Anwendungen mit den vorhandenen Ressourcen verbinden müssen, von denen einige lokal vor Ort vorgehalten werden. Dies macht die Cloud-Bereitstellung anspruchsvoll, und wirkt sich auch auf die Fähigkeit aus, bestehende Anwendungen per „Lift and Shift“ auf Azure zu hieven.

Es gibt zahlreiche Möglichkeiten dafür, einschließlich der VPN-Konnektivität zu Azure, die Veröffentlichung von APIs für lokale Ressourcen oder die Migration solcher Ressourcen in die Cloud. Die Azure IaaS-Angebote bedeuten, dass Sie bis zu einem gewissen Grad die bestehende Infrastruktur auf Azure VMs replizieren können.

Allerdings besteht das Risiko, dass Sie einiges vom Nutzen der Cloud-Implementierung verlieren, weil das Re-Design spezieller Dinge auf der neuen Plattform nicht gelingt. Es ist zum Beispiel möglich, bei VMs zu enden, die die meiste Zeit untätig sind, genau wie bei physischen Servern.

Die Cloud macht am meisten Sinn, wenn Sie Services nutzen, auf die mehrere User gleichzeitig zugreifen (Multi Tenant) und die von einem (externen) Cloud-Anbieter betrieben werden. Wenn Sie zum Beispiel für eine Anwendung einen SQL Server benötigen, können Sie entweder Azure SQL verwenden, der Multi-Tenant-fähig ist und von Microsoft gepflegt wird. Oder Sie installieren einen SQL Server in Ihrer eigenen VM, womit Sie allerdings das Problem haben, für Betrieb, Skalierung und Wartung der VM sorgen zu müssen.

Azure SQL ist kostengünstiger, obwohl SQL Server in einer virtuellen Maschine die gesamte Palette von Funktionen anbietet, einschließlich Reporting Services, die für Azure SQL nicht verfügbar sind. Solche Entscheidungen können schwierig sein. Aber die Verwendung von Azure Services anstelle von VMs liefert – wo immer es möglich ist – langfristig große Vorteile.

Microservices, Azure und Linux

Ein weiterer wichtiger Aspekt der Cloud-Entwicklung sind Microservices. Damit lassen sich Anwendungen in kleinere Dienste herunterbrechen, und jeder von diesen Diensten wird in seiner eigenen Umgebung ausgeführt. Kleine Services sind in der Regel robuster, Sie können jeden Dienst separat skalieren und die Bereitstellung und die Tests mit DevOps-Tools automatisieren.

Azure hat einen Container-Service, mit dem Sie leicht eine Gruppe von vorkonfigurierten VMs für Container-basierte Anwendungen erstellen können – entweder indem Sie DC/OS oder Docker Swarm verwenden.

Beachten Sie, dass es sich dabei um Linux-Umgebungen handelt. Der bevorstehende Windows Server 2016 bietet Container Support und es ist wahrscheinlich, dass Azure in Zukunft Windows-Container hinzufügen wird. Aktuell liegt aber Linux vorne.

Mehr zum Thema Microsoft Azure:

Microsoft Azure Security Center: Sicherheit in der Cloud.

Per Azure AD Connect Health hybride Active-Directory-Umgebungen überwachen.

Microsoft Azure File Storage an Linux anbinden.

Microsoft Azure: Virtuelle Maschinen mit CloudLink verschlüsseln.

Überblick über die Service-Bereitstellung mit dem Azure Resource Manager.

Azure baut auf Hyper-V auf, dem Windows-Hypervisor, ist aber eine starke Umgebung für Linux VMs. Der zunehmende Einsatz von Linux, sowohl auf Azure als auch anderswo, ist ein Grund, warum Microsoft unter dem Namen .NET-Core in einen neuen Cross-Plattform-Fork von .NET investiert. Mit dem Open-Source-Projekt bringt man ASP.NET-Anwendungen unter Windows, Linux oder Mac (für die Entwicklung) zum Laufen.

Die Idee dahinter ist, dass die Entwickler ihre bestehenden .NET-Fähigkeiten nutzen können, um Services oder Webanwendungen zu erstellen und bei der Bereitstellung die Wahl zwischen Windows und Linux haben.

Zu erwähnen ist außerdem der Nano Server, eine neue Version von Windows, die mit Windows Server 2016 auf den Markt kommt. Dabei handelt es sich um eine abgespeckte Version, die ideal für leichtgewichtige Entwicklungen und Microservices geeignet ist. Nano Server unterstützt .NET-Core, aber nicht das .NET Framework. Microsoft hat zudem SQL Server für Linux angekündigt.

Dies alles zusammen bedeutet, dass Microsoft einen zweigleisigen Ansatz zur Unterstützung von Containern und Microservices auf Azure fährt. Der eine basiert auf der Portierung von .NET-Anwendungen auf Linux, der andere bringt die Vorteile leichtgewichtiger VMs oder Container auf Windows.

Azure im Vergleich zur Konkurrenz

Microsoft ist zwar die Nummer zwei bei Public Cloud IaaS, liegt aber abgeschlagen hinter AWS zurück. Abgesehen davon besteht die Microsoft-Cloud nicht nur aus Azure, sondern auch aus Office 365. Azure hat allerdings die globale Reichweite und den Umfang, um eine vernünftige Alternative zu AWS zu bieten.

AWS bietet zudem E-Mail- und Dokumenten-Hosting, liegt in diesem Bereich aber weit hinter Microsoft und Google zurück. Man kann zum Beispiel AWS Hosting-Anwendungen, die Azure AD verwenden, vermischen und aneinander anpassen. Wenn Organisationen bereits Microsoft-Plattformen einsetzen, ist es sinnvoll, komplett auf Azure zu setzen.

Microsoft hat ein Bekenntnis zur Hybrid Cloud abgelegt, was bei AWS und Google fehlt. Der Grund: Im Gegensatz zu Microsoft kommen beide Unternehmen aus dem Internet. Dies lässt sich sowohl als Schwäche als auch Stärke interpretieren, in vielen Organisationen ist es aber willkommen. Entwickler, die mit Microsoft-Technologien, .NET und Visual Studio IDE vertraut sind, werden die Entwicklung für Azure als einfach empfinden.

Ein Gartner-Bericht vom März 2016 über Enterprise Application Platform as a Service hat festgestellt, dass „Microsoft unverkennbar seinen bewährten Ruf als Unternehmens-IT-Provider mit seiner wachsenden Akzeptanz als kompetenter Cloud-Service-Provider verbindet. Mit dieser begehrten, zweifachen Stärke setzt sich Microsoft von den meisten Konkurrenten ab.“

Allerdings warnt Gartner auch, dass die Details der Azure-Angebote in einigen Bereichen chaotisch und verwirrend sind.

„Alle App-Services basieren weiterhin auf den alten Cloud-Services, und nicht auf der neuen Azure Service Fabric (was auf ein weiteres Re-Engineering in der Zukunft hindeutet).“ Das heißt auch, dass einige Dienste für längere Zeit im Preview-Status bleiben. Die Vielzahl von Optionen innerhalb von Azure und ihr Cloud-Reifegrad kann verwirrend sein, sagt der Gartner-Bericht.

Dennoch platziert Gartner für den oben genannten Bericht Microsoft in seinem Magic Quadrant in die „Leaders“-Kategorie. Umfang und Fähigkeiten von Azure geben Anlass zur Vermutung, dass es weiter wachsen wird.

Folgen Sie SearchEnterpriseSoftware.de auch auf Twitter, Google+ und Facebook!

Artikel wurde zuletzt im August 2016 aktualisiert

Erfahren Sie mehr über Cloud Computing

- GOOGLE-ANZEIGEN

ComputerWeekly.de

Close