Gewährt uns der aktuelle Trend zur serverlosen Architektur einen Einblick in die Zukunft der Webentwicklung? Wird sie hierdurch schneller, kostengünstiger, zuverlässiger und weniger fehlerbehaftet sein?
Komplexe Web-Anwendungen, die sich am Markt durchgesetzt haben, erfordern jahrelange Wartung und Updates. Brancheninformationen zufolge verursacht die fortlaufende Entwicklung nach dem initialen Produktivstart bis zu 80 Prozent der Gesamtkosten im Lebenszyklus einer Applikation. Welchen Einfluss könnte an dieser Stelle die serverlose Architektur nehmen? Kann sie Unternehmen und Entwickler vor der Erschaffung eines „Legacy-Monsters“ bewahren?
Bevor wir uns mit der Zukunft der Web-Entwicklung beschäftigen, sollten wir einen kurzen Blick auf die Historie werfen. Wie kam es zu den aktuellen Trends in der Web-Entwicklung?
Seit der Geburtsstunde des Internets ist ein Trend ungebrochen: Jede neue Technologie-Generation geht mit einer Vereinfachung und Beschleunigung der Webentwicklung einher. Außerdem ist eine zunehmend komponentenorientierte Vorgehensweise zu beobachten. „Das Rad muss nicht neu erfunden werden“. So lautet die wichtigste Devise. Vielmehr ist es sinnvoll, die Effizienz und Funktionalität dessen zu verbessern, was in der Produktivumgebung bereits erstellt, getestet und erfolgreich eingesetzt wurde.
Existiert eine andere Branche, die eine vergleichbare Entwicklung durchlaufen hat und uns einen Einblick in mögliche Zukunftsszenarien einer digitalisierten Welt gewähren kann? Ich bin der Auffassung, dass an dieser Stelle der Maschinenbau herangezogen werden kann. Hier hat die Devise „das Rad nicht neu erfinden“ ihren Ursprung.
In diesem Artikel werde ich den Versuch unternehmen, Parallelen in der Entwicklung beider Bereiche (Maschinenbau und Software) aufzuzeigen. Möglicherweise finden wir dadurch die Antworten auf sämtliche Fragen, die zu Beginn dieses Artikels gestellt wurden. Zudem sollte uns auf diese Weise klar werden, warum die Serverless-Architektur die Zukunft der Webentwicklung darstellt.
Mit der Erfindung der Schneckenpumpe setzte Archimedes erste Standards im Maschinenbau. Bis heute wird die archimedische Schraube zur Bewegung von Materie und zur Kraftübertragung eingesetzt. Im Laufe der Zeit wurden zudem technische Komponenten wie Zahnräder, Riemen und Stangen standardisiert. Diese unterscheiden sich nur in der Größe und dem Material, nicht jedoch in Form und Funktion.
Im Ergebnis entstanden preisgünstige Komponenten, die sich in unterschiedlichen Kombinationen bewährt haben. Hierdurch hat sich auch der Aufwand für Wartungen und sonstige durchzuführende Arbeiten reduziert. Zudem ist jedem anderen Techniker klar, wie einzelne Komponenten bei Bedarf auszutauschen sind.
Neue Maschinen werden heute fast ausschließlich aus standardisierten Einzelteilen hergestellt. Vergleichbar ist dies mit einer Art „Lego für Fortgeschrittene“. Tatsächlich handelt es sich bei Lego um eine vereinfachte Variante von Meccano – einem Modellbausystem, das 1898 von Frank Hornby in Liverpool, Großbritannien, entwickelt wurde. Meccano-Baukästen bestehen aus universell einsetzbaren Blechstreifen, Platten, Winkelträgern, Rädern, Achsen und Zahnrädern sowie aus Kunststoffteilen, die durch Muttern und Schrauben miteinander verbunden sind. Pläne zeigen auf, wie die standardisierten Teile zusammengesetzt werden können, um Modelle von Autos, Zügen, Flugzeugen, Gebäuden, Brücken und zahlreichen weiteren Dingen zu konstruieren – wie im realen Maschinenbau.
Der Einsatz individuell angefertigter Komponenten geht stets mit Risiken einher. Die Produktionskosten sind höher und die Wartung gestaltet sich komplexer. Aus diesen Gründen werden Sonderanfertigungen im Maschinenbau nur realisiert, wenn kein Weg daran vorbeiführt. Ausschlaggebende Szenarien sind beispielsweise:
Im Vergleich zur Geschichte des Maschinenbaus stecken die Bereiche Software-Engineering und Webentwicklung noch in den Kinderschuhen. Standards für Protokolle und Komponenten sind immer noch relativ neu. Bestenfalls existieren sie seit wenigen Jahrzehnten. Im Normalfall sind sie jedoch deutlich jünger. Sind Mechanik und Softwaretechnik trotz der stark abweichenden Evolutionsstufen vergleichbar?
Der Maschinenbau ermöglicht die Bewegung von Materie und die Kraftübertragung. Das Software-Engineering transportiert hingegen Informationen und Ideen. Doch werden in der Software-Entwicklung bereits standardisierte Komponenten eingesetzt, um Produkte (wie im Maschinenbau) schneller und kostengünstiger zu entwickeln? Ich blicke auf Dutzende wenn nicht gar Hunderte Projekte in meiner Laufbahn zurück. Aus dieser Erfahrung heraus kann ich sagen: Es existieren durchaus Tendenzen einer Standardisierung im Software-Bereich.
Ein Beispiel: In der Welt von Java Enterprise wurden zu Beginn in jeder Organisation eigene Komponenten und Frameworks unabhängig voneinander entwickelt (Parsing-Protokoll-Anfragen). Diese wurden später in Servlets API umgewandelt, was zu einer Standardisierung der Produktionskomponenten führte. Zuletzt folgte die Einführung des Spring Frameworks, das auf Servlets API basiert und die Komplexität reduziert. Im Spring Framework werden Komponenten nicht komplett neu entwickelt. Vielmehr stehen standardisierte Bausteine zur Verfügung, die nur konfiguriert werden müssen.
In der Vergangenheit konnte es Monate dauern, um eine Webanwendung zu realisieren. Besonders aufwendig war die Erstellung einer individuellen Verarbeitung von Web-Protokollen. Gleiches galt für die Servlet API. Die Fertigstellung von Web-Frameworks nahm ebenfalls mehrere Wochen in Anspruch.
Individuelle Sonderanfertigungen haben in einem soliden Geschäftsmodell kaum Platz. Gewinnorientierte Unternehmen benötigen bei der Realisierung von Produkten ein bestimmtes Maß an Sicherheit hinsichtlich der Kosten, der Terminplanung und der Risiken. Ob es sich um industrielle Produktion oder Software-Entwicklung handelt, macht hierbei keinen Unterschied.
Ein Blick auf den Markt zeigt, dass Java-Spring-Entwickler wesentlich gefragter sind als „einfache“ Java-Entwickler. Der Grund: Spring beinhaltet solide, ausführlich getestete und praxisbewährte Komponenten, die zudem von Experten gewartet werden. Diese Bausteine sind für den sofortigen Einsatz in der Web-Entwicklung geeignet. Kann die Entwicklung individueller Frameworks unter kaufmännischen Gesichtspunkten (Kosten, Risiken, Fehlerpotenzial) also überhaupt gerechtfertigt sein?
Wenn eine Branche bereits in Forschung und Entwicklung, Tests und Praxiserprobung für Komponenten investiert hat, sollten diese natürlich auch wiederverwendbar sein. Es existiert kein logischer Grund, warum es sich in der Software-Entwicklung anders verhalten sollte. An dieser Stelle sind wir erneut bei der serverlosen Architektur..
In den vergangenen zehn Jahren hat sich die Webentwicklung in Richtung Standardisierung von High-Level-Komponenten (Protokolle, Bibliotheken, Frameworks) entwickelt. Aktuell gelten Web-Frameworks (Angular und React im Frontend, Spring und .NET im Backend) hier als „Quasistandard“.
Als nächsten Schritt dieser Entwicklung sehe ich Cloud-Serverless-Technologien. Die Standardisierung in der Webentwicklung könnte den Maschinenbau sogar noch übertreffen. So sind mechanische Transporteinrichtungen beispielsweise schwer zu standardisieren, da sie Objekte unterschiedlicher Beschaffenheit befördern. Im Software-Bereich müssen hingegen ausschließlich Daten übermittelt werden. Dies geschieht im immer gleichen Basisformat – in Bytes.
Hieraus ergibt sich die Möglichkeit, Komponenten höchster Abstraktion zu realisieren, die in jeder Web-Anwendung benötigt werden. Nur einige Beispiele sind Benutzerverwaltungen, Benachrichtigungen, Bestellprozesse und die Zahlungsabwicklung.
Während diese universellen Bausteine als Wrapper dienen, sind die individuellen Kernmodule für individuelle Anpassungen zuständig. Zudem können die Kernmodule in Cloud-Umgebungen auf jeder Technologie entwickelt und mit den serverlosen Cloud-Komponenten verbunden werden, um eine Web-Anwendung zu realisieren.
Sehen wir uns ein Beispiel an, um dies zu verdeutlichen: Sie möchten eine Anwendung für die Terminreservierung einer medizinischen Einrichtung erstellen. Im Wesentlichen geht es darum, Ärzte und Patienten zu vernetzen, die Kommunikation zu verbessern, die Terminvergabe effizienter zu gestalten und Probleme in der Zahlungsabwicklung zu lösen. Der Arzt soll sprichwörtlich nur einen Klick vom Patienten entfernt sein.
Es handelt sich also weitgehend um eine Standard-Anwendung. Dennoch geht das Projekt mit Anpassungsaufwand für die Entwickler einher. Betroffen sind beispielsweise die Benutzerverwaltung, Benachrichtigungen, das Payment, die Protokollierung und die DevOps-Produktinfrastruktur. Erschwerend kommt hinzu, dass all dies wenig mit dem eigentlichen Ziel zu tun hat – der einfachen, effizienten Vernetzung von Ärzten und Patienten.
Insbesondere, wenn Entwickler monatelang an individuellen Komponenten arbeiten, besteht die Gefahr, das übergeordnete Ziel aus den Augen zu verlieren.
Serverless-Technologie verkürzt die Entwicklung und Konfiguration von Projekten dieser Art auf wenige Tage. Das Entwickler-Team muss sich nicht mehr mit der Infrastruktur befassen. Es kann sich voll darauf konzentrieren, ein einfaches, effektives und benutzerfreundliches Produkt zu realisieren.
Probleme der Skalierbarkeit, Zuverlässigkeit und Sicherheit werden dank serverloser Technologien ebenfalls gelöst. Entwickler müssen lediglich vorgefertigte Komponenten konfigurieren. Risiken individueller Lösungen im Produktiveinsatz gehören der Vergangenheit an. Und sollte sich herausstellen, dass die ursprünglichen Anforderungen falsch eingeschätzt wurden, halten sich die monetären und zeitlichen Verluste zumindest stark in Grenzen.
Serverlose Architekturen gehen mit schnellerer, kostengünstigerer Software-Entwicklung einher. Sie ermöglichen nicht nur einen Innovationsschub, sondern reduzieren auch die Kosten im Falle von Zielverfehlungen.
Webentwicklung mit serverloser Architektur geht für Unternehmen mit Kostensenkungen, Risikominimierungen und einer kürzeren Time-to-Market einher. In diesen Bereichen können vorgefertigte, hoch abstrahierte Cloud-Komponenten zum Informationstransport und zur Datenverarbeitung eingesetzt werden:
Was die breite Masse der Produkte betrifft, so sind serverlose, cloud-basierte Web-Anwendungen die Zukunft. Standardisierte, erprobte, zuverlässige, schnell implementierbare und einfach konfigurierbare Komponenten werden sich bei der Realisierung von Web-Applikationen jeder Art durchsetzen.
Serverlose Cloud-Bausteine werden von führenden Software-Experten künftig fortlaufend weiterentwickelt und gewartet. Zwar wird der Kern jedes Produkts weiterhin maßgeschneidert und geschützt sein. Die gesamte „Verpackung“ des Kerns wird jedoch aus wiederverwendbaren, einheitlichen, serverlosen Cloud-Technologien bestehen. Diese Entwicklung ermöglicht eine stärkere Kundenzentrierung, während Infrastruktur-Themen in den Hintergrund treten.
Zwar steht der Serverless-Ansatz noch am Anfang. Die Entwicklung ist jedoch schon so weit fortgeschritten, dass Sie bereits bei Ihrem nächsten Projekt von all den genannten Vorteilen profitieren können. Sie entwickeln den Kern und die Serverless-Berater von K&C verpacken ihn in cloud-basierte, standardisierte und bewährte Komponenten. Sie stellen damit eine geschützte und gleichzeitig kostengünstige Infrastruktur sicher.
Selbstverständlich müssen bei der Technologieauswahl für Ihr nächstes Projekt zahlreiche Aspekte beachtet werden. Im derzeitigen Entwicklungsstadium ist „Serverless“ nicht für jede Anwendung der Königsweg. Dennoch können bereits zahlreiche Applikationen von serverlosen Architekturen profitieren.
Sind Sie der Meinung, dass „Serverless“ für Ihr Projekt infrage kommt? Dann schreiben Sie uns oder rufen Sie uns an! Wir freuen uns auf die Details und werden Ihnen unverbindlich aufzeigen, ob eine serverlose Architektur in Ihrem Fall empfehlenswert ist.
Krusche & Company ist ein Beratungsdienstleister für Webentwicklung und Cloud-Services mit Sitz in München. Mit über 20 Jahren Erfahrung unterstützen wir unsere Partner bei der Realisierung ihrer digitalen Ziele. Egal ob führendes europäisches Unternehmen, KMU oder Start-up – unsere Software-Entwickler und Berater für digitale Transformation haben bereits zahlreiche Kunden jeder Größenordnung erfolgreich begleitet.