von Peter Monadjemi
(wohin geht die Reise? - während einer Keynote der PDC 2008)
Microsoft's Professional Developers Conference 2008 liegt inzwischen wieder ein paar Wochen zurück. Die folgende kleine "Nachlese" soll noch einmal die wichtigsten Themen (aus meiner subjektiven und mit Sicherheit alles andere als vollständigen Sicht) zusammenfassen.
Die wichtigsten Themen der PDC 2008 waren:
Der "Knaller" war natürlich Azure. Nicht, weil sich damit ganz tolle neue Anwendungen entwickeln lassen (im Grunde sind es gewöhnliche ASP.NET-Web- und Webservice-Anwendungen, wo Entwickler zudem auf vertraute Dinge wie ADO.NET verzichten müssen) oder weil das Blau auf den Werbeprospekten so wunderschön tiefblau ist, sondern weil Microsoft damit (endlich) den Schritt in Richtung einer Services-Plattform geht, die sich hinter den Angeboten von Amazon oder Google nicht verstecken muss, und Kunden (gegen Bezahlung) in naher Zukunft eine hochskalierbare und entsprechend performante Hosting-Plattform für Web-Anwendungen anbieten wird, für die Entwickler mit vertrauten Werkzeugen (Visual Studio und .NET Framework) entwickeln können.
Der entscheidende Unterschied zwischen einem Azure-Hosting und dem traditionellen Web-Hosting ist die Skalierbarkeit und der Umstand, dass der Benutzer/Kunde über sein Webinterface die benötigten Dienste jederzeit hinzunehmen oder abbestellen kann. Dies sind attraktive Rahmenbedingungen für das Hosting großer Webanwendungen, die ein einzelner traditioneller Provider im Allgemeinen nicht bieten kann (Microsoft hat bereits und will in Zukunft weitere Milliarden (!) in die Hardware investieren - die Rede ist von 20 DataCentern, von denen jedes einzelne 1 Milliarde US$ kosten soll). Wie es bei Amazon (klingt ein wenig ungewöhnlich, das ist klar, da Amazon nicht gerade als Provider für Server-Kapazitäten bekannt ist) mit dem Elastic Cloud Computing Service schon seit längerem möglich ist, "kauft" sich ein Anwender einfach zusätzliche (virtuelle) Server, wenn die Performance seiner Anwendung gesteigert werden soll. Ein intelligenter "Controller" (bei Azure der Fabrique Controller) sorgt für die Verteilung der Anwendung auf die zur Verfügung stehenden Ressourcen. Wird die Performance nicht mehr benötigt, werden die Server wieder abbestellt, was über ein Web-Interface erledigt wird. Weder bekommt die Anwendung davon etwas mit, noch muss sie dafür ausgelegt sein. Anwendungen, die auf Azure am Anfang gehostet werden, werden vermutlich klassische Webanwendungen (bzw. Teile einer größeren Webanwendung sein) und Webservices.
Während der Azure-Keynote am ersten Tag der PDC hat die Firma Bluehoo eine neue Social Networking-Plattform vorgestellt, bei der sich die Teilnehmer über ihr Handy anmelden und danach sehen können, welche anderen Teilnehmer sich gerade in der Nähe aufhalten. Diese Anwendung hätte man natürlich auch bei einem traditionellen Provider hosten können, doch wäre es für den Betreiber der Anwendung nicht steuerbar, wenn kurzfristig statt den üblichen 1.000 auf einmal 100.000 seiner Anwender gleichzeitig online sind.
Ein Kunde kann preiswert einsteigen und bei Bedarf Dienste dazu kaufen. Das ist in etwa so als würde Microsoft ein Word für 29.99€ verkaufen und eine Grammatikprüfung oder einen Editor für ClipArts für jeweils 20 Cent pro Tag extra vermieten, in dem der Freischaltcode zeitlich begrenzt wird (in der Praxis würde das aber nicht funktionieren, da es für die Mitbewerber sehr einfach wäre das Angebot zu unterbieten – nach dem Motto "Wenn Sie das neue SuperDuperOffice für 10€ noch heute bestellen, sind Grammatikprüfung und ClipArt-Editor für die ersten 6 Monate gratis" - bei einer Hardwareinfrastruktur, die mehrere Milliarden US$ kostet ist das nicht möglich - OpenSource kann hier nicht ganz mithalten).
Bestehende ASP.NET-Webanwendungen können nicht nach Azure 1:1 übernommen werden, da hier andere Spielregeln gelten. Statt ADO.NET und DataSets gibt es die eher schlichten SQL Data Services (SDS). Auch der Umstand, dass jede Anwendung in einer strengen „Sicherheitssandbox“ ausführt wird eine Rolle spielen. Auch das direkte Debuggen einer Azure-Anwendung ist nicht möglich, es muss auf dem Desktop vor dem Hochladen der Anwendung in der Wolke geschehen (oder per Einträge in Log Files, die dann z.B. mit der PowerShell elegant ausgewertet werden können).
Die Azure Services Platform besteht aus insgesamt vier Kernelementen:
(Abbbildung: Ein Blick in das innere der Wolke)
Kernelement der Azure Services Plattform ist das neue "Wolken-Betriebssystem" Windows Azure, hinter dem ein gewöhnlicher Windows Server 2008 mit IIS 7.0 und dem .NET Framework als Grundbestandteile steht. Jede Anwendung läuft in ihrer eigenen virtuellen Maschine. Hardware-Virtualisierung spielt daher eine zentrale Rolle. Diese virtuellen Maschinen muss der Entwickler allerdings nicht selber anlegen, darum kümmert sich natürlich Azure. Der Entwickler gibt im Rahmen eines Web-Interface lediglich bestimmte Eckdaten vor. Der gigantische Datenstore von Windows Azure basiert zwar auf einem SQL Server 2008-Cluster, doch wird dieser nicht wie in einer typischen Webanwendung per ADO.NET angesprochen, sondern über die schlichten SQL Data Services. Microsoft macht sich so schnell nicht selber Konkurrenz. Wer einen SQL Server 2008 hosten will, muss ihn auch voll bezahlen.
>>Mit den SQL Services lassen sich Tabellendaten in einer SQL Server-Datenbank (per LINQ) ansprechen. Aktuell gibt es aber nur die SQL Data Services, die bereits seit Frühjahr letzten Jahres zur Verfügung stehen. Für die Zukunft sind weitere (natürlich kostenpflichtige) Services, etwa Reporting, geplant.
>>Mit den .NET Services (vormals BizTalk Services) lassen sich Unternehmensdaten im Stile von BizTalk Server (wenngleich BizTalk Server und BizTalk Services nicht direkt, sondern eher konzeptionell verwandt sind) zwischen Unternehmensgrenzen "orchestriert" (also gemäß festgelegten und in der Regel aus Unternehmensprozessen abgeleiteten Prozessen) austauschen. Auch diese Services gibt es bereits eine Weile als Vorabversion.
>>Mit den Live Services lassen sich jene Daten ansprechen, die im Rahmen von Windows Live gespeichert sind, z.B. Kontaktdaten oder Fotos. Dies ist der Bereich, der mir am wenigsten behagt. Wozu soll das gut sein und was haben die Live-Services mit Unternehmensanwendungen zu tun? Vermutlich wurden die Live Services nur deswegen in das Gesamtbild aufgenommen, damit nicht ständig gefragt wird, wie sich Windows Live von Azure unterscheidet. Jetzt kann man sagen: Frag nicht so blöd, es ist ein Teil davon (hier erklärt Dariusz Parys, wie das Live Framework SDK installiert wird).
Da der Azure-Server "in den Wolken" läuft, sieht man ihn als Anwender/Entwickler genauso wenig wie man einen Windows Server 2003-Server sieht, den der eigene Provider einsetzt. Für viele Verantwortliche wird sich daher die Frage stellen, bleibe ich bei meinem Provider oder hoste ich künftig meine (noch nicht entwickelten) Anwendungen bei Microsoft unter Azure? Microsoft hat auf der Azure-Webseite ein kleines FAQ zusammengestellt, das ich aber für nicht sehr ergiebig halte.´
Neben der Frage, wie stark sich die Anwendungarchitektur einer Azure-gehosteten ASP.NET-Webanwendung von der einer regulär gehosteten ASP.NET-Webanwendung unterscheidet, ist die die entscheidende Frage natürlich die nach den Kosten. In diesem Punkt hält sich Microsoft noch bedeckt und hat lediglich angekündigt, dass die Preise "konkurrenzfähig" sein sollen. Das aktuelle Preismodell von Office Online (SharePoint-Hosting) ist vernünftig. Kein Dumping-Angebot, was sich Microsoft sicher problemlos leisten könnte, aber auch nicht hochpreisig. Da sich die Cloud-Dienste jederzeit kündigen lassen und fein granuliert sein dürften, dürfte es ähnlich wie bei den Handy-Tarifen bei einzelnen Teildiensten um sehr kleine Beträge gehen.
Sehr viel interessanter als Windows Azure (skalierbares Hosting, wichtig, aber relativ unspektakulär) ist für Entwickler der Applicationsserver Dublin, der BizTalk Server ersetzen kann/soll und, da er eine kostenlose Erweiterung von Windows Server 2008 sein soll, auf der PDC als "BizTalk Server Express" verspöttelt wurde (allerdings nicht von Microsoft). Mit Dublin und der Modellierungsplattform Oslo, die aus der Modellierungssprache M und dem grafischen Tool Quadrant besteht, werden ganz neue Sorten von Anwendungen möglich sein. Doch davon sind wir im Moment noch ein paar Jahre entfernt.
Überhaupt hielt sich Microsoft auf der PDC mit Terminen wie üblich vornehm zurück. Azure liegt gerade als erstes CTP vor (irgendwo im Web habe ich von dem "2. Halbjahr 2009" als anvisierten Freigabetermin der 1.0 Version gelesen, den ich, sollte die Information seriös sein, für realistisch halte, da das Fundament bereits steht und am Anfang anscheinend nur ein Minimum zusätzlicher Services angeboten wird). Oslo dürfte ein Thema für die Zeit "nach Visual Studio 2010" sein. Auf der einen Seite ist das gut, da es Entwicklern Zeit gibt sich mit den neuen Themen und Techniken ausführlich zu beschäftigen (viele dürften noch nicht einmal auf dem Stand des .NET Framework 3.5 SP1 sein und bei Themen wie Entity Framework oder auch LINQ allenfalls eine vage Vorstellung haben). Auf der anderen Seite ist es (wieder einmal) ein wenig frustrierend, dass kein Zeitplan kommuniziert wird, der eine Orientierung für eigene Projekte sein könnte (doch ein solche Terminplan wäre unrealistisch bis unseriös, das hat das Vista-Debakel leider deutlich gemacht).
Azure - der Name liegt nach Mittelmeer, einer sanften Brise und Urlaub in Italien. Für Microsoft soll es in Zukunft jene Milliarden einfahren, die vermutlich durch sinkende Verkaufszahlen im klassischen Lizenzgeschäft verloren gehen dürften. Microsoft meint es ernst mit seiner Software+Service-Strategie (was bislang eher eine vage skizzierte Vision war). Software wie Windows und Office wird weiterhin in "Boxen" verkauft (es ist aus meiner Sicht ein verbreitetes Missverständnis, dass Azure bedeutet, dass Office in Zukunft als Web-Anwendung angeboten wird), wenngleich das Medium nicht mehr die DVD sein muss, sondern auch das Internet. Auf der PDC wurde am 1. Tag Microsoft Online (in einem unpassenden Marketing-Vortrag) erneut angekündigt, über das in Zukunft u.a. Office online bezogen werden kann, wobei hier Microsoft auf das Partnermodell setzt, das bereits in der Vergangenheit sehr erfolgreich war. Der Service-Teil ist ein weiteres Angebot, das z.B. die CRM Services, die SharePoint Services und irgendwann sicher auch die SQL Services (ein heikles Thema, da Microsoft sehr viel Geld mit SQL Server-Lizenzen verdient) umfassen wird.
Die große Frage ist natürlich, wer das überhaupt braucht. Die Antwort ist meiner Meinung nach, das mit Azure (und vergleichbaren Angeboten anderer Firmen) eine neue Kategorie von Anwendungen entstehen wird, die, was die Architektur betrifft, heute noch nicht existieren. Anwendungen, die ihre Funktionalitäten über Service-Funktionen beziehen und damit Vorteile bieten was Skalierbarkeit, Wartbarkeit und Kosten/Zeit-Faktor bei der Umsetzung angehen. Diese neue Kategorie von Anwendungen wird aber nicht nur in großen Unternehmen anzutreffen sein. Sebastian Weber von Microsoft hatte mir auf der PDC ein paar Beispiele genannt, die sehr interessant klangen. Ein Beispiel, soweit ich mich noch an den Kurzvortrag vor dem Starbucks Cafe erinnern kann, betraf den klassischen Handwerker (immer ein beliebtes Beispiel, wenn es um die Glaubwürdigkeit einer neuen Anwendungskategorie geht - das war damals schon zu den Zeiten des C64, neben der Kochrezeptesammlung, das ultimative Argument für die Anschaffung eines Heimcomputers), der z.B. seine Rechnungsdaten und Auftragsdaten, da er als Einzelunternehmer häufig unterwegs ist, mobil einsehen und erfassen möchte. Bislang musste ein Entwickler einer solchen Lösung seinem handwerkenden Kunden die komplette Infrakstruktur selber zur Verfügung stellen - vom mobilen Gerät (meistens ein unhandlicher Notebook) über die Synchronisationsschnittstelle bis hin zum (meistens auf FoxPro) basierenden Backend.
Mit Windows Azure gibt es diese Infrastruktur bereits und darüber hinaus mit .NET und .NET Compact Framework eine reichhaltige API, die auch das Einbinden mobiler Geräte in die Reichweite eines "normalen" Entwicklers holt. Seinen Kunden aus der Handwerkszunft kann der Entwickler dann Windows Azure in Zukunft mobile Erfassung, transaktionsorientiert und sicher mit hoher Verfügbarkeit und theoretisch beliebiger Skalierbarkeit bieten (für den Fall, dass die Lösung so gut ankommt, dass gleich der gesamte Handwerkerverband auf die neue Plattform unseres Entwicklers umschwenkt).
Für Entwickler bietet Microsoft derzeit:
Voraussetzung ist Visual Studio 2008 SP1 unter Windows Server 2008 oder Web Developer mit SP1 und damit kann jeder kostenlos einsteigen. Wie sich ein erstes Hello, World umsetzen lässt wird hier beschrieben. Die Microsoft-Homepage für Azure-Entwickler ist http://www.microsoft.com/azure/resources.mspx.
Zur Zeit wirkt das Ganze leider noch nicht wie aus einem Guss. Es fehlen Guidelines, die einem Entwickler erklären, wie eine Cloud-Anwendung aufgebaut sein muss. Es fehlen Beispiele (lediglich im Zusammenhang mit den SQL Data Services gibt es ein paar). Und für die Nutzung der SQL Data Services CTP wird allen Ernstes eine Kreditkarte verlangt (die aber nicht belastet wird - ein schlechter Scherz, der nicht gerade die Entwickler in Massen dazu bringen wird sich mit dem Thema zu beschäftigen).
Natürlich war auf der PDC 2008 Azure nur ein Thema von mehreren, wenngleich das Beherrschende. Am 2. Tag wurde der Fokus auf die Produkte gelegt, die für die nahe Zukunft eine Rolle spielen:
Insgesamt wurden sehr viele Themen in die 3 1/2 Tage PDC gepackt. Es gab viele Ankündigungen, ein konkreter Termin wurde wie immer nicht genannt (oder ich habe es nicht mitbekommen, was immer eine Möglichkeit ist). Fertig ist lediglich Silverlight 2, was aber keine echte Neuerung ist. Wie immer setzt sich Microsoft mit einer solchen Ankündigungsparade enorm unter Druck. Insbesondere bei Azure führt der Umstand, dass man (aus meiner subjektiven Perspektive) 2-3 Jahre zu spät ist dazu, dass es wenig Puffer für Verschiebungen gibt (auf der anderen Seite hatten die Firmen, die mit einem neuen Trend die ersten waren, nie etwas davon - siehe Netscape). Viele Entwickler hätten sicher nichts dagegen, wenn Visual Studio 2010 (sieht man von einigen Neuerungen bei Team System und vor allem Team Foundation Server ab) frühestens erst in 3 Jahre kommen würde. Nun wird es vermutlich in 1 1/2 Jahren kommen, wenngleich ich immer noch von Herbst 2010 ausgehe. Doch egal, wann die Ankündigungen nun genau in käufliche Produkte umgesetzt werden, ein paar Trends sind unübersehbar:
Erwähnenswert ist auch, was auf der PDC 2008 kein Thema war: SOA, Composite Applications, ALM (zumindestens nicht als Schlagwort), Open Soure, Shared Source usw. (lediglich Miguel de Icaza hielt die Open Source-Flagge hoch, in dem er in einem tollen Vortrag Mono 2 vorstellte), Interoperabilität zu anderen Welten und Mindori, jene "Geheimwaffe" in Gestalt eines zum großen Teil auf Managed Code basierenden "Windows-Nachfolgers", die im Sommerloch dieses Jahres lanciert wurde als es (vermutlich) darum ging, das Vista-Debakel PR-technisch ein wenig abzufedern.
Als Fazit bleibt. Der Azure-Zug hat Fahrt aufgenommen, Dublin und Oslo werden später dazu gekommen und eine Art Transrapid (wie es diesem "Leuchturm-Projekt" ergangen ist, ist mir natürlich klar - das dpa-Bild, auf dem zu sehen ist, wie das Transrapid-Modell Mitte des Jahres vom Münchener Flughafen per LKW abtransportiert wurde sollte Foto des Jahres werden und steht sinnbildlich für gescheiterte Großprojekte) für die Umsetzung einer neuen Generation von Unternehmensanwendungen bilden, die wahre "Service orientierte Anwendungen" sein werden.
Peter Monadjemi, November 2008
Disclaimer The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.