Alle paar Jahre erscheint eine neue, bahnbrechende Lösung in der IT-Welt. Derzeit konzentrieren sich alle Augen auf maschinelles Lernen (ML) und künstliche Intelligenz (AI). Früher waren es Container, an die sich wahrscheinlich jeder gewöhnt hatte. Was vor ein paar Jahren noch eine absolute Neuheit war, ist heute Routine.
Obwohl die Containerisierung als Innovation viele wichtige Probleme gelöst hat, war sie nicht sehr aufschlussreich. Darüber hinaus hat es aus Sicht des Teammanagements nur die uralte Trennung zwischen Administratoren und Programmierern vertieft.
Es hatte jedoch seine Vorteile. Zweifellos hat es im Vergleich zu früheren Lösungen die Reibung zwischen den Teams verringert und deren Zusammenarbeit erleichtert. Infolgedessen sind CI / CD-Prozesse repetitiver und effektiver geworden. Es bedeutete auch weniger Probleme beim Veröffentlichen von Änderungen und eine kürzere Zeit zum Starten des Produkts.
Was machen Container? Einfach ausgedrückt, sie binden Ihre alte Software in ein standardisiertes Paket ein, das für Administratoren einfacher zu handhaben ist. Dies ist besonders wichtig im Zusammenhang mit der Verwaltung von Abhängigkeiten und Umgebungseinstellungen. Es gibt jedoch nichts umsonst und diese Verbesserungen haben ihren Preis. Sie sind häufig mit einem komplizierteren Prozess zum Erstellen von Apps und einer vollständigen Verwaltung spezialisierter Systeme für die Container-Orchestrierung verbunden. Darüber hinaus können sie nicht ohne ein hochqualifiziertes Team implementiert werden.
Und wenn es einen besseren Weg gibt?
2014 stellte AWS einen neuen Cloud Service vor, der die Art und Weise revolutionierte, wie wir die Softwarebereitstellung betrachten. AWS Lambda – im FaaS-Modell (Function as a Service) – hat zusammen mit vielen anderen Cloud-nativen Diensten das gestartet, was wir heute als serverless bezeichnen.

