Serverlose Datenbank: Auswahl der besten Option für Sie

April 28

Was ist eine serverlose Datenbank?

Serverlose Computerdienste werden von Cloud-Anbietern angeboten. In diesem Cloud-Computing-Modell führt der Anbieter Server aus und verwaltet die Ressourcenzuweisung dynamisch. Die Kosten für Serverless werden anhand der von der Anwendung verwendeten Ressourcen berechnet, nicht anhand der vorab gekauften Kapazitätseinheiten.

 

Serverlose Datenbanken sind eine Voraussetzung für serverloses Computing. Sie sind speziell für unvorhersehbare und sich schnell ändernde Workloads konzipiert. Serverloses Computing erfordert weiterhin Server, und serverlose Datenbanken sind für den Betrieb dieser Server unerlässlich.

 

 

  • Funktionen serverloser Datenbanken
    • Mandantenfähige Architektur
    • Dynamische Servicequalität
    • Geoverteilung
    • Einzelne Transaktionsabfragesprache
  • Auswählen einer Datenbank ohne Server
    • Datenmodellanforderungen
    • Infrastruktur als Code
    • Vollständig verwaltet
    • Preismodell
  • Vor- und Nachteile der serverlosen Datenbank
    • Vorteile der Verwendung einer serverlosen Datenbank
    • Nachteile der Verwendung serverloser Datenbanken

 

Funktionen serverloser Datenbanken

Mandantenfähige Architektur 

Einer der Vorteile einer serverlosen Datenbank besteht darin, dass sie als einzelner Ressourcenpool für mehrere Projekte in Ihrer Organisation fungieren kann.

 

Für das Entwicklungsteam ist dies ein großer Vorteil, da keine isolierten anwendungsspezifischen Datenquellen erstellt werden müssen.

 

Dies wird durch eine mandantenfähige Architektur ermöglicht, mit der Entwickler mehrere Anwendungen konfigurieren und alle Bereitstellungen in demselben Datenbankcluster einrichten können.

Dynamische Servicequalität

Bei Verwendung der Mandantenfähigkeit können Sie jedem Mandanten eindeutige Prioritäten zuweisen. In diesem Fall können Sie bestimmten Mandanten Prioritäten zuweisen, um diese Systemressourcen zu verwenden.

 

This allows operations teams to maximize resource usage across the organization’s projects. You can run your resources at 60-80% utilization; if more than 90% of the peak is observed, the lower priority workloads are suppressed.

Geoverteilung

Da die meisten Unternehmen weltweit geschäftlich tätig sind, müssen Sie Benutzern auf der ganzen Welt Daten zur Verfügung stellen. Wenn Sie mit einer Infrastruktur arbeiten, die über viele Rechenzentren an verschiedenen geografischen Standorten verfügt, können Sie Daten physisch in der Nähe Ihrer Benutzer bereitstellen, wodurch die Benutzererfahrung erheblich verbessert werden kann. 

 

Durch die Verwendung von geoverteilter Hochverfügbarkeit besteht außerdem ein geringeres Risiko für Dienstunterbrechungen. Mit serverlosen Datenbanken können Sie mehrere Datensätze global ohne zusätzliche Tools oder benutzerdefinierte Entwicklung replizieren. In die servernlose Datenbanknetzwerkschicht integrierte Protokolle ermöglichen es Ihnen, korrekt auf Fehler und Leistungseinbußen zu reagieren.

Einzelne Transaktionsabfragesprache

Ein wesentlicher Vorteil einer serverlosen Datenbank besteht darin, dass Sie mehrere Anwendungen mit einem Ressourcenspeicher bereitstellen können. Das Anwenden einer einzelnen Datenstruktur oder auf alle Anwendungen, die diese Daten verwenden, kann jedoch zu ernsthaften Herausforderungen bei der Entwicklung führen. Beispielsweise ist das Speichern von Daten im Originalformat bei Verwendung dieser Struktur nicht möglich.

 

