In Kapitel 1 dieser Serie habe ich über die sich verändernde Beziehung zwischen Unternehmen und ihrer digitalen Infrastruktur und den heutigen Möglichkeiten zur Codeerstellung gesprochen. In diesem Kapitel möchte ich einen Schritt zurück in die Vergangenheit machen und untersuchen, wie sich diese Beziehung im Laufe der Jahrzehnte des Webs verändert hat.
Der Grund dafür? Das Verständnis dafür, wie und warum sich das Web im Laufe der Zeit zu dem entwickelt hat, was es heute ist, wird Ihnen hoffentlich helfen zu verstehen, was wir erreichen wollen und welche Art von Dienstanbieter wir mit Upsun sein wollen.
Erlauben Sie uns also, Sie ohne Umschweife dorthin zurückzubringen, wo alles begann: 1995.
Die ersten Jahre des Internets waren geprägt von der Demokratisierung des Personal Computings, denn vor diesem Jahrzehnt hatten die meisten Menschen keinen eigenen Computer zu Hause. Von einer reinen Geschäftsfunktion wurden Computer und das Internet allgegenwärtig. Gleichzeitig traten zwei sehr starke und sehr gegensätzliche Phänomene auf.
Auf der einen Seite gab es das Internet, auf der anderen Seite den Rundfunk. Als große Unternehmen begannen, mit der Öffentlichkeit in einer Einbahnstraße zu kommunizieren, wollten sie ihre internen Systeme und Transaktionsmöglichkeiten nicht preisgeben.
Auf der anderen Seite veränderte sich die Computerwelt. Man konnte einen Computer unter seinem Schreibtisch haben, der von jedem Ort der Welt aus angeschlossen werden konnte, ohne jemanden um Erlaubnis fragen zu müssen. Die Einstiegshürde für den Betrieb eines vernetzten Computerprogramms wurde so niedrig, dass die Kostenreduzierung es jedem ermöglichte, seine eigenen Medien zu entwickeln. Dies führte zu Blogging und Wikipedias sowie zu Peer-to-Peer-E-Commerce wie eBay und PayPal.
All dies wurde durch das Wachstum von Open Source vorangetrieben und begleitet. In den Jahren 1995 bis 2005 liefen auf den Servern immer noch Unix und Windows, aber Linux wurde allmählich zur Standardwahl. Ebenso wie dynamische Programmiersprachen, die einfach zu implementieren waren, insbesondere PHP. Es waren die Jahre des Booms und der Pleite (der Dotcom-Crash), in denen man mit wenig Methode das Beste aus der Situation machen konnte. So konnte die Unit-Ökonomie mit fast keinen Einstiegskosten und sehr geringen Grenzkosten funktionieren. Denn wenn man keine Lizenzgebühren für Betriebssysteme und Programmiersprachen zahlen muss, kann man sehr schnell skalieren. Einige der heutigen Giganten - wie Amazon oder Google - wurden damals fast ohne Kapitalinvestitionen gegründet.
Das zweite Jahrzehnt des Internets sah den Aufstieg der zentralisierten sozialen Medien in ihrer heutigen Form, einschließlich Facebook. Mit der wachsenden Zahl verfügbarer Verbraucher erlebte dieses Jahrzehnt aber auch ein explosives Wachstum des rezentralisierten E-Commerce, wie Amazon Prime, Shopify und Etsy. Diese Unternehmen behielten einige der Merkmale der Peer-to-Peer-Ära bei, als Marktplätze, die es anderen erlaubten, in ihren geschlossenen Gärten zu spielen, aber zentral kontrolliert wurden.
Vielleicht noch wichtiger ist, dass dieses Jahrzehnt der Moment war, in dem das Internet mit dem Erscheinen des iPhone und des Android-Ökosystems mobil wurde. Angesichts des Ausmaßes der Internetnutzung war es plötzlich keine Option mehr, einen Webserver unter dem eigenen Schreibtisch zu betreiben. Zu dieser Zeit begann die Servervirtualisierung mit VMware, Solaris Zones, Xen und KVM.
Die Stückkosten für die Erstellung von Software sanken immer weiter - das waren die eigentlichen Gründerjahre -, während die Stückkosten für den Betrieb von Hardware weiter stiegen. Dies waren also auch die Jahre, in denen die Cloud aufkam, die wiederum einen unglaublichen Effekt auf die Demokratisierung hatte, begleitet von einer starken Bewegung in Richtung Zentralisierung. Angeführt von Amazon Web Services (AWS) und langsam begleitet von Google und Microsoft.
2005 bis 2015 waren auch die Jahre des Open Source. Neben tiefgreifenden Veränderungen in der Art und Weise, wie Software erstellt und entwickelt wurde, mit agilen Methoden, Softwaretests und Automatisierung. Im Mittelpunkt der Revolution stand die Einführung eines neuen Tools zur verteilten Quellcodeverwaltung, Git.
Git, das ursprünglich für den Linux-Kernel entwickelt wurde, ermöglichte im Vergleich zu früheren Tools wie SVN, CVS und SourceSafe eine viel besser skalierbare Entwicklung. Im Grunde bot es eine Zusammenarbeit in großem Maßstab. Doch gleichzeitig wurde Open Source selbst zentralisiert, wobei Github zum Herzstück wurde und die Softwareentwicklung weiter demokratisierte. Und während Open Source dominant wurde, hatten die meisten Projekte kein nachhaltiges Geschäftsmodell, außer dass sie einem anderen geschäftlichen Wettbewerbsziel dienten - zum Beispiel Google mit Android und Google mit Chrome.
In dieser Zeit begannPHP, das trivial zu implementieren ist und immer noch einige der größten Websites - Wikipedia, Facebook und Slack - und die zahlreichsten - Drupal und WordPress -betreibt, in der Start-up-Welt verdrängt zu werden. Zunächst durch Ruby und dann durch Python, das möglicherweise eine produktivere Option darstellte, aber viel schwieriger zu implementieren und zu verwalten war.
Dies waren die glorreichen Jahre der maßgeschneiderten Internetlösungen. Es entstanden Frameworks wie Rails, Symfony und Django, diedie Entwicklung robuster und skalierbarer Lösungen in einem Tempo ermöglichten, das im vorigen Jahrzehnt unvorstellbar war. Diese produktiveren, weniger trivial zu bedienenden Lösungen führen dazu, dass Tools zur Betriebsautomatisierung auftauchen - wie Chef, Puppet und Ansible - die bald als DevOps-Tools bezeichnet werden. Während sich die "Cloud" von einer kleinen Anzahl von Low-Level-Primitiven zu einer großen Suite von High-Level-Tools mit Mehrwert entwickelt. Die Anbieter von Infrastructure-as-a-Service (IaaS), die eine Just-in-Time-Bereitstellung und elastische Kapazitäten anbieten, beginnen mit dem Aufbau eng gekoppelter Dienste, die zu einer starken Bindung an den Anbieter führen.
Dank der zunehmenden mobilen Nutzung und der Verringerung der Komplexität durch die Popularität von REST-Architekturen, die andere Formen der Maschine-zu-Maschine-Kommunikation verdrängen, werden Web-APIs weit verbreitet. Das Web ist nicht mehr nur etwas, das von Webbrowsern konsumiert wird, sondern etwas, das die Verbindung vieler verschiedener Dienste von mehreren Anbietern auf überwiegend nahtlose Weise ermöglichen wird.
Dies sind auch die Tage des Auftauchens von Hyperscalern: Digital Native Companies, die die Cloud definieren werden. Facebook, Amazon und Google entwickeln ihre eigene Hardware und bauen maßgeschneiderte Software-Architekturen, die magische Fähigkeiten besitzen, die den üblichen Akteuren unzugänglich sind. Sie setzen kontinuierlich Systeme ein, die hochgradig verteilt und redundant sind und eine elastische Skalierbarkeit aufweisen. Sie entwickeln und definieren, was ein Betrieb in der Cloud im großen Maßstab bedeutet. Node.js erscheint als eine weitere Demokratisierung, die es Front-End-Entwicklern erlaubt, sich mit den Back-End-Leuten zu vermischen. Außerdem ermöglicht es hochkonvergente Anwendungsfälle, die zuvor nur für Hyperscaler und bis zu einem gewissen Grad auch für die guten alten Unternehmen mit Java und .NET zugänglich waren. Dies ist auch die Zeit der nachahmenden Astronautenarchitekten, die durch MongoDB und Kafka verkörpert werden.
In den frühen Tagen des zweiten Jahrzehnts tauchte ein Konzept auf, das sich durchsetzen und kurz darauf wieder in den Hintergrund treten sollte. Es handelte sich um eine Dienstleistung eines Computersystems, die nicht mehr von einem einzigen System, ja nicht einmal von einem einzigen Unternehmen erbracht wurde. Viele Unternehmen trugen ihre Fähigkeiten bei: zunächst durch das einfache Einfügen von Javascripts in ein Frontend; das "Drittanbieter"-Ökosystem. Webseiten bestehen aus Ressourcen, die von überall her kommen, aber auch aus Backends, die über APIs koordiniert werden, was oft bei den GAFAMs landet.
Wie ein Echo auf die ersten Tage des Webs, als Web-Skalen für alle zugänglich waren und IaaS-Anbieter und diese neuen Open-Source-Technologien die Einstiegshürde senkten. Allerdings oft zu doppelten Kosten und einer wachsenden betrieblichen Komplexität.
In diesem Jahrzehnt wurdenPlatforms-as-a-Service (PaaS) geschaffen, um die Betriebskosten zu senken, vor allem für monolithische Anwendungen mit Anbietern wie Heroku und AppEngine. Sie versprechen, diese wachsende betriebliche Komplexität aufzufangen, indem sie eine eigenwillige Laufzeit mit einigen starken Einschränkungen anbieten. Diese Einschränkungen sind keine lokalen Dateien, nur eine unterstützte Datenbank und eine Möglichkeit der Bereitstellung. In Verbindung mit der Produktivität von Web-Frameworks haben PaaS nicht nur die anfängliche Markteinführungszeit, sondern auch die Zeit bis zur Skalierung reduziert. Aber sowohl die architektonischen Einschränkungen als auch die nicht skalierbaren Preismodelle führten dazu, dass die meisten Unternehmen nach ihrem anfänglichen Wachstum von diesen Lösungen abrückten.
Es ist das Jahrzehnt von 2015 bis 2025, das Internet der Dinge ist allgegenwärtig. Wir sind nicht mehr einfach nur mit dem Internet verbunden, der Großteil der entwickelten Welt lebt und atmet es. Netflix, Uber, Airbnb, Booking, Amazon, Gmail, Google Docs, Slack und Teams sind in jeder wachen Stunde unseres Lebens präsent. In der Wirtschaft sind dies die Jahre der SaaS.
Die Wirtschaftlichkeit der Softwareentwicklung hat ihren Höhepunkt erreicht und eine neue Bewegung der Zentralisierung ausgelöst. Dies wurde durch die wenigen B2C-Plattformen und die wachsende Tendenz gefördert, auf die Entwicklung maßgeschneiderter Software zu verzichten und stattdessen SaaS-Lösungen zu nutzen. Open Source ist nach wie vor die Grundlage für alle diese Dienste im Backend, aber der Wert wird von SaaS auf der einen Seite und der Cloud auf der anderen Seite erfasst.
Als Gegenreaktion beginnen kommerzielle Open-Source-Lösungen mit starken Akteuren in den Bereichen Datenbanken (MongoDB, Elastic), DevOps (Hashicorp, Cloudbees und Docker) und CMS/E-Commerce (Automattic, Acquia und Magento) zu reifen.
Aus den monolithischen Anwendungen des letzten Jahrzehnts, die mit einer einfachen, mehrschichtigen Architektur gebaut wurden, die für das Internet typisch ist, entstanden neue Lösungen. Sie bestehen oft aus zustandslosen Microservices auf der einen Seite und einer skalierbaren, vom Cloud-Anbieter angebotenen Datenfabric auf der anderen Seite. Diese neuen Topologien brachten ein enormes Maß an betrieblicher Komplexität mit sich, was dazu führte, dass Observability-as-a-Service - wie NewRelic und Datadog - als Abhilfe entstand.
Diese neuen Topologien machen andere Formen der Bereitstellung und Workload-Isolierung erforderlich. Als Entwicklungstool wurden Container zunächst demokratisiert und die Ausführungseinheiten wurden kleiner. Kubernetes gewann schnell an Popularität und verdrängte in gewisser Weise Linux als Abstraktionsschicht für das "Ding, auf das man deployt". Dies geht mit einer weiteren Explosion der Betriebskomplexität der zugrunde liegenden Infrastruktur einher - zusätzlich zu dem, was bereits von den Arbeitslasten beigetragen wurde.
Es entstehen neue Formen von PaaS, bei denen nicht die gesamte Infrastruktur verwaltet wird, sondern nur die kleinsten Elemente des Systems - mit einem eigenwilligen Ansatz. Kleine, zustandslose Teile werden durch Service-Meshes wie Lambda und Serverless miteinander verknüpft. Auch wenn die inhärente Komplexität verteilter Systeme dazu führt, dass diese bestenfalls anekdotisch eingesetzt werden. Die meisten Unternehmen setzen entweder monolithische Anwendungen darauf auf oder nutzen sie nur am Rande der Anwendung für sehr einfache Aufgaben.
Bei der aktuellen Cloud geht es größtenteils um die Trennung der Datenfabric, die der Lock-in-Mechanismus der Hyper-Scales-BigQuery und RDS ist. Ein Teil dieser Trends besteht jedoch darin, dass die Datenschicht auf eine isolierte Ebene verlagert wird. Oftmals "als Service", was wir am explosionsartigen Wachstum von Snowflake, aber auch an der starken Marktposition von MongoDB, Confluent und Elastic Search sehen können. Dies gilt umso mehr für die Datenschicht, die die eigentlichen Daten Dritter enthält. Ursprünglich war dies das OpenData-Paradigma, aber jetzt dreht sich alles um maschinelles Lernen und trainierte Modelle. OpenAI und Anthropic sind hier die Hauptbeispiele dafür, dass "Ihre" Daten zu einer fein abgestimmten Schicht über einem Closed-Source-Großsprachenmodell (LLM) werden. Sie sind nur noch als entfernte API zugänglich und haben keine Kontrolle mehr über Ihre Daten.
Das erste "Jahrzehnt" der produktionsreifen LLMs bestand aus proprietären SaaS-APIs - ein Jahrzehnt, das nur wenige Monate dauerte. Im zweiten und dritten Vierteljahrhundert schlug das Pendel bereits in Richtung Open-Source-Modelle aus, und LLAMA sorgte dort für eine Explosion. Wir sahen auch die wachsende Bedeutung von Inferenzen auf dem Gerät, privaten fein abgestimmten Modellen und erklärbarer KI - alles Indikatoren dafür, dass beide Ansätze relevant sein werden.
Im Zusammenhang mit diesen wachsenden Nutzungsmustern haben sich Cloud-Services als einfache Edge-Services erwiesen. Während eine andere Gruppe wichtiger Akteure, die CDN-Anbieter, Laufzeitfunktionen einführten, die über ihre ursprünglichen Caching-Funktionen hinausgehen, um Teile von Anwendungen am Rande auszuführen.
Und am Ende dieses Jahrzehnts sehen wir das Aufkommen von Platform Engineering als Antwort auf die zunehmende Komplexität moderner Softwarearchitekturen, wie Gartner es ausdrückt. Teil dieses Trends ist das Versagen der ersten Generation von PaaS, über den anfänglichen einfachen monolithischen Anwendungsfall hinaus zu skalieren. Als Gegenstück dazu sehen wir MACH, eine neue Bezeichnung, von der wir nicht erwarten, dass sie von Dauer ist, als potenziell ultimatives Beispiel für das Ende eines dezentralen Zyklus. Die Zukunft dreht sich um Kompositionsfähigkeit und wird möglicherweise damit enden, dass Unternehmen keine eigene IT-Infrastruktur mehr betreiben - alles läuft über SaaS.
Platform.sh ist durch Upsun in der einzigartigen Lage, eine technische und organisatorische Lösung für Produktteams vorzuschlagen, um sowohl die Wetten abzusichern als auch Best-of-Breed-Praktiken zu integrieren. Unabhängig davon, ob diese Teams vollständig auf SaaS/API umsteigen, oder ob sie Fähigkeiten intern re-integrieren, oder ob sie KI-gestützte Kodierung und den weit verbreiteten Einsatz von LLMs in der Produktion frühzeitig einsetzen, oder ob sie darauf warten, dass sich der Staub legt und die Technologien ausreifen.