Generic selectors
Exact matches only
Search in title
Search in content
Search in posts
Search in pages
Filter by Categories
Investor blog
Blog

Choose your region

Selecting a region changes the language and/or content on Nortal.com

Generic selectors
Exact matches only
Search in title
Search in content
Search in posts
Search in pages
Filter by Categories
Investor blog
Blog

Warum lieben Entwickler Serverlosigkeit?

Gabe Hicks, February 4, 2020

Gabe Hicks, Nortals CTO in Nordamerika, ist seit 2010 bei Nortal. Mit mehr als 20 Jahren Erfahrung hat er verschiedene Funktionen vom Softwarearchitekten bis zum CTO ausgeübt. Gabe hat Erfahrung in vielen Branchen und Organisationstypen, von Start-Ups bis hin zu multinationalen Unternehmen. Bei Nortal hat er die Cloud- und CI/CD-Prozesse genutzt, um kritische Anwendungen für zahlreiche große, verbraucherzentrierte Systeme zu entwickeln. Gabe hält Technologievorträge auf CI/CD Treffen in Seattle. 

Die Serverlosigkeit gehört zu den aufsteigenden Technologien der letzten Jahre. Sie wurde geschaffen, um Arbeitslasten in die Cloud zu verlagern. Heute bildet die Serverlosigkeit eine Option für alle Unternehmen, auch für diejenigen, die ihr eigenes Rechenzentrum betreiben. Ein großer Teil dieser Evolution wird damit begründet, dass Entwickler allgemein gerne serverlos arbeiten. Diese Neigung ist auf vier Hauptgründe zurückzuführen. Zum einen erfolgt die Skalierung im serverlosen System automatisch, weiterhin wird auf Ereignisse reagiert, Entwickler können sich auf eine einzige Funktionalität konzentrieren und die operative Belastung des Teams wird verringert.  

Serverlose Systeme skalieren 

Es ist oft schwierig vorherzusagen, wie und wann ein Teil der Software eingesetzt wird. Ein System kann eine Stunde lang 100 Transaktionen pro Sekunde haben und in den nächsten drei Stunden auf eine Transaktion alle zehn Sekunden zurückgehen. In einem traditionellen System würde dies bedeuten, dass die Anwendung für die Bewältigung einer Spitzenlast, einschließlich Tests, und die Fähigkeit einer guten Skalierbarkeit gebaut werden müssteServerlose Funktionen hingegen skalieren automatisch. Ein serverloses System setzt zusätzliche Funktionsmechanismen ein, um Änderungen in der Arbeitsauslastung zu verarbeiten. Entwickler müssen sich nicht darum kümmern ein System für 100 Transaktionen zu optimieren – sie optimieren für eine Transaktion und lassen das System die Skalierungsarbeit übernehmen. 

Es ist wichtig zu beachten, dass die automatische Skalierung des Systems nicht bedeutet, dass sich die Entwickler nicht um die Performance kümmern müssen. Ebietet den Entwicklern lediglich die Möglichkeit, sich auf die Skalierung durch die Optimierung lediglich eines einzigen Falls konzentrieren zu könnenIn traditionellen Systemen mussten die Entwickler bei der Optimierung darüber nachdenken, wo der Prozess stattfindetwelche Aspekte konkurrieren könnten und testen, ob das System die Arbeitslast bewältigen kann. Serverlose Systeme verringern den Fokus des Entwicklers, indem sie operative Probleme wie die Skalierung entfernen und ihm somit die Arbeit erleichtern. 

Serverlose Systeme reagieren auf Ereignisse 

Serverlose Funktionen reagieren auf Ereignisse. Diese Ereignisse können alles sein; von einer Datei, die in einem Dateispeicher abgelegt wird, über Elemente, die in eine Warteschlange gestellt werden, bis hin zu HTTP-Serveraufrufen. Die serverlose Plattform übernimmt die Verknüpfung dieser Ereignisquellen mit der Funktion und reduziert die Menge an Code, den die Entwickler schreiben müssen. Wichtiger noch, für die Entwickler bedeutet das eine Reduzierung des zu schreibenden Codes für bspw. eine Warteschlange oder einen Dateisystemzugriff, der mit der Lösung des eigentlichen Problems nichts zu tun hat. Ich habe persönlich an Anwendungen gearbeitet, die mehr Code zur Verbindung von Diensten als zur eigentlichen Steuerung von Geschäftsanforderungen enthalten habenDiese Art von Code ist besonders frustrierend, weil er oft nicht einfach zu entwickeln ist und mit vielen Problemen einhergeht, die Entwickler bei jeder neuen Anwendung wiederholt lösen müssen. Ein serverloses System reduziert den Code, da die Plattform den Zugriff auf die Ereignisse, die die Funktionen steuern, verwaltet. 

