Rich Client Apps schneller entwickeln

Viva la Client-Serverless-Revolution!

02.02.2021
Von 
James Kobielus ist Principal Analyst bei Franconia Research.
Das Wachstum von Rich-Mobile- und Edge-Applikationen drängt Entwickler dazu, Anwendungen auf neue Art und Weise zu erstellen. Client-Serverless ist der Weg der Zukunft.
Client-Serverless Computing ermöglicht es, die Erwartungen der Nutzer von heute zu erfüllen.
Client-Serverless Computing ermöglicht es, die Erwartungen der Nutzer von heute zu erfüllen.
Foto: oxinoxi - shutterstock.com

Anwender von heute erwarten, dass ihnen das gesamte Internet zur Verfügung steht, egal wo sie sind oder welches Gerät sie benutzen. Bis vor kurzem fiel es App-Entwicklern allerdings noch schwer, diesen Ansprüchen zu genügen. In den letzten Jahren haben sich Smartphones, Browser und Embedded Devices aber so weit entwickelt, dass sie als weltweit verteilte, mobile Rich Clients funktionieren. Sie können unterwegs eine Benutzererfahrung liefern, die mit der Verwendung einer lokalen oder dedizierten Highspeed-Leitung vergleichbar ist.

Diese Errungenschaft ist zum Teil auf die zunehmende Verbreitung von Serverless-Architekturen, Microservices und Cloud-native-Diensten zurückzuführen - und die Art und Weise, wie sie es Entwicklern ermöglichen, skalierbare und an jedem Ort der Welt zuverlässig funktionierende Webanwendungen zu erstellen.

Ein neues Rich-Client-Paradigma für die App-Entwicklung

Mit diesem wachsenden Trend rückt ein neues Paradigma für vernetzte Internet-Anwendungen in den Vordergrund, bekannt als Client-Serverless Computing. Es liefert durchgängig dynamische, interaktive Anwendungserlebnisse von jedem Smartphone oder Edge-Gerät aus, unabhängig davon, wo sich ein Benutzer gerade befindet oder von wo aus die Ressourcen, auf die er zugreift, bereitgestellt werden.

Client-Serverless Computing stellt aber auch höhere Anforderungen an die Entwickler. Diese können nämlich nicht mehr davon ausgehen, dass ihr Programmcode primär auf Datenbanken, App-Server und Webserver zugreift, die sich in einem einzigen Rechenzentrum oder einer Cloud-Region befinden.

Stattdessen müssen sie serverseitige Business Logic und Markups erstellen, sowie auf Client-Seite mit Hilfe von JavaScript für die optimierte Darstellung auf unzähligen Client-Geräten sorgen. Sie müssen Anwendungen programmieren, die für anspruchsvolle, Browser-seitige Interaktion über Standardschnittstellen wie REST (für Remote-APIs) oder JSON (für Datenformate) optimiert sind.

Schnelle Entwicklung von Rich Cloud Apps

Die Ursprünge von Client-Serverless liegen in den altbewährten dreistufigen Anwendungsarchitekturen, die rund um PCs und lokale Netzwerke entstanden sind und eine Client-seitige GUI mit einer Backend-SQL-Datenbank verbanden. Dieses neue Paradigma eignet sich jedoch viel besser für Multicloud-Computing-Plattformen des 21. Jahrhunderts. Der Grund dafür liegt darin, dass Client-Serverless:

  • kombinierbare Funktionen bei geringer Latenzzeit über eine konsistente, sichere, Web-native API bereitstellt, die von jeder Client-Anwendung und auf einer Pay-as-you-go-Basis aufgerufen werden kann.

  • die einfache Bereitstellung, Zusammenstellung und On-Demand-Nutzung von Anwendungen ermöglicht - und das von jeder beliebigen Computerinfrastruktur aus.

  • es Entwicklern erlaubt, Funktionen schnell und skalierbar in Cloud-to-Edge-Umgebungen bereitzustellen.

  • sicherstellt, dass die App-Performance nicht nachlässt, auch wenn die zugrundeliegende Business-Logik weit verteilt ist.

  • die physischen Standorte und operativen Plattformen, von denen aus die Logik der Backend-Anwendung bedient wird, wegabstrahiert.

  • die Notwendigkeit für Programmierer eliminiert, die Logik für die Verwaltung von Containern, Virtual Machines und anderen Runtime Engines im Backend zu schreiben, denen die Ausführung der Anwendungslogik dynamisch zugewiesen wird.

  • die Dichte, Effizienz und Kapazitätsauslastung von CPU, Arbeitsspeicher, Speicher und anderer Hardware auf den Backend-Cloud-Plattformen steigert.

