Auf einen Blick: Best Practices für die Entwicklung serverloser Anwendungen mit dem Serverless Framework legen Wert auf Sicherheit und Effizienz. Empfohlene Strategien umfassen lokale Entwicklung zur Prozessoptimierung, den Einsatz einer Funktion pro Route für Skalierbarkeit, Verwaltung von Code über Konfigurationen, Durchführung von Lasttests und Sicherung von API-Gateways.
- Beginnen Sie mit der Entwicklung lokal, um die Effizienz zu steigern.
- Verwenden Sie pro Route eine Funktion, um die Skalierbarkeit und Fehlerisolierung zu verbessern.
Das älteste Bereitstellungs-Framework für serverlose Anwendungen ist als Serverless Framework bekannt. Dieses Deployment-Framework verfügt über eigene Best Practices zur Sicherung Ihrer Serverless-Deployment. Dieser Artikel wird das Serverless Framework beleuchten und die Best Practices für die Entwicklung und Bereitstellung serverloser Apps skizzieren.
Entwicklung von serverlosen Apps
Serverloses Rechnen ist eine Möglichkeit für Entwickler, Apps zu bauen, ohne die Kopfschmerzen der Verwaltung der Infrastruktur zu benötigen. Insbesondere ermöglicht es ihnen, serverlosen Code zu schreiben, ohne Folgendes schreiben zu müssen:
- Bereitstellung eines Servers
- Sicherstellung ihrer Funktionalität
- Erstelle Testumgebungen auf einem Server
- Server-Verfügbarkeit aufrechterhalten
Dadurch werden Teams und Ressourcen frei, um sich auf die Beschleunigung der Innovation in der heutigen wettbewerbsorientierten digitalen Wirtschaft zu konzentrieren.
Was ist das Serverless-Framework?
Ein bestimmtes Framework ist als Serverless Framework bekannt. Dieses Open-Source-Framework ist natürlich kostenlos und mit Node.js geschrieben. Serverless ist das erste Framework, das zum Erstellen von Anwendungen auf AWS Lambda entwickelt wurde, einer serverlosen Computing-Plattform, die Teil der Amazon Web Services-Suite ist. Ein paar Lambda-Funktionen können einige einfache Aufgaben über eine serverlose App oder ein ganzes Backend aus Hunderten von Lambda-Funktionen erledigen. Serverless unterstützt alle Laufzeiten, die von Ihrem gewählten Cloud-Anbieter angeboten werden. Beachten Sie, dass die unten beschriebenen Best Practices nicht die einzigen sind. Diese Praktiken basieren alle auf einer Reihe von zugrundeliegenden Annahmen. Wir sprechen speziell über Lambda, einfach weil es so beliebt ist. Aber denken Sie daran, dass Lambda nicht die einzige serverlose Option ist.
Best Practices für serverlose
Bei der Arbeit mit dem Serverless Framework sind hier die wichtigsten Best Practices, die es wert sind , zu übernehmen, um sicherzustellen, dass Ihre Anwendungen sicher und robust sind.
Starten Sie lokal
Wenn Ihr Lambda kompliziert wird, müssen App-Entwickler zahlreiche Anpassungen am Konfigurations- und Funktionscode vornehmen. Jede Änderung führt dazu, dass Sie warten, bis der Code bereitgestellt wird und der Rest des Stacks live geht. Um Zeit zu sparen, starten Sie lokal. Anstatt Ihren Entwicklungszyklus als "speichern, Konsole öffnen, deployen, warten, aktualisieren, warten, aktualisieren" ausführen zu lassen, verschieben Sie den Zyklus auf "speichern, bauen, aktualisieren". Die AWS Serverless Application Model Directs Line Interface kann Lambdas, API-Endpunkte und mehrere Quellen replizieren – alles in einem lokalen Docker-Container.
Verwenden Sie pro Route eine Funktion
Bei der Verwendung von HTTP ist es Best Practice, Einzelfunktions-Proxys zu vermeiden. Warum? Diese Methode tut nicht:
- Skalierungsbrunnen
- Isolierungsprobleme
Wenn die Funktion einer Reihe von Routen strikt an eine einzelne Tabelle gebunden ist, wird sie von der Anwendung entkoppelt. Diese Best Practice kann das Management komplexer machen, hilft aber, Fehler und Probleme beim Skalieren Ihrer App zu isolieren.
Schreib deinen Code nicht neu
JavaScript ist die höhere Ordnung in einem Serverless Framework. Beim Schreiben von JavaScript-Code wird dieser auf die performativste Weise interpretiert und ausgeführt . Das Umschreiben von Code ist nicht der richtige Weg, ein Leistungsproblem zu lösen. Stattdessen gibt es viele Möglichkeiten, Ihr Programm zu verbessern:
- Kombination mehrerer Anfragen an andere Dienste
- Schleifen stoppen, wenn du genug Matches hast
- Hilfreiche Fehlerinformationen werden zurückgegeben
Code verwalten, nicht Konfigurationen
Das Serverless Framework ermöglicht es Ihnen, eine dedizierte Deployer-Rolle an AWS CloudFormation zu übergeben, um Deployments mit der Architektur durchzuführen. CloudFormation Deployment Role ist der AWS-Weg aus 'Konfiguration, die nur in der UI gespeichert ist'; ihr Serverless Application Model ermöglicht es Ihnen, YAML zu erstellen, das Ihren Stack in einer Datei definiert, die Sie zur Nachverfolgung von Änderungen verwenden können. Sie können für jedes Projekt oder Team eine andere Rolle verwenden und das Least-Privileg-Prinzip auf die Deployment-Pipeline anwenden.
Führen Sie Lasttests durch
Das Lasttesten Ihrer Lambda-Funktionen hilft dabei, die Speichermenge und den optimalen Timeout-Wert zu bestimmen. In einer serverlosen Umgebung kann komplexe Anwendungen vorhanden sein, und Sie sind sich möglicherweise nicht bewusst, dass es Abhängigkeiten innerhalb Ihrer Anwendungen gibt, die eine Funktion in großem Maßstab nicht ausführen könnten. Lasttests ermöglichen es Ihnen, potenzielle Probleme zu erkennen, die für die Aufrechterhaltung einer hochverfügbaren Anwendung unerlässlich sein könnten.
API-Gateways zur Sicherheit bereitstellen
Sicherheit sollte für Ihre Anwendungen oberste Priorität haben, sei es für eine traditionelle Architektur oder serverlos. Die Implementierung eines API-Gateways als Ereignisquelle für Ihre Lambda-Funktion ist entscheidend. Am besten wäre es, wenn Sie API-Gateway-Endpunkte sichern. Dieses API-Gateway bietet mehrere Möglichkeiten, Ihre API zu sichern.
Serverless unterstützt agiles Softwaredesign
Die Entwicklung von Anwendungen mit einem Serverless Framework ist der moderne Ansatz für die Anwendungsentwicklung. Es gibt weitere Best Practices, die man bei der Nutzung eines Serverless Frameworks erklären muss, und im Laufe der Zeit werden Sie herausfinden, welche Praktiken Ihnen und Ihren Projektzielen am besten dienen. Im Verlauf Ihres Projekts können Ihre Nutzer Ihnen sagen, was verbessert werden muss.
Verwandte Literatur
Diese Beiträge sind meine eigenen und spiegeln nicht unbedingt die Position, Strategien oder Meinung von BMC wider.