Einige Anwendungen erfordern starke Datenschemata, während andere ein schemaloses Datenmodell erfordern. Die ideale Datenbank ohne Server unterstützt sowohl strukturierte als auch unstrukturierte Daten, sodass mehrere verschiedene Datenmodelle berücksichtigt werden können

 

Serverless databases can make a schema optional. This can help support both structured and unstructured data use cases. It also lets you benefit from the advantages of a schema, without any of its disadvantages (because it’s possible to process data without it).

Auswählen einer Datenbank ohne Server

Serverless databases are available as managed services from public cloud providers like AWS and Microsoft Azure. Serverless applications can also be supported by open source NoSQL databases like MongoDB and Cassandra. Let’s consider the different factors at stake when evaluating databases for a serverless application. 

Datenmodellanforderungen

Der erste zu berücksichtigende Faktor sind die Anforderungen des Anwendungsdatenmodells und der Grad, in dem die Datenbank diese Anforderungen erfüllt.

 

Amazon hat das Konzept einer zweckgebundenen Datenbank beworben. Die Idee dabei ist, dass in der Vergangenheit die meisten Anwendungen gezwungen waren, relationale Datenbanken zu verwenden. Es stehen viele verschiedene Datenbanktypen zur Auswahl, mit denen alle serverlose Datenbanken betrieben werden können. Wählen Sie diejenige aus, die am besten zu Ihrer Anwendung passt:

 

  • Relational / SQL / normalisiert-improves query flexibility at the expense of performance. For example, MySQL, PostgreSQL and Raima Database Manager
  • NoSQL / denormalisiert-optimizes read-time queries at the expense of denormalized data sets and more difficult querying. These include MongoDB, Cassandra, and DynamoDB.
  • Spezifische Anwendungsfälle-a database for a specific purpose, such as Elasticsearch for full-text search, Neo4J for graph modeling, or Redis for in-memory operations and ultra-high performance.

 

Die meisten Anwendungen verfügen über Daten, die einer der ersten beiden Kategorien entsprechen. Die Wahl ist Flexibilität vs. Leistung. Wenn sich Ihre Datenzugriffsmuster ändern und Sie Flexibilität benötigen, verwenden Sie eine relationale Datenbank. Verwenden Sie eine NoSQL-Datenbank, um eine hohe Skalierbarkeit zu erzielen.

Infrastruktur als Code

Infrastruktur als Code (IaC) wird zur Best Practice für Entwickler und IT-Spezialisten. Mit IAC können Sie die Infrastruktur mithilfe einer Konfigurationsdatei vollständig definieren, bei Bedarf bereitstellen und Aktualisierungen auf konsistente und wiederholbare Weise vornehmen.

 

This approach is especially useful for serverless applications and applications, where the infrastructure is tightly integrated. Serverless applications include queues, streams, blob storage, with event triggers connecting them together. If your serverless application doesn’t use IaC, it can be very difficult to manage, and therefore your serverless database must also support IaC.

Vollständig verwaltet

Die Idee hinter serverless war, schwere Infrastrukturaufgaben auf Cloud-Anbieter zu verlagern, um Entwicklungszeit zu sparen. Es ist selbstverständlich, dies auch auf die Datenbank auszudehnen und sich auf eine verwaltete Datenbank zu verlassen, um Wartungsarbeiten im Zusammenhang mit Datenbank-Patches, Upgrades und Skalierungen zu vermeiden. In einigen Anwendungsfällen bieten verwaltete Datenbanken jedoch möglicherweise keine optimale Lösung und sind für bestimmte Anwendungsfälle möglicherweise weniger anpassbar. Die Alternative besteht darin, eine eigenständige Datenbank wie MongoDB auszuführen und damit Ihre serverlosen Anwendungen zu bedienen.

Preismodell

Viele serverlose Anwendungen verwenden ein Pay-as-you-go-Preismodell. Auf AWS LambdaSie zahlen für die tatsächlichen Berechnungen, die von Ihrer Lambda-Funktion durchgeführt werden, unabhängig von der Menge des Datenverkehrs oder der Zeit, in der die Funktion ausgeführt wird. In ähnlicher Weise verwenden Dienste wie Amazon SQS, SNS und API Gateway ein Pay-as-you-go-Preismodell.

 