Keine Angst vor Lock-ins

Die Serverless-Komponente in diesem Ansatz bezieht sich auf ein Utility-Computing-Modell, bei dem der Cloud-Anbieter die Zuweisung von Maschinenressourcen im Backend für die Ausführung der Geschäftslogik in der Anwendung dynamisch verwaltet.

"Der Aufstieg der Jamstack-Architektur (JavaScript, APIs, Markup) hat sicherlich die Verwendung von Serverless-Apps vorangetrieben und es vielen zusätzlichen Entwicklern ermöglicht, solche zu bauen ", erklärt Evan Weaver, Chief Technology Officer bei Fauna, Anbieter einer Serverless-Transaktionsdatenbank. "Aber es gibt noch viele andere Architekturen, wie die explosionsartige Zunahme von Microservices zeigt, die ebenfalls von dieser neuen Art des Computing Gebrauch machen. Heute haben Entwickler mehr Optionen denn je, wenn sie Anwendungen erstellen wollen."

Die Client-Serverless-Infrastruktur und -Tools ermöglichen es Entwicklern, Client-Serverless-Cloud-Apps mit vielen günstigen Eigenschaften zu bauen. So sind diese Anwendungen im Allgemeinen:

  • Zusammensetzbar: Client-Serverless-Tools verwenden Internet-kompatible APIs, um Backend-Funktionen zu nutzen, auf die als Microservices in SaaS-Clouds zugegriffen wird.

  • Flexibel: Die Abstraktionsschichten von Client-Serverless können die Entwicklung von verteilten Cloud-Anwendungen beliebiger Größe, Komplexität und Funktionalität unterstützen. So sind Entwickler in der Lage, die Client-Logik als Microservices für Serveranwendungen, Workflow-Engines und andere Infrastrukturkomponenten bereitzustellen.

  • Robust: Client-Serverless-Umgebungen ermöglichen die Entwicklung von sicheren, zuverlässigen, zustandsabhängigen und transaktionskonsistenten Anwendungen. Zum Einsatz kommen sichere Datenbanken, die über Serverless-Daten-APIs überall in einer verteilten Umgebung verfügbar sind.

  • Dynamisch: Client-Serverless treibt die Einführung von Cloud-Infrastrukturen voran, die sich vom Managed-VM- und Containermodell mit seiner inhärenten statischen Bereitstellung, der Verschwendung von Ressourcen, dem operativen Overhead und den Sicherheitsproblemen wegentwickeln. Stattdessen bewegt sich die Cloud-Infrastruktur zu einem API-Modell hin, das dynamisch, unbegrenzt skalierbar und allgegenwärtig ist, ohne dass der Kunde mit Betriebskosten belastet wird. Mehr und mehr werden auch über API zugängliche Geschäftsfunktionen wie Stripe Payments oder Twilio-Messaging, in Client-Serverless-Umgebungen gebracht, ohne dass der Betrieb beeinträchtigt wird.

Rosige Wachstumsaussichten

Alles deutet darauf hin, dass Client-Serverless-Tools und -Plattformen im Jahr 2021 und darüber hinaus einen großen Einfluss auf die IT und die Welt der Anwendungsentwicklung haben werden. So beginnen immer mehr Unternehmen damit, auf anspruchsvolle Serverless-Datenplattformen, -Compute-Backends wie AWS Lambda und Cloudflare Workers, Serverless-Data-Warehousing-Angebote wie Snowflake und Serverless Development Frameworks wie Next.js und RedwoodJS umzusteigen.

Zwar haben reine Client-Serverless-Technologien wie Jamstack, GraphQL und die Fauna-Datenbank noch keine allgemeine Akzeptanz unter den Entwicklern in Unternehmen erreicht. Dennoch nutzen Unternehmen Serverless-Backends, um ihre Anwendungsinfrastruktur standortunabhängig und völlig entkoppelt von jeglicher physischer Infrastruktur zu skalieren.

Und mit der Beschleunigung der Client-Serverless-Revolution werden sich Serverless-Computing-Umgebungen weit über ihren bisherigen Fokus auf Rechenfunktionen hinaus in Richtung eines Client-fokussierten Schwerpunkts auf Rich-Mobile- und Edge-Anwendungen bewegen. Der Aufstieg von Client-Serverless-Umgebungen wird mit ziemlicher Sicherheit das nächste Uber oder Twitter hervorbringen, da kleine, aber fokussierte Entwicklungsteams das Transformationspotenzial dieses neuen Anwendungsparadigmas ausschöpfen werden. (mb)

Dieser Artikel basiert auf einem Beitrag der US-Schwesterpublikation Infoworld.