Nicht nur im privaten Sektor, sondern ins­be­son­de­re auch im ge­schäft­li­chen Bereich verlagert sich das digitale Treiben zunehmend in die Cloud. Diverse Anbieter schicken in­ter­es­san­te und viel­ver­spre­chen­de Service-Lösungen ins Rennen, wobei eine Be­schrei­bung und Un­ter­schei­dung der ver­schie­de­nen Angebote häufig gar nicht so einfach ist. Das gilt zum Beispiel auch für die Ein­stu­fung des noch sehr jungen, so­ge­nann­ten Ser­ver­less Com­pu­tings, das in Fach­krei­sen auch als Function-as-a-Service (FaaS) be­zeich­net wird. Auch wenn der Name anderes vermuten ließe, handelt es sich dabei nämlich kei­nes­wegs um Cloud-Struk­tu­ren ohne Server. Im Folgenden werden wir die Tech­no­lo­gie genauer be­leuch­ten.

Compute Engine
Die ideale IaaS für Ihre Workloads
  • Kos­ten­güns­ti­ge vCPUs und leis­tungs­star­ke de­di­zier­te Cores
  • Höchste Fle­xi­bi­li­tät ohne Min­dest­ver­trags­lauf­zeit
  • Inklusive 24/7 Experten-Support

Was verbirgt sich hinter dem Ser­ver­less-Konzept?

Als Ser­ver­less Computing oder Ser­ver­less Ar­chi­tec­tu­re be­zeich­net man ein Cloud-Modell, das es Nutzern er­mög­licht, An­wen­dun­gen bzw. Prozesse zu erstellen und aus­zu­füh­ren, ohne dabei mit dem zu­grun­de­lie­gen­den Server in Kontakt zu kommen. Anders als es der Name also sug­ge­riert, verfügt auch eine derartige Cloud-Umgebung über Server – al­ler­dings fallen Be­reit­stel­lung, Ska­lie­rung und Ma­nage­ment aus­schließ­lich in den Auf­ga­ben­be­reich des Providers. Damit geht der Ser­ver­less-Ansatz noch einen Schritt weiter als das Platform-as-a-Service-Modell (PaaS), bei dem Ent­wick­ler bzw. Kunden nicht darum her­um­kom­men, den bzw. die Server über eine API an­zu­spre­chen und Res­sour­cen auf eigene Faust auf­zu­sto­cken bzw. frei­zu­ge­ben.

Da diese ad­mi­nis­tra­ti­ven Aufgaben bei Projekten in einer Ser­ver­less-Computing-In­fra­struk­tur wegfallen, kann mit ihr der Fokus gänzlich auf die Ent­wick­lung und Aus­füh­rung der je­wei­li­gen Software gerichtet werden. Damit dies möglich ist, gilt es al­ler­dings, neben dem ei­gent­li­chen Pro­gramm­code auch zu­stands­lo­se Funk­tio­nen zu erstellen, die An­wei­sun­gen dazu enthalten, wie ein Programm auf bestimmte Er­eig­nis­se reagieren soll. Der jeweilige Pro­gramm­code lässt sich dann inklusive der ge­wünsch­ten Funk­tio­nen (die dank ihrer Zu­stands­lo­sig­keit keinerlei In­fra­struk­tur-Ab­hän­gig­kei­ten aufweisen) jederzeit in die Cloud-Umgebung hochladen und dort ausführen. Aufgrund der ele­men­ta­ren Rolle der Funk­tio­nen bieten einige Provider ihren Ser­ver­less-Dienst auch unter dem Namen „Function-as-a-Service (FaaS)“ an.

Hinweis

Ser­ver­less-Computing-Anbieter tragen nicht nur die Ver­ant­wor­tung dafür, dass stets die er­for­der­li­chen Server-Res­sour­cen zur Verfügung stehen, sondern auch dafür, dass sich die höchst­mög­li­che Aus­fall­si­cher­heit ga­ran­tie­ren lässt. Die Ab­rech­nung erfolgt üb­li­cher­wei­se nach dem Pay-per-Use-Modell, sodass Kunden nur für tat­säch­lich genutzte Leistung zur Kasse gebeten werden.

Wie funk­tio­niert Ser­ver­less Computing?

We­sent­lich für eine Ser­ver­less Ar­chi­tec­tu­re ist das Ma­nage­ment der Hardware durch den Provider: Für Nutzer besteht die Her­aus­for­de­rung lediglich darin, ihre Software bzw. deren Logik inklusive passender Funk­tio­nen in die ge­mie­te­ten Cloud-Struk­tu­ren ein­zu­bin­den. Der Aufruf dieser Funk­tio­nen funk­tio­niert entweder …

  • asynchron über Events
  • oder synchron nach dem klas­si­schen Client-Server-Modell.

Erst­ge­nann­te Variante bietet den Vorteil, eine zu starke Kopplung der einzelnen Funk­tio­nen zu ver­hin­dern und den Res­sour­cen­be­darf zur Laufzeit gering zu halten. Eine mögliche event­ba­sier­te Funktion wäre zum Beispiel, dass beim Upload eines Bildes immer au­to­ma­tisch auch ein Mi­nia­tur­bild erzeugt werden soll. Bei der klas­si­schen Variante muss der Client immer eine ge­son­der­te Anfrage an den Server schicken, um eine ent­spre­chen­de Funktion für die Kreation der Mi­nia­tur­an­sicht auf­zu­ru­fen.

