Kolumne: Stropek as a Service

Microsoft und die schwindende Bedeutung des Serverbetriebssystems
Kommentare

Im Microsoft-Universum spielt sich aktuell eine Zeitenwende ab. Es ist erst wenige Jahre her, dass Microsoft Linux als harten Konkurrenten gesehen hat. Mit Satya Nadella als CEO von Microsoft hat sich das in den letzten paar Jahren ins Gegenteil umgekehrt. Echte, späte Liebe oder alles nur gespielt? Und was heißt das für die Entwicklergemeinde im Microsoft-Universum?

„Geschüttelt, nicht gerührt“ – wer kennt es nicht, dieses Zitat des weltberühmten, britischen Spions 007? 2006 meinte Daniel Craig als James Bond in Casino Royale dann aber: „Sehe ich so aus, als ob mich das interessieren würde?“. Diese Einstellung passte so gar nicht zum früheren Image von Bond. Im Microsoft-Universum spielt sich aktuell eine ähnliche Zeitenwende ab. Auf Satya Nadellas Folien liest man Dinge wie „Microsoft liebt Linux“ und „Microsoft liebt Docker“. Aber was bedeutet das wirklich?

Linux wirklich ein „First-Class Citizen“?

Wer die Ankündigungen von Microsoft in letzter Zeit verfolgt hat, ist wahrscheinlich mittlerweile überzeugt, dass die Open-Source- und Linux-Unterstützung in Redmond ernst gemeint ist. Alle neuen Entwicklungstools (z. B. Visual Studio Code) und -Bibliotheken (z. B. .NET Core) sind Open Source und Cross-Platform. Sie laufen auf einem Linux- genauso wie auf einem Windows-Server. Wichtige, neue Visual-Studio- und Azure-Features wie zum Beispiel die Docker-Unterstützung sind sogar im ersten Schritt nur in Verbindung mit Linux verfügbar, Windows folgt erst später. Wem das noch nicht genug ist, der hat sich vielleicht von der Verfügbarkeit von SQL Server unter Linux überzeugen lassen.

Was steckt dahinter?

Man muss sich trotz des Schwenks zu Open Source keine Sorgen um die Zukunft von Microsoft machen. Verständlich wird das Verschwinden der „Pinguin-Phobie“ durch die Azure-Cloud. Mittlerweile ist sie in Sachen Linux-Unterstützung so stark, dass Microsoft davon ausgeht, viele Linux-Benutzer von Azure überzeugen zu können. Die veröffentlichten Zahlen zeigen, dass der Plan mehr und mehr aufgeht. Bereits ein Drittel aller virtuellen Maschinen in Azure nutzt Linux statt Windows. Natürlich laufen diese Server in der Cloud nicht kostenlos. Schließlich stecken riesige, empfindlich teure Rechenzentrumsinfrastrukturen dahinter. Damit trägt jeder Linux-Server in Azure zum (finanziellen) Erfolg von Microsoft bei. Je besser die Linux-Unterstützung, desto größer der Anteil von Azure am weltweiten Cloud-Kuchen.

Container als Schlüsseltechnologie

Zusätzlich zu den finanziellen Aspekten ist die Containertechnologie ein Katalysator für Linux in Azure. Viele Eigenschaften von Docker und Co. sind in der Cloud gefragt: Mit Containern lässt sich die Hostingdichte erhöhen, sie bieten eine Sandbox z. B. zur Tenant-Trennung, sie erleichtern das Deployment uvm. Zwar unterstützt mittlerweile auch der hauseigene Windows Server seit Version 2016 Docker-Container. Sie bieten eine solide Basis, sind aber noch nicht so ausgereift und breit unterstützt wie Container unter Linux.

Plattformunabhängigkeit in der Softwareentwicklung

Für uns SaaS-Anbieter ist die Plattformunabhängigkeit eine gute Nachricht. Wir müssen uns nicht mehr entscheiden, ob wir ein Windows- oder ein Linux-Shop sind. Durch die Verwendung plattformunabhängiger Programmiersprachen, Frameworks und Standards können wir das beste Werkzeug für die jeweilige Aufgabe wählen. Durch .NET Core haben wir diese Wahlfreiheit auch in der .NET-Entwicklung erhalten.

Warum sollte man Linux als SaaS-Entwicklungsfirma überhaupt in Betracht ziehen? Natürlich ist der Preis immer ein Thema. In manchen Bereichen ist Linux kostengünstiger als Windows. Meiner Erfahrung nach gibt das aber selten den Ausschlag. Wichtiger ist es da schon, dass manche Frameworks von Linux kommen und unter Windows eingeschränkte Funktionalität bieten (z. B. fehlende Unterstützung von Windows bei einigen beliebten Ruby-on-Rails-Modulen).

Am Ende des Tages spielen aber persönliche Faktoren wie vorhandenes Wissen und Vorlieben eine große Rolle. Man darf diesen Punkt keinesfalls unterschätzen. Das Gewinnen von entsprechend ausgebildetem Fachpersonal ist in der IT eine große Herausforderung. Was tun, wenn gerade talentierte Entwicklerinnen und Entwickler zur Verfügung stehen, die viel Linux-Know-how mitbringen und auf dieser Plattform bleiben möchten? Es spricht heute nichts mehr dagegen, Linux und Windows im Backend zu mischen. Standards wie RESTful Web APIs, OpenID Connect, AMQP etc. sorgen dafür, dass Systeme über Plattformgrenzen hinweg zusammenarbeiten können.

PaaS und Cloud

Erst durch die Cloud, und hier insbesondere durch PaaS-Angebote, wird das Mischen der Plattformen für viele Firmen erst machbar. Administrationsteams in lokalen Rechenzentren waren in der Vergangenheit bemüht, Monokulturen hochzuziehen. Möglichst gleiche Umgebungen sollten den Wartungsaufwand reduzieren. Für das Betreuen unterschiedlicher Plattformen waren die personellen Mittel nicht vorhanden.

In der Cloud kümmert sich der Provider um den Betrieb. Ein gutes Beispiel ist einer meiner Lieblings-Cloud-Dienste, Azure App Service. Egal, ob ich mich für die Windows- oder die Linux-Variante entscheide, den Server bekomme ich so oder so kaum zu Gesicht. Betriebssystemkonfiguration, Updates, Absicherung, Deployment-Automatisierung uvm. laufen im Hintergrund automatisch. Das Mischen von Plattformen führt also nicht zu einer Explosion der Wartungskosten. Schluss mit Kompromissen, wir haben als Entwicklerinnen und Entwickler endlich die freie Wahl der Werkzeuge.

Lesen Sie alle Ausgaben der Kolumne „Stropek as a Service„!
In der Kolumne greift Rainer Stropek spannende Aspekte wie die Finanzierung, den Customer Lifetime Value, aber auch wichtige Themen wie Billing, Kundenbindung durch Qualität oder APIs auf – alles aus der Sicht eines Unternehmers, der seit 20 Jahren in der IT-Branche tätig ist und seit fünf Jahren intensive Erfahrungen mit SaaS gesammelt hat.
Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -