Interessieren Sie sich für serverlose Technologien? Sind Sie voller Tatendrang für ein neues Projekt, wissen aber noch nicht, wo Sie beginnen sollen?
Hier ist eine Übersicht über einige der beliebtesten Serverless-Frameworks, die Sie für Ihre Projekte nutzen können!
Serverless Computing erfreut sich großer Beliebtheit bei all jenen, die die Idee lieben, weniger Zeit mit Verwaltung zu verbringen und sich stattdessen auf die Entwicklung zu konzentrieren. Obwohl diese Technologie noch relativ neu ist, sind zahlreiche Entwickler und Ingenieure bestrebt, innovative Lösungen für die Zukunft des serverlosen Betriebs zu schaffen.
Wie Sie wahrscheinlich schon wissen, bedeutet serverlos nicht, dass es keine Server gibt. Es bedeutet lediglich, dass weniger Server benötigt werden und der Fokus stärker auf den Funktionen liegt. Wenn Sie eine zuverlässige FaaS-Plattform (Functions as a Service) für Ihr nächstes Projekt suchen, empfehlen wir Ihnen, unsere vorherige Übersicht über die besten Serverless-Computing-Plattformen zu konsultieren.
Lassen Sie uns nun einen Blick auf die Frameworks werfen, die uns zur Verfügung stehen. Abschließend werden wir uns noch einige spannende Projekte im Bereich Serverless ansehen, also bleiben Sie dran!
AWS Amplify
Mit dem AWS Amplify Framework können Sie schnell skalierbare serverlose Anwendungen für Web und Mobilgeräte entwickeln und erhalten dabei maximale Flexibilität. Konfigurieren Sie Ihre serverlosen Backends mit Daten, Speicher, Authentifizierung und mehr mithilfe intelligenter Workflows.
Verbinden Sie mobile und Web-Anwendungen mit bestehenden oder neuen AWS-Ressourcen mit weniger Code. Sie können Single-Page-Webanwendungen, serverseitig gerenderte Apps und statische Websites mit nur wenigen Klicks hosten und bereitstellen. Außerdem können Sie Inhalte und App-Benutzer mühelos verwalten.
AWS Amplify unterstützt Front-End-Entwickler für mobile und Web-Anwendungen bei der schnelleren Erstellung von Full-Stack-Anwendungen auf AWS und ermöglicht es, die App bei Bedarf anzupassen. Amplify unterstützt zahlreiche Web-Frameworks wie React, Angular, JavaScript, Vue.js, Next.js usw., sowie mobile Plattformen wie iOS, Ionic, Flutter, Android und React Native.
Sie können zahlreiche UI-Komponenten von Amplify integrieren, um die App-Entwicklung zu beschleunigen. Nutzen Sie viele Features und Tools wie Authentifizierung, Interaktionen, Funktionen, DataStore, Benutzerverwaltung, API (REST, GraphQL), Analysen, AI/ML-Vorhersagen, Speicher, PubSub, Push-Benachrichtigungen usw. für die Entwicklung. Darüber hinaus erhalten Sie Managed Hosting, PR-Vorschauen, CI/CD, benutzerdefinierte Domains und Überwachung für die Bereitstellung.
Midway
Das serverlose Node.js-Framework Midway eignet sich hervorragend zum Erstellen klassischer serverseitiger Anwendungen, kleiner Programme, Microservices und serverloser Dienste. Es ist in TypeScript geschrieben und verwendet einen IoC-Injektionsmechanismus, um die Anwendungslogik zu trennen und die Entwicklung umfangreicher Node.js-Anwendungen zu vereinfachen.
Midway kann Express, EggJS oder Koa als grundlegende Frameworks verwenden. Es bietet Basislösungen wie GRPC, Dubbo.js, RabbitMQ und Socket.io für den unabhängigen Einsatz. Darüber hinaus fungiert Midway als serverloses Node.js-Webframework für Full-Stack- oder Front-End-Entwickler.
Mit Midway können Sie zukunftsweisende Anwendungen erstellen, die auf Containern, VMs, Alibaba Cloud, AWS und Tencent Cloud laufen. Es lässt sich auch problemlos in Vue und React integrieren. Es bietet viele Funktionen, wie zum Beispiel:
- Gruppen- und skalierbare Plugins
- Erweiterte Gruppen-Middleware-Kompatibilität und -Architektur
- Entkopplungsfähigkeit und Anwendungsschichtung
- Entwicklungserfahrung der nächsten Generation
- Unterstützt Koa-Middleware und Egg-Plugins.
Webiny
Das Webiny Framework bietet alles, was Sie zum Entwerfen, Bereitstellen und Erstellen serverloser Anwendungen benötigen. Es ist für verschiedene Anwendungsfälle konzipiert. Sie können die Architektur und den Tech-Stack ändern und an die Anforderungen Ihrer Organisation und Ihres Projekts anpassen.
Erstellen Sie Unternehmenswebsites und -anwendungen, die auf SEO, Routing, Pre-Rendering, Sicherheit, Bereitstellung, Bündelung und mehr basieren. Erstellen Sie interne oder externe APIs, indem Sie die GraphQL-Resolver extrahieren. Beschränken Sie sich nicht auf eine einzige Anwendung, sondern entwickeln Sie Anwendungen, die unterschiedliche Datenbanken nutzen. Sie können die NodeJS-Datenbanktreiber verwenden, um mit externen Datenbanken zu interagieren.
Webiny bietet Codebündelung, IaC, Bereitstellungsmechanismen und Projektorganisation. Platzieren Sie Ihr Produkt an der Spitze und bieten Sie SaaS weltweit an. Sichern Sie Teile oder die gesamte Anwendung mit ACL mithilfe des integrierten AWS Cognito- und Sicherheits-Frameworks.
Fügen Sie Unterstützung für Auth0, OKTA und andere hinzu. Sie erhalten ein Headless-CMS, einen Seitenersteller, einen Formularersteller, einen Dateimanager und vieles mehr. Generieren Sie Boilerplate-Code mithilfe von CLI-Plugins, von Lambda-Funktionen bis hin zu neuen GraphQL-APIs.
Die Admin-Benutzeroberfläche von Webiny enthält mehr als dreißig verschiedene React-Komponenten. Sie erhalten außerdem DDoS-Schutz, CDN und eine Datenpersistenz von 11 9. Webiny spart Ihnen Zeit beim Experimentieren und Recherchieren.
AWS Chalice
Suchen Sie nach einem Framework zum Schreiben serverloser Anwendungen in Python?
Probieren Sie AWS Chalice aus. Damit können Sie Anwendungen über AWS Lambda erstellen und bereitstellen.
Chalice bietet ein Befehlszeilentool zum Erstellen, Bereitstellen und Verwalten Ihrer App sowie eine auf Decorator basierende API zur Integration mit Amazon S3, Amazon API Gateway, Amazon SQS, Amazon SNS und weiteren AWS-Diensten.
Sie können damit REST-APIs erstellen, regelmäßig ausgeführte Aufgaben implementieren, Lambda-Funktionen mit einem S3-Ereignis und einer SQS-Warteschlange verbinden und weitere AWS-Ressourcen nutzen. Unmittelbar nach dem Schreiben Ihres Codes können Sie Ihre Anwendung mit Chalice schnell ausführen und bereitstellen. Chalice unterstützt jede Python-Version, die AWS Lambda unterstützt, einschließlich Python 2.7, 3.6, 3.7 und 3.8.
Konfigurieren Sie alle Anmeldeinformationen vor der Bereitstellung der Anwendung. Wenn Sie diese jedoch bereits für die Ausführung von AWS CLI oder boto3 konfiguriert haben, können Sie diesen Schritt überspringen. Nach der Bereitstellung können Sie bei Bedarf Änderungen vornehmen und diese erneut bereitstellen. Nutzen Sie Tutorials, Themen und API-Referenzen, um Ihr Wissen zu erweitern.
Zappa
Zappa ist ein serverloses Framework zum Erstellen von Python-Anwendungen. Es vereinfacht die Entwicklung und Bereitstellung serverloser und ereignisgesteuerter Python-Anwendungen auf API Gateway und AWS Lambda. Nutzen Sie es, um wartungsfreie, null Ausfallzeiten und unbegrenzte Skalierbarkeit zu minimalen Kosten der aktuellen Bereitstellungen zu erreichen.
Stellen Sie vor der Installation und Konfiguration sicher, dass Sie Python 3.x und ein AWS-Konto haben und die AWS-Anmeldeinformationen ordnungsgemäß installiert wurden. Sie können Zappa auch einfach mit Pip installieren.
Zappa richtet die Bereitstellungseinstellungen automatisch ein. Sobald die Einstellungen ordnungsgemäß konfiguriert sind, stellen Sie die Anwendung mit einem einzigen Befehlszeilenbefehl in einer Produktionsphase bereit. Verwenden Sie den Vorlagenbefehl, wenn Sie eine API Gateway CloudFormation-Vorlage wünschen. Stellen Sie Zappa auf benutzerdefinierten Subdomains und Domainnamen mit SSL-Zertifikaten, AWS Certificate Manager-Zertifikaten und Let’s Encrypt-Zertifikaten bereit.
Aktivieren Sie sichere Endpunkte auf dem API Gateway, wie API-Schlüssel, IAM-Richtlinie, API Gateway Lambda-Autorisierer, Cognito-Benutzerpool-Autorisierer und API Gateway-Ressourcenrichtlinie. Darüber hinaus können Sie Umgebungsvariablen festlegen, wie z.B. lokale Umgebung, Remote-AWS-Umgebung und Remote-Umgebung über eine S3-Datei.
Architect
Erstellen, implementieren und warten Sie eine auf AWS Cloud-Funktionen basierende, serverlose Infrastruktur der nächsten Generation mit vollständigen lokalen Offline-Workflows und mehr.
Dies ist ein anspruchsvolleres Projekt, das eine gründliche Lektüre der Projektphilosophie und der Dokumentationsseite erfordert.
Up
Up ist ein Framework, mit dem Sie serverlose Anwendungen mit unbegrenztem Skalierungspotenzial bereitstellen können. Darüber hinaus können Sie Up verwenden, um statische Websites, APIs und mehr bereitzustellen. Dies gibt Ihnen die Flexibilität, sich auf das zu konzentrieren, was wirklich wichtig ist.
Glücklicherweise stellt Up traditionelle HTTP-Serverinstanzen bereit, so dass Sie kein neues Protokoll erlernen müssen. Verwenden Sie stattdessen Ihr bevorzugtes Framework wie Django oder Express, um zu starten.
Claudia.js
Claudia.js ermöglicht es Entwicklern, ihre auf Node.js basierenden Projekte auf Lambda-Systeme und die API zu übertragen. Claudia automatisiert Bereitstellungsaufgaben und die Konfiguration und richtet Ihre JavaScript-Umgebung automatisch für die moderne Entwicklung ein.
Was bedeutet das für Sie? Mit Claudia können Sie Ihre Microservices-Reise in wenigen Minuten beginnen. Dadurch müssen Sie weniger Zeit mit Überlegungen verbringen und haben mehr Zeit, sich auf die Lösung echter Probleme zu konzentrieren.
Die Hauptgründe für die Verwendung von Claudia sind:
- Bereitstellung, Aktualisierung und Verwaltung Ihrer Instanzen mit einem einzigen Befehl
- Funktioniert nahtlos mit NPM-Paketen
- Integrierte Boilerplate-Struktur, die Ihnen mehr Raum gibt, sich auf Ihre anstehenden Aufgaben zu konzentrieren.
- Versionsverwaltung, so dass Sie gleichzeitig an mehreren Versionen arbeiten können
- Geringe Lernkurve
Jets
Sind Sie ein Fan von Ruby?
Dann wird Ihnen vielleicht Jets gefallen – ein serverloses Ruby-Framework zum Erstellen und Bereitstellen von Microservices. Das Framework enthält alle notwendigen Tools, um API-Strukturen zu generieren und für Lambda bereitzustellen.
Jets eignet sich auch zum Schreiben separater Funktionen, mit denen Sie verschiedene von AWS bereitgestellte Dienste und Ressourcen zusammenführen können.
Jets wandelt Ihren bestehenden Code in Funktionen für Lambda und andere AWS-Dienste um. Dadurch können Sie Bereitstellung und Deployment überspringen und mehr Zeit mit dem Schreiben von funktionalem Code verbringen.
Pulumi
Pulumi bietet ein nahtloses SDK, mit dem Sie Software entwickeln und auf jeder cloudbasierten Plattform bereitstellen können. Das SDK unterstützt Container, gehostete Dienste, Kerninfrastruktur und Container.
Sie können Code in jeder beliebigen Sprache schreiben. Pulumi stellt Ihre Ressourcen auf Dienstanbietern wie GCP, AWS, Kubernetes und Azure bereit und verwaltet diese.
Serverless
Ich weiß, was Sie denken: „Jemand hatte das Glück, den Domainnamen Serverless.com zu ergattern und kassiert einfach sein Glück!“, aber das ist nicht der Fall.
Das Serverless Framework hat rund 30.000 Sterne auf GitHub und ist damit das beliebteste Serverless Framework, das Sie finden können.
Was können Sie also mit diesem Framework tun? In erster Linie können Sie Anwendungen entwickeln, die Microservices verwenden, um auf Ereignisse zu reagieren. Beispielsweise reagieren Ihre Anwendungen nur, wenn es eine Anfrage gibt und skalieren bei Bedarf nach oben oder unten. Dadurch können Sie eine Menge Geld sparen, das sonst für die Aufrechterhaltung ungenutzter Dienste ausgegeben würde.
Das Framework verwendet moderne ereignisgesteuerte Rechendienste wie AWS Lambda, Google Cloud Functions und mehr. Es ist ein Befehlszeilentool, das Gerüste, Workflow-Automatisierung und Best Practices für die Entwicklung und Bereitstellung Ihrer serverlosen Architektur bietet. Es ist zudem durch Plugins erweiterbar.
Sigma
Sigma ist eine neue Cloud-basierte IDE, die auf der Idee der serverlosen Entwicklung basiert. Es handelt sich nicht nur um einen einfachen Texteditor mit einigen ausgefallenen Funktionen, sondern um eine voll funktionsfähige IDE, mit der Sie Code schreiben und diesen Code in Echtzeit als Live-Anwendung veröffentlichen können.
Die Sigma IDE kann mit der von Ihnen gewählten serverlosen (FaaS) Plattform kommunizieren, und zwar nur mit der Anforderung einer Konfigurationsdatei. Dadurch sparen Sie unzählige Stunden ansonsten langweiliger Aufgaben.
Im Gegensatz zu anderen Tools, die ein ähnliches Ergebnis erzielen wollen, ist Sigma selbst serverlos. Die IDE läuft vollständig im Browser und benötigt für alle Funktionen, bis auf wenige, keinen Back-End-Dienst. Das Back-End ist insbesondere erforderlich, um Benutzer zu authentifizieren und analytische Daten zu sammeln.
Es lohnt sich, dieses Tool im Auge zu behalten und selbst auszuprobieren.
Auth0
Wenn Sie sich für das Konzept von Serverless begeistern, haben Sie wahrscheinlich schon vom Serverless Framework gehört – das wir bereits in diesem Artikel erwähnt haben.
Auth0 hat seine Bemühungen gebündelt, um Auth0-Webaufgaben zu erstellen, ein effektives Add-on für alle Benutzer des Serverless Frameworks. Das Projekt heißt Webtask, die Homepage finden Sie hier.
Im Wesentlichen kann Webtask verwendet werden, um Anwendungen zu entwickeln, ohne sich um Ihre Infrastruktur kümmern zu müssen. Schreiben Sie serverseitige Logik und stellen Sie alle Ihre Funktionen mit der von Webtask bereitgestellten CLI bereit. Sie können dann mithilfe des HTTP-Protokolls im Backend navigieren.
Update: Die Webtask-Website wurde inzwischen abgeschaltet.
Serverlose Beispiele
Wir haben in diesem Beitrag bereits über das Serverless Framework gesprochen, und dies ist eine weiterführende Ressource, die die vielen verschiedenen Anwendungsfälle für das Serverless Framework aufzeigt.
Obwohl diese Beispiele auf ein bestimmtes Framework beschränkt sind, können Sie dennoch Spaß daran haben, neue serverlose Konzepte kennenzulernen.
Die Beispiele sind für Plattformen wie AWS, Azure, Kubeless, Google Cloud und OpenWhisk verfügbar. Außerdem werden sechs verschiedene Sprachen unterstützt: nodeJS, Python, Go, Java, PHP und Swift.
Sehen Sie sich einige dieser Favoriten an, z.B. den Twitter-Witz-Bot und die OAuth-Dropbox-API.
Wenn Sie nach praktischem Lernen suchen, dann sollten Sie sich diesen Online Kurs ansehen.