Wie verwalten serverlose Architekturen Datenbankverbindungen?

10

Der Hauptvorteil der serverlosen Architektur soll sein, dass solche Programme keinen dedizierten Server benötigen, um kontinuierlich ausgeführt zu werden. Werden dann auf eine Anfrage aufgerufen und hören beim Beenden der Funktion auf.

Dies bedeutet, dass ein serverloses Programm schnell gestartet werden muss, um reagieren zu können. Wie geht es dann mit zeitaufwändigen Aktionen wie der Datenbankverbindung um? Stellt es jedes Mal eine Verbindung zur Datenbank her oder verwaltet es die Datenbankverbindung separat, um Aufrufe wie in Serveranwendungen auszuführen?

registrierter Nutzer
quelle

Antworten:

9

Da eine serverlose App zwischen den Ausführungen keinen Status beibehält, kann sie keinen Datenbankverbindungspool verwalten. Serverlose Apps unterliegen denselben Einschränkungen wie CGI-Skripte der 90er Jahre. Im Allgemeinen kann ein permanenter Serverprozess eine Prozess-pro-Anforderung- oder Container-pro-Anforderung-Architektur übertreffen, da der Server die Initialisierung einmal und nicht einmal pro Anforderung ausführt.

Serverlose Programme eignen sich nicht besonders für latenzempfindliche Aufgaben wie das Bereitstellen einer Website. Sie eignen sich besser für sporadische Hintergrundaufgaben, die Sie nicht auf Ihrem Hauptserver ausführen möchten, ohne zusätzliche Anwendungsserver manuell verwalten und ausgleichen zu müssen. Sie können auch eine gute Lösung sein, wenn die Entwicklerproduktivität weitaus wichtiger ist als Antworten mit geringer Latenz.

amon
quelle
Hervorragende Punkte. Ich würde auch vorschlagen, dass ein Hauptvorteil, der Leute zu Serverless treibt, die Kosten sind. Wenn Sie einen Anbieter (z. B. Amazon) nur anhand der Anzahl der Anfragen bezahlen und nicht zahlen, um einen inaktiven Server am Laufen zu halten, sparen Sie insbesondere während der Startphase Geld.
Paul
2
@Paul Der Hauptvorteil von Serverless ist die Bequemlichkeit (PaaS vs. IaaS). Die sichere Verwaltung eines Servers ist eine Fähigkeit, über die die meisten Entwickler (ich eingeschlossen) nicht verfügen. Ich bin mir sicher, dass es einige Szenarien gibt, in denen Serverless spürbar billiger ist. Virtuelle private Server beginnen jedoch bei 5 US-Dollar pro Monat, was, um es leicht auszudrücken, sehr wettbewerbsfähig ist. Vor allem, wenn man bedenkt, dass ein VPS weitaus weniger Einschränkungen aufweist, sodass Sie beliebige Software und permanente Dienste ausführen können. Dies ist ein Vergleich zwischen Apfel und Orangen. In einem Modell zahlen Sie für einen inaktiven Server, in einem anderen für die wiederholte Startzeit.
Amon
4

Es hängt davon ab, ob.

Die Implementierung des Lambda-Läufers hinter den Kulissen wird dies beeinflussen. Wir können sehen, dass der Container in AWS möglicherweise wiederverwendet wird.

http://docs.aws.amazon.com/lambda/latest/dg/lambda-introduction.html

So konnten wir zumindest für einige Anfragen Verbindungspooling / Wiederverwendung sehen. Außerdem sollten wir die Datenbank selbst und die Behandlung eingehender Verbindungsanfragen berücksichtigen.

Diese Art von Frage unterstreicht für mich einige der Probleme mit "serverlos", es ist noch sehr neu und unreif, so dass die Details nicht herausgearbeitet wurden.

Wir sollten uns immer daran erinnern, dass serverlos keine Server bedeutet. Wenn die Rate, mit der Sie ein Lambda aufrufen, hoch genug ist, werden möglicherweise mehrere Server oder Container ausgeführt.

In der Praxis können die Startzeit und Ressourcen wie IP-Adressen von Lambdas ein echtes Problem sein. Vielleicht wird sich im Laufe der Zeit ein Konsens darüber ergeben, wie sie ausgeführt werden sollen, und diese Probleme werden solide Antworten erhalten.

Ewan
quelle