無服務器數據庫:為您選擇最佳選擇

4 月 28

什麼是無服務器數據庫?

無服務器計算服務由雲供應商提供。在這種雲計算模型中,供應商運行服務器並動態管理資源分配。無服務器的成本是根據應用程序使用的資源而不是預先購買的容量單位計算的。

 

無服務器數據庫是無服務器計算的先決條件。它們是專為不可預測和快速變化的工作負載而設計的。無服務器計算仍然需要服務器,而無服務器數據庫對於操作這些服務器至關重要。

 

 

  • 無服務器數據庫的功能
    • 多租戶架構
    • 動態服務質量
    • 地理分佈
    • 單一交易查詢語言
  • 選擇無服務器數據庫
    • 數據模型需求
    • 基礎架構即代碼
    • 完全託管
    • 定價模式
  • 無服務器數據庫的利與弊
    • 使用無服務器數據庫的優點
    • 使用無服務器數據庫的缺點

 

無服務器數據庫的功能

多租戶架構 

無服務器數據庫的優點之一是它可以充當組織中多個項目的單個資源池。

 

對於開發團隊來說,這是一個巨大的優勢,因為不需要構建隔離的特定於應用程序的數據源。

 

多租戶體系結構使之成為可能,該體系結構使開發人員能夠配置多個應用程序並在同一數據庫集群中設置所有部署。

動態服務質量

使用多租戶時,可以為每個租戶分配唯一的優先級。在這種情況下,您可以將優先級分配給特定的租戶以使用那些系統資源。

 

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.

地理分佈

由於大多數公司都是在全球範圍內開展業務,因此您需要向世界各地的用戶提供數據。使用具有在不同地理位置的許多數據中心的基礎架構,您可以在物理上為用戶提供數據,這可以顯著改善用戶體驗。 

 

此外,通過使用地理分佈的高可用性,服務中斷的風險較小。無服務器數據庫允許您在沒有其他工具或自定義開發的情況下全局複製多個數據集。無服務器數據庫網絡層中內置的協議使您能夠正確響應錯誤和性能下降。

單一交易查詢語言

無服務器數據庫的一個關鍵優勢是,它使您可以使用一個資源存儲為多個應用程序提供服務。但是,將單個數據結構或使用該數據的所有應用程序應用於開發可能會遇到嚴重挑戰。例如,使用此結構時,無法以其原始格式存儲數據。

 

一些應用程序需要強大的數據模式,而另一些應用程序則需要無模式的數據模型。理想的無服務器數據庫同時支持結構化和非結構化數據,因此它可以容納幾種不同的數據模型

 

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).

選擇無服務器數據庫

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. 

數據模型需求

要考慮的第一個因素是應用程序數據模型的需求以及數據庫滿足這些需求的程度。

 

亞馬遜提倡內置目的數據庫的概念。這裡的想法是,過去,大多數應用程序被迫使用關係數據庫。有許多不同的數據庫類型可供選擇,並且所有這些類型都可用於增強無服務器數據庫的功能。選擇最適合您的應用程序的一種:

 

  • 關係/ SQL /規範化-improves query flexibility at the expense of performance. For example, MySQL, PostgreSQL and Raima Database Manager
  • NoSQL /非規範化-optimizes read-time queries at the expense of denormalized data sets and more difficult querying. These include MongoDB, Cassandra, and DynamoDB.
  • 具體用例-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.

 

大多數應用程序具有適合前兩個類別之一的數據。選擇是靈活性還是性能。如果您的數據訪問模式可能會更改,並且您需要靈活性,請使用關係數據庫。使用NoSQL數據庫可實現大規模的高性能。

基礎架構即代碼

基礎架構即代碼(IaC)正在成為開發人員和IT專家的最佳實踐。 IAC允許您使用配置文件完全定義基礎結構,按需部署,並以一致且可重複的方式進行更新。

 

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.

完全託管

無服務器背後的想法是將繁重的基礎架構任務移交給雲供應商,從而節省了開發時間。當然也可以將此擴展到數據庫,並依賴於託管數據庫,以避免與數據庫修補,升級和擴展有關的維護。但是,對於某些用例,託管數據庫可能無法提供最佳解決方案,並且可能無法針對特定用例進行自定義。替代方法是運行一個獨立的數據庫(如MongoDB),並使用它來為您的無服務器應用程序提供服務。

定價模式

許多無服務器應用程序使用按需付費定價模式。上 AWS Lambda,則您需要為Lambda函數執行的實際計算付費,而與該函數運行的流量或時間無關。類似地,諸如Amazon SQS,SNS和API Gateway之類的服務使用即付即用定價模型。

 

數據庫世界中的“按需付費”略有不同。這是因為除了訪問數據所需的計算能力之外,您還必須為存儲付費。但是,存儲通常是按GB定價的,並且與購買整個存儲相比仍具有更高的成本效益。 AWS EBS 附加到計算實例的捲。

無服務器數據庫的利與弊

使用無服務器數據庫的優點

購買固定數量的服務器並使用它們來交付無服務器數據庫很複雜,並且通常利用率較低,這使其比使用託管無服務器數據庫要昂貴得多。託管數據庫選項還消除了運營成本,例如許可,安裝,維護,支持和補丁程序。

 

在無服務器架構中,開發人員和操作員無需設置和調整自動縮放策略即可節省時間。雲提供商負責擴展容量以無縫滿足需求。現在,一小群開發人員可以獨立開發應用程序,而無需基礎架構或工程支持團隊。 

使用無服務器數據庫的缺點

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.

 

無服務器計算也不適合某些計算工作負載,例如高性能計算。原因是雲提供商強加了某些資源限制,這些資源限制不允許極端的性能或吞吐量。另一個原因是,配置所需數量的服務器並在特定時間段內運行它們以實現所需的吞吐量或計算能力可能更具成本效益。

 

無服務器監控 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.

 

運行無服務器架構的環境通常不是開源的,因此很難在本地環境中準確複製性能特徵。幸運的是,已經出現了可以解決此問題的優秀無服務器監視工具。

 

無服務器數據庫可能被誤認為比傳統數據庫更安全。雲提供商確實採取了必要的措施來解決操作系統漏洞。但是,攻擊的漏洞實際上可能更高,因為該應用程序具有比傳統體系結構更多的組件,並且所有這些都是無服務器應用程序的入口點。在無服務器環境中,在端點或服務器級別運行的安全性方法無關緊要。新的無服務器安全工具將重點放在保護單個無服務器功能上。

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.