Relevanz von Windows Azure - Was kann man damit machen? Wer hat was davon? Für wen ist das relevant?

In Gesprächen über Azure werde ich häufig gefragt, für wen Azure wirklich relevant ist und wer sich damit jetzt beschäftigen sollte. Letztlich kommen hier zur Beantwortung Argumente zum Tragen die für Cloud Computing im Allgemeinen gelten, aber auch Argumente für Microsofts Plattform Azure im speziellen.

In Cloud Computing werden IT Funktionen über standardisierte Schnittstellen auf einer massiv skalierbaren Umgebung unter Einhaltung festgelegter Service Level bereitgestellt. Der Nutzer derartiger IT Funktionen muss sich nicht mit Fragen des Softwarebetriebs auseinander setzen. Es liegt in der Verantwortung des Plattformanbieters, auch bei steigender Last für die Einhaltung der Service Level zu sorgen. Für Softwareanbieter bietet dieses Konzept den Vorteil, einer großen Zahl von Anwendern relativ flexibel und schnell IT Funktionen anbieten zu können. Für die Skalierung sorgt der Plattformanbieter.

Möglichkeiten für Anwenderunternehmen

Für Unternehmen bietet der Einsatz von Azure Cloud Services eine Reihe von Vorteilen:

  • Hohe Skalierbarkeit der Ausführungsumgebung (welche in der Verantwortung von Microsoft liegt)
  • Flexible bzw. alternative Bezahlmodelle (Lizenz, Abo, Werbung,...), bei der nur die jeweils nachgefragte Rechenleistung in Rechnung gestellt wird
  • Flexible Bereitstellung, bei der auch die Möglichkeit besteht, die Umgebung über einen bestimmten Zeitraum zu testen
  • Kurze Time-to-Market

Die Entscheidung, IT Funktionen lokal zu betreiben oder als Service zu nutzen, bezieht sich hierbei sowohl auf ganze Anwendungen (z.B. lokaler SharePoint vs. Hosted SharePoint von einem Hoster vs. SharePoint Online von Microsoft) wie auch auf Anwendungsteile (siehe hierzu auch "Möglichkeiten für Softwareentwickler"), die im Unternehmen entwickelt werden.

Möglichkeiten für Softwareentwickler

Die Nutzung bzw. Das Angebot von IT Funktionalitäten über eine Cloud Plattform bietet für Softwareentwickler also eine Reihe von Vorteilen. Diese können über verschiedene Szenarien erzielt werden (siehe Abbildung 1):

Möglichkeiten mit Azure 
Abbildung 1: Möglichkeiten für Softwareanbieter

Erweiterung bestehender Anwendungen um Cloud Services

Um von den Möglichkeiten einer Cloud Plattform zu profitieren,müssenAnwendungennicht komplett neu geschrieben werden. Bereits der punktuelle Einsatz von Cloud Services an bestimmten Stellen einer Softwareanwendung, kann Vorteile bieten. So kann es sinnvoll sein, einzelne Oberflächenelemente durch Webdienste bereitstellen zu lassen, oder (z.B. aus Gründen der Skalierbarkeit) für einzelne Komponenten einer Anwendung auf die Nutzung von Diensten der Cloud Plattform zu setzen. Beispiel: Nutzung von SQL Services für die Datenspeicherung einer Anwendung, die ansonsten auf den Geräten der Awender läuft.

Betrieb ganzer Anwendungen auf Azure

Neben dem Betrieb einzelner Anwendungsteile auf Azure, besteht aber natürlich auch die Möglichkeit die Anwendung vollständig auf Azure zu betreiben. Zur Entwicklung derartiger Anwendungen stehen für Visual Studio im Rahmen des Software Development Kits (SDK) für Azure Projektvorlagen zur Verfügung. Ergebnis sind dann hoch skalierbare und hoch verfügbare Web Services oder Webanwendungen, auf die Nutzer über Standardschnittstellen (HTTP via Browser bzw. SOAP, REST, XML aus eigenen Anwendungen) zugreifen können, ohne dass Installationen auf den Endgeräten der Nutzer erforderlich sind.