Anders als bei einer Platform-as-a-Service-In­fra­struk­tur stellt der Ser­ver­less-Computing-Provider zu diesem Zweck keine lang­le­bi­ge Ar­beits­um­ge­bung für die gesamte Laufzeit zur Verfügung, sondern liefert punktuell und in Echtzeit die Res­sour­cen, die für die Aus­füh­rungs­zeit eines einzelnen Funk­ti­ons­auf­rufs benötigt werden. Im Hin­ter­grund (aber eben vom Nutzer unbemerkt) sind aber natürlich auch bei Ser­ver­less-Diensten phy­si­ka­li­sche und virtuelle Server im Einsatz, um die Aus­füh­rung der Funk­tio­nen zu er­mög­li­chen.

Ser­ver­less Ar­chi­tec­tu­re: Vorteile und Nachteile im Überblick

Klas­si­sche Cloud-In­fra­struk­tu­ren er­mög­li­chen Nutzern zwar bereits, benötigte Hardware aus­zu­la­gern, sie erfordern häufig aber dennoch eine Menge Ad­mi­nis­tra­ti­ons­auf­wand und Mi­kro­ma­nage­ment. Ser­ver­less Computing soll diesen Aufwand auf ein Minimum re­du­zie­ren.

Weitere Vorzüge sowie die grund­sätz­li­chen Schwächen des Ser­ver­less-Konzepts fasst die folgende Tabelle zusammen:

Ser­ver­less Computing – Vorteile Ser­ver­less Computing – Nachteile
Ska­lie­rung und Ver­wal­tung der be­nö­tig­ten Res­sour­cen durch den Provider Zugriff auf virtuelle Maschinen, Be­triebs­sys­tem oder Lauf­zeit­um­ge­bun­gen bleibt verwehrt
Schnelle Be­reit­stel­lung der Res­sour­cen in Echtzeit, auch bei un­vor­her­seh­ba­ren Last­spit­zen und über­pro­por­tio­na­lem Wachstum Im­ple­men­tie­rung von Ser­ver­less-Struk­tu­ren ist sehr aufwändig
Kosten werden aus­schließ­lich für genutzte Res­sour­cen berechnet Hohe Ab­hän­gig­keit vom Provider („Lock-in-Effekt“) – bei einem An­bie­ter­wech­sel müssen bei­spiels­wei­se meist sämtliche event­ba­sier­ten Funk­tio­nen neu ge­schrie­ben werden
Hohe Feh­ler­to­le­ranz dank flexibler Hardware-In­fra­struk­tur in den Re­chen­zen­tren des Providers Ver­hält­nis­mä­ßig kom­pli­zier­ter Mo­ni­to­ring- und Debugging-Prozess, da tief­grei­fen­de Analysen von Per­for­mance und Fehlern in der Regel nicht möglich sind

Ser­ver­less Computing in der Praxis: Wo kommt das Ser­ver­less-Prinzip zum Einsatz?

Ser­ver­less Computing ist allen voran für den kurz­le­bi­gen Da­ten­aus­tausch von Web- und Business-An­wen­dun­gen in der Cloud kon­zi­piert. Es geht in der Praxis also nicht darum, ganze An­wen­dun­gen oder um­fang­rei­che Code-Sequenzen (hierfür ist Ser­ver­less Ar­chi­tec­tu­re grund­sätz­lich auch gar nicht geeignet), sondern einzelne Funk­tio­nen be­lie­bi­ger Anzahl zu ver­ar­bei­ten. Das macht den Ansatz für mehrere Szenarien in­ter­es­sant, wie die folgende Auf­lis­tung zeigt:

  • API-Proxy: Viele ältere Business-An­wen­dun­gen haben komplexe, schwer­fäl­li­ge APIs (Software-Schnitt­stel­len). Mithilfe von Ser­ver­less Ar­chi­tec­tu­re und dem passenden API-Gateway lässt sich eine al­ter­na­ti­ve Abs­trak­ti­ons­schicht erzeugen, um diese An­wen­dun­gen über ein einfaches REST-API an­sprech­bar und so für andere Systeme leichter zu­gäng­lich zu machen.
  • Ser­ver­less Backend: Immer häufiger wird Ser­ver­less Computing auch dazu verwendet, das komplette Backend einer Anwendung in der Cloud zu kon­stru­ie­ren und zu betreiben. Für ein solches Szenario ist auch der Name Backend-as-a-Service (BaaS) ge­bräuch­lich.
  • Wei­ter­ver­ar­bei­tung (un)struk­tu­rier­ter Daten: Big Data sind aus dem modernen Business-Umfeld nicht mehr weg­zu­den­ken. Ser­ver­less-In­fra­struk­tur erweist sich hier als mächtiger Ver­bün­de­ter, wenn es darum geht, derartige In­for­ma­tio­nen wei­ter­zu­ver­ar­bei­ten – also struk­tu­rier­te Daten (JSON, XML etc.) oder un­struk­tu­rier­te Daten (Bilder, Audio etc.) unter anderem zu trans­ko­die­ren, zu ver­schie­ben, zu kom­bi­nie­ren oder zu ma­ni­pu­lie­ren.
  • Aus­füh­rung von Aufgaben nach Zeitplan: Funk­tio­nen lassen sich in den meisten Fällen nicht nur event­ba­siert, sondern auch nach einem de­fi­nier­ten Zeitplan ausführen. Auf diese Weise lassen sich bei­spiels­wei­se au­to­ma­ti­siert Da­ten­ban­ken aufräumen oder Backups anlegen.
  • Im­ple­men­tie­rung von Sprach­as­sis­ten­ten und Chat-Bots: Die Ser­ver­less-Tech­no­lo­gie eignet sich auch her­vor­ra­gend zur Ein­bin­dung von digitalen Sprach­as­sis­ten­ten und Chat-Bots.
Zum Hauptmenü