Serverlose Systeme erlauben dem Entwickler sich zu fokussieren 

Wir bezahlen Entwickler dafür, dass sie Probleme lösen. Ein häufiges Problem in der Industrie ist das des „Yak ShavingDie Idee dahinter ist, dass man beim Versuch ein einzelnes Problem zu lösen, viele andere Probleme findet, die man erst lösen muss, bevor man mit der Lösung des eigentlichen Problems beginnen kann. Serverlose Systeme reduzieren die Anzahl der Probleme, die ein Entwickler zu lösen hatEntsprechend müssen die Entwickler nicht mehr Skalierungs-, Verbindungs- oder Betriebsprobleme lösen. Stattdessen können sie sich auf die Lösung des eigentlich vorliegenden Problems konzentrieren. Sowohl für das Unternehmen als auch für die Entwickler ist es großartig, nicht an unwichtigen Problemen, sondern ausschließlich an tatsächlich wichtigen Problemen arbeiten zu können. Dieser Fokus bietet den Entwicklern einen Mehrwert und ermöglicht es ihnen, mehr zu erreichen. 

Serverlose Systeme reduzieren die operative Belastung des Teams 

In der Vergangenheit haben Entwickler Software erstellt und die fertige Software an ein Betriebsteam übergeben, das die Software bedient hat. Das heißt, das Betriebsteam stellte die Betriebszeit, die Konnektivität und die Skalierung der Ressourcen sicher. In den letzten Jahren betreiben die Entwicklungsteams einen größeren Teil der von ihnen erstellten Software in einem Prozess, der als DevOps bezeichnet wird, selbst. Ich glaube, dass dies ein guter Prozess ist, da er dem Team ein schnelles Feedback gibt und sicherstellt, dass es sich auf den Aufbau einer robusten Lösung konzentriert, die sowohl den Betrieb als auch die Korrektheit der Funktionen berücksichtigt. 

Da der Betrieb in die Entwicklung Einzug hält, ist die ursprüngliche Arbeit des Betriebsteams nun in den Besitz des Entwicklungsteams übergegangen. Diese Arbeit umfasst die Aufrechterhaltung der Dienste, die Skalierung zur Abwicklung des Datenverkehrs und die Aufrechterhaltung der Reaktionsfähigkeit der Anwendung. Viele Teams holen sich Spezialisten hinzu, um diese Belastung zu verringern. Aber selbst mit einem Spezialisten entstehen Kosten für den Betrieb der von ihnen erstellten Software.

Ein Entwicklungsteam, das für den Betrieb zuständig ist, hat einiges an Arbeit zu erledigen, bevor es wertvolle Anwendungen für das Unternehmen erstellen kann. Diese Arbeitsbelastung führt dazu, dass die Entwicklungsteams versuchen, so viel Verantwortung wie möglich auf die Plattform, an der sie arbeiten, abzugeben. Die serverlose Ausführung, Skalierung, Reparatur und Verbindung der Software, ermöglicht es ihnen, die Gesamtarbeitslast zu reduzieren. 

Viele Entwickler lieben serverlose Systeme 

Entwickler lieben es, dass serverlose Systeme eine Menge Funktionen zur Verfügung stellten, die sie in der Vergangenheit verwalten oder entwickeln mussten. Einerseits ermöglicht das System den Entwicklern, sich auf das Wesentliche zu konzentrieren sowie Features schneller zu schreiben und andererseits ist es eine ausgezeichnete Ergänzung des Architektur-Werkzeugkastens. Es ist einfach zu handhaben und in jeder Umgebung verfügbar: AWSGCPAzure oder Kubernetes für On-Premise. 

Aber… 

Serverlosigkeit ist kein Allheilmittel. Sie beinhaltet eine Herstellerbindunghat keine gute Funktionalität bei einem Kaltstart und die Überwachung ist schwieriger. Aus diesem Grund ist Serverlosigkeit ein Werkzeug im Werkzeugkasten und nicht ein ganzer Werkzeugkasten für sich. Geben Sie den Entwicklern Serverlosigkeit aber stellen Sie sicher, dass sie die Vorteile gegen die Probleme abwägen und verstehen, dass es nur ein Werkzeug für den Aufbau großer Systeme ist. 

Nortal ist ein AWS Lambda Service Delivery Partner. Erfahren Sie hier mehr über die AWS Advanced Partnerschaft und die serverlosen Möglichkeiten von Nortal. 

Weitere technische Inhalte von Gabe finden Sie in seinem Medium Blog

Gabe Hicks

CTO, North America

Gabe Hicks