Zusammenstellung neuer Anwendungen aus vorhandenen Services

Nicht immer müssen Anwendungen komplett neu erstellt werden. Mitunter besteht auch die Möglichkeit, Anwendungsfunktionalität über die Zusammenführung bestehender Services bereitzustellen. Diese bestehenden Services können Teile der Azure Plattform sein, aber auch Services von weiteren Entwicklern, die über Standardschnittstellen zugreifbar sind.

Durchgängigkeit der Plattform im Falle von Azure

Die Azure Plattform bietet im Vergleich mit anderen Cloud Plattformen den Vorteil, dass sie im Grunde auf die gleiche Technologiebasis setzt, die auch zur Entwicklung lokal betriebener (Client- oder Server-)Anwendungen zur Verfügung steht. Entwickler können mit Visual Studio die gleiche Programmierumgebung verwenden. Dies erleichtert die Wahlfreiheit hinsichtlich dessen, welche Komponenten für den lokalen Betrieb beim Anwender und welche Komponenten als Cloud Service umgesetzt werden, immens.

Software-plus-Services mit Azure

Mit der Azure Plattform erweitert Microsoft den Handlungsspielraum für IT-Entscheider (IT-Leiter, Softwarearchitekten, Entwickler) deutlich. Sie erhalten als zusätzliche Option, IT-Funktionen aus der Cloud zu beziehen bzw. dort bereitzustellen. Für den Zugriff stehen hierbei Standardtechnologien (HTTP, SOAP, REST, XML) zur Verfügung. Hierüberkann auf eigene Anwendungen, Azure Services aber auch auf Anwendungen und Web Services von Partnern, die alle auf Azure betrieben werden, zugegriffen werden. Für das Angebot von Cloud Services steht mit Visual Studio und den Azure SDKs eine leistungsfähige Entwicklungsumgebung (die eine lokale Testumgebung umfasst), und auf Azure eine hoch skalierbare, hoch verfügbare Ausführungsumgebung zur Verfügung.

Positionierung von Azure-Elementen 
Abbildung 2: Software-plus-Services mit Azure

Damit wird der Aufbau komplexer Software-plus-Services Lösungen möglich. Abbildung 2 skizziert den Aufbau. Anwender greifen über verschiedene Endgeräte auf die Lösungen zu. Diese Endgeräte sind entscheidend für die User Experience. Sie sind mit den Benutzeroberflächen, die sie bereitstellen, die Zugangspunkte zu den IT-Lösungen. Auf den Endgeräten können verschiedene Arten von Software betrieben werden (von reinen Browser-Anwendungen, über Office-Erweiterungen bis hin zu eigenen Anwendungen). Eine leistungsfähige Technologieplattform zeichnet sich dadurch aus, dass sie ein möglichst breites Spektrum an Endgeräten und Anwendungstechnologien unterstützt.

Die lokal auf Endgeräten betriebene Software kann nun über Standardtechnologien auf Services, die auf Azure betrieben werden, zugreifen. Services können eigene Anwendungen, Azure Services oder Anwendungen und Web Services von Partnern sein, die sich auch gegenseitig aufrufen können, um ihre Funktionalität bereitzustellen.

Fazit

Für Unternehmen und Softwareentwickler bietet sich mit Azure nun ein erweitertes Spektrum an Möglichkeiten zur Nutzung und Bereitstellung von IT-Funktionen:

  • Nutzung von Services, die auf Azure betrieben werden
  • Erweiterung bestehender lokal betriebener Anwendungen um Services
  • Migration lokal betriebener Anwendungen auf Azure
  • Betrieb von IT Funktionen auf Azure

Die Micosoft Plattform zeichnet sich durch eine Durchgägigkeit (vom Client beim Anwender, über Services im unternehmenseigenen Rechenzentrum bis hin zur Azure Plattform in Microsofts Rechenzentren) aus, die diese Wahlfreiheit, wo IT-Funktionen angeboten bzw. genutzt werden, erst ermöglicht. Diese Wahlfreiheit besteht sowohl für ganze Anwendungen als auch für einzelne Anwendungsteile.