Pay-as-you-go in der Datenbankwelt ist etwas anders. Dies liegt daran, dass Sie zusätzlich zur für den Zugriff auf die Daten erforderlichen Rechenleistung für die Speicherung bezahlen müssen. Der Speicherpreis beträgt jedoch in der Regel pro GB und kann dennoch wesentlich kostengünstiger sein als die Bezahlung eines gesamten Speichers AWS EBS Volume, das an eine Recheninstanz angehängt ist.

Vor- und Nachteile der serverlosen Datenbank

Vorteile der Verwendung einer serverlosen Datenbank

Der Kauf einer festen Anzahl von Servern und deren Verwendung zur Bereitstellung einer serverlosen Datenbank ist komplex und bietet normalerweise eine geringe Auslastung, was sie viel teurer macht als die Verwendung einer verwalteten serverlosen Datenbank. Durch verwaltete Datenbankoptionen werden auch Betriebskosten wie Lizenzierung, Installation, Wartung, Support und Patches eliminiert.

 

In einer Architektur ohne Server können Entwickler und Betreiber Zeit sparen, indem sie keine Strategien zur automatischen Skalierung einrichten und optimieren müssen. Cloud-Anbieter sind dafür verantwortlich, die Kapazität zu erweitern, um die Nachfrage nahtlos zu befriedigen. Jetzt kann eine kleine Gruppe von Entwicklern Anwendungen unabhängig entwickeln, ohne dass Infrastruktur- oder Engineering-Support-Teams erforderlich sind. 

Nachteile der Verwendung serverloser Datenbanken

Infrequent use of a database can result in higher database response latency, compared to databases running actively on dedicated servers, virtual machines, or containers. This happens because the cloud provider spins down the server when the serverless database is not used. The longer the startup time, the longer the wait time. This problem can be mitigated using features like AWS Lambda’s provisioned concurrency.

 

Serverless Computing eignet sich auch nicht für bestimmte Computer-Workloads, z. B. Hochleistungs-Computing. Der Grund dafür ist, dass der Cloud-Anbieter bestimmte Ressourcenbeschränkungen festlegt, die keine extreme Leistung oder keinen extremen Durchsatz zulassen. Ein weiterer Grund ist, dass es kostengünstiger sein kann, die erforderliche Anzahl von Servern zu konfigurieren und sie für einen bestimmten Zeitraum auszuführen, um die erforderlichen Durchsätze oder Rechenkapazitäten zu erzielen.

 

Serverlose Überwachung is much more difficult than in traditional server infrastructure. Diagnosing performance or excessive resource usage problems can be difficult. You can reserve all the features, but you can’t attach a profiler, debugger, or APM tool to study the details.

 

Umgebungen mit Architekturen ohne Server sind im Allgemeinen keine Open Source-Umgebungen, sodass es schwierig ist, Leistungsmerkmale in einer lokalen Umgebung genau zu replizieren. Glücklicherweise gibt es bereits gute serverlose Überwachungstools, die dieses Problem lösen können.

 

Serverlose Datenbanken können fälschlicherweise sicherer sein als herkömmliche Datenbanken. Es ist richtig, dass Cloud-Anbieter die erforderlichen Schritte unternehmen, um Schwachstellen des Betriebssystems zu beheben. Die Anfälligkeit für Angriffe kann jedoch tatsächlich viel höher sein, da die Anwendung mehr Komponenten als eine herkömmliche Architektur enthält und alle Einstiegspunkte für Anwendungen ohne Server sind. Sicherheitsansätze, die auf Endpunkt- oder Serverebene ausgeführt werden, sind in einer Umgebung ohne Server nicht relevant. Neue Sicherheitstools ohne Server konzentrieren sich auf den Schutz einzelner Funktionen ohne Server.

Get notified about new RDM updates

Be the first to know about new Raima Database Manager updates when they go live, use cases, industry trends and more.