Was ist serverless?
Technopedia definiert Serverless Computing als eine Kategorie von Lösungen, bei denen der Client keine Server benötigt, um seinen Code auszuführen, sondern bei Bedarf auf sie zugreift. Der Cloud-Anbieter startet und stoppt den Dienst im PaaS-Modell als Antwort auf bestimmte Anforderungen. Es werden Gebühren in Abhängigkeit von der Menge erhoben.
Warum sollte es mich interessieren?
Es ist sehr wahrscheinlich, dass AWS Lambda und Serverless am besten für ihr Abrechnungsmodell bekannt sind, das Pay As You Go heißt. In einer Serverless Architektur müssen Sie nicht für nicht verwendete Ressourcen bezahlen. Sie zahlen nur für das, was aktiv genutzt wird (z. B. die Bearbeitung von Anfragen von Benutzern). Sie zahlen auch für den Storage Service, den Sie zum Speichern Ihrer Dateien verwenden (Amazon S3, DynamodDB und die Aurora-Datenbank).
Durch die Besonderheit dieses Modells können Sie die Kosten erheblich senken. Besonders wenn es auf ein bestimmtes Problem angewendet wird. Lassen Sie es uns am Beispiel einer GeschäftsApp erklären, die nur während der Bürozeiten verwendet wird. In herkömmlichen Architekturen (mit Servern oder Containern) verursacht die App Kosten, auch wenn es derzeit nicht verwendet wird. Wenn die Büros durchschnittlich 8 Stunden am Tag (von 8 bis 16) arbeiten, haben wir 14 Stunden Zeit, in denen die App nicht ausgeführt wird. Es gibt auch Wochenenden. Einfache Mathematik zeigt, dass diese Lösung unter der Woche nur zu 30% verwendet wird. Bei Serverless ist das anders. Sie zahlen nur für das, was Sie tatsächlich nutzen. Somit beträgt in diesem Modell die Arbeitszeiteffizienz immer 100%.
Darüber hinaus bedeutet serverless fast wörtlich „Sorge um Server weniger“. Unabhängig von der gewählten Lösung muss der Cloud Anbieter Server und Container verwenden, die im Hintergrund arbeiten, damit unsere App funktioniert. Im Gegensatz zu anderen Lösungen ohne Server müssen wir – Kunden – uns darüber jedoch keine Gedanken machen.
Serverless ist wie wireless. Wie bei Ihrem Heim-WLAN muss es mit einem Kabel oder einer Glasfaser mit dem Netzwerk des Internetdienstanbieters verbunden sein, damit es funktioniert. Sie brauchen sich jedoch keine Sorgen zu machen, Sie können einfach das wireless Internet auf Ihrem Laptop oder Telefon genießen.
Das Fehlen von Servern und einer herkömmlichen Netzwerkarchitektur ist für eine schnellere und kostengünstigere Softwarebereitstellung von größter Bedeutung. Dies spart Programmierern und Designern eine enorme Menge an Arbeitszeit, was wiederum zu einer Verkürzung der Zeit führt, die für die Implementierung des Produkts auf dem Markt benötigt wird (was von den Geschäftsinteressenten immer begrüßt wird).
Darüber hinaus ist serverless im Gegensatz zur herkömmlichen Architektur nativ hoch verfügbar und skalierbar. Dies bedeutet, dass Lösungen, die die oben genannten Eigenschaften erfordern, schneller und kostengünstiger geliefert werden können, da der Cloud Dienstleister alle schwierigen Prozesse automatisiert. Es ist nicht erforderlich, Cluster oder sich selbst skalierende Gruppen selbst zu erstellen.
Nach der Implementierung der Software spart serverless auch Zeit für die Wartung. Dies liegt daran, dass der Cloud Anbieter mühsame Aufgaben für Sie ausführt, z. B. das Packen von Servern oder Sicherheitsupdates. Interessanterweise ist in vielen Fällen die Rolle des Administrators in einem solchen Projekt völlig unnötig, da serverlos nicht so viele Netzwerkressourcen benötigt wie herkömmliche virtuelle Maschinen in der Cloud.

Serverless Lösungen können viel sicherer sein als monolithische Apps. Eine in monolithischer Architektur geschriebene App benötigt alle erforderlichen Berechtigungen und die Kenntnis unserer potenziellen Geheimnisse (z. B. Datenbankkennwort usw.), um zu funktionieren. Serverless Apps bestehen aus vielen einzelnen Komponenten (Lambda Funktionen), die nur die Berechtigungen haben, die für den ordnungsgemäßen Betrieb erforderlich sind.
Wie funktioniert das in der Praxis? Stellen Sie sich ein serverless System als U-Boot vor, das aus vielen Abteilen besteht, die durch Partitionen voneinander getrennt sind.
Beim Hacken in die Lambda Funktion erhält der Angreifer nur Zugriff auf wenige Berechtigungen. Beschädigtes U-Boot sinkt nicht, da es die Überflutung eines Abteils überstehen soll. In herkömmlichen Apps kann eine einzelne Sicherheitsanfälligkeit den Zugriff auf das gesamte System ermöglichen. Daher sind die Folgen eines solchen Hackings weitaus schwerwiegender.
Zusammenfassung
Zusammenfassend ist serverless etwas Neues. Ein Durchbruch, der die jahrelange Aufteilung des Gepäcks in Programmierer und Administratoren verwischt. Es bringt uns einander und der wahren Bedeutung der DevOps Methodik näher. Dank dessen sind die Developer näher an der Produktionsumgebung und haben einen großen Einfluss darauf, wie diese aussieht, und entscheiden, wie einzelne Services verwendet werden.
In der Welt von severless überschneiden sich die oben genannten Rollen. Ist die These berechtigt, die Position des IT Administrators neu zu definieren? Oder hört es vielleicht in ein paar Jahren auf zu existieren? Wenn sich herausstellt, dass dies zutrifft, wird dies die bedeutendste und unerwartetste Veränderung in der IT Branche in den letzten Jahren sein.
Wenn Sie Hilfe beim Verwalten der Cloud Infrastruktur benötigen oder eine Migration in die Cloud in Betracht ziehen, wenden Sie sich an uns.