簡介
在許多組織中,資料庫的角色隨著時間演進。雖然仰賴資料來建構應用程式、制定商業決策,以及在更大型的生態系統中提供價值的程度有所增加,但在許多情況下,資料庫軟體與基礎架構本身的**管理**已發生轉變。
雖然這些資產傳統上是由組織**自行**營運,但其管理工作已日益外包給外部供應商。這個概念的第一個迭代是轉向「託管資料庫」,由供應商管理基礎架構和軟體,同時允許使用者調整設定和設定擴展策略。
最近,這個概念已演進為「無伺服器資料庫」,整個基礎架構、資料儲存和底層架構完全由供應商管理,使用者僅透過類似 API 的互動來存取他們管理的資料。
在本指南中,我們將討論傳統部署的資料庫與無伺服器資料庫之間的差異。我們將在適當情況下討論託管資料庫產品,以協助區分供應商提供的不同選項。了解這些不同的概念可以幫助您了解不同產品之間的權衡取捨,並針對您自己的專案做出關於哪種資料庫管理類型最合理的明智決策。
查看 Prisma Data Platform 以在單一位置管理您的所有應用程式資料。
傳統資料庫 vs 託管資料庫 vs 無伺服器資料庫
在我們深入探討各種策略的優缺點之前,讓我們先花一點時間回顧一下每個系統背後的總體概念是如何運作的。
傳統資料庫
傳統資料庫是數十年來一直可用的資料庫和資料庫管理風格。它涉及佈建具有適當硬體資源的實體或虛擬伺服器,並將其設定為資料庫伺服器。除了初始安裝和配置之外,這種設定類型還需要
- 持續管理底層基礎架構,包括硬體健康狀況、資源管理和網路存取
- 維護最新的、穩定的和安全的作業系統,以及
- 配置、最佳化和管理資料庫管理系統
一般而言,此選項提供大量的控制和彈性。系統的每個部分都可以進行檢查、最佳化和變更,以滿足使用者和應用程式的需求。
這會以更大的管理負擔為代價。必須維護和最佳化系統的所有層級,以提供理想的應用程式效能,同時維持系統和資料的可用性和安全性。
託管資料庫
託管資料庫是大多數雲端供應商提供的產品,作為管理您自己基礎架構的替代方案。取而代之的是,供應商管理伺服器配置和資料庫軟體,並向使用者公開選項,以允許他們配置和調整行為。
透過託管資料庫,供應商負責
- 持續管理底層基礎架構,包括硬體健康狀況、資源管理和網路存取
- 維護最新的、穩定的和安全的作業系統,以及
- 管理資料庫系統的部分,例如資料庫管理系統的健康狀況和功能
使用者仍然負責
- 決定其資料庫的最佳設定
- 設定擴展、備份和其他軟體層級配置的策略
一般而言,這種配置允許供應商管理組織不太關心的流程部分,只要這些部分維持在高標準即可。主要的可配置區域仍然向使用者公開,以便他們可以根據資源的重要性、營運需求和其 SLA 來調整行為。
許多組織採用這種管理風格,因為它允許其開發人員自訂他們關心的資料庫部分,而無需維護內部系統管理專業知識。如果您的需求與供應商對產品的想法非常吻合,則這種管理風格可以運作良好,但是當您發現自己在給予您的控制量方面掙扎,或者自動化程度仍然不是您所希望的那樣時,可能會很困難。
無伺服器資料庫
無伺服器資料庫是雲端供應商提供的一種相對較新的方法,它從使用者手中接管了更大的管理責任。無伺服器資料庫將資料庫管理系統中處理儲存的部分與執行查詢的部分分離。這表示兩者都可以獨立擴展。在無伺服器資料庫中,這些元件都完全由供應商管理。
實際上,這允許將無伺服器資料庫視為無限大的儲存庫,可以在其中儲存、操作和檢索資料。後端儲存將根據需要擴展,查詢執行器的數量也將根據需求進行調整。使用者只需要透過類似 API 的介面存取資料庫,該介面會自動將命令路由到正確的元件。
在我們討論的所有選項中,無伺服器資料庫需要的營運管理量最少。這允許您將資料庫視為外部服務來使用,而不是作為您必須保持運作的基礎架構元件。
何時使用傳統資料庫與無伺服器資料庫
現在我們已經回顧了不同資料庫管理策略所採用的方法,我們可以討論它們最適合哪些情境。雖然這些決策主要取決於您自己的應用程式需求、內部專業知識以及對最佳化和管理的意願,但仍有一些一般指標可以尋找,這些指標可能有助於將您導向正確的方向。
我為什麼要使用傳統資料庫?
如果您需要控制、隱私和效能,那麼管理資料庫伺服器的整個堆疊(從硬體到資料庫軟體)的傳統方法最適合。
高度控制
雖然傳統資料庫伺服器需要持續監控、維護和應急計畫才能維持可用性,但它提供了無與倫比的控制層級。
您可以選擇適合您特定需求的基礎架構架構,從單一伺服器到複雜的叢集。您可以將這些資產部署在任何您想要的地方,無論是在內部部署、在具有您自己或租用硬體的資料中心,還是使用雲端供應商的標準運算資產。您可以升級和更換您認為合適的任何元件,並調整任何軟體層級的配置,而沒有任何限制。
如果您認為能夠在部署的任何層級更改任何內容非常重要,那麼傳統資料庫部署可能是您的最佳選擇。您將需要為這種控制層級付出代價,即承擔管理部署每個部分的責任。
著重資料隱私
如果您的應用程式資料需要非常高的隱私層級,無論是作為一項功能還是作為符合任何標準或法規的要求,傳統資料庫都能為您提供最大的控制量。您將能夠確切地指示誰可以存取部署資料庫的實體硬體以及任何軟體層級的存取權。
執行您自己的資料庫伺服器可以確保您可以為您的使用者和資料設置必要的保護層級。不同客戶的資料可以放置在不同的資料庫、不同的伺服器或不同的實體位置,以維持嚴格的分離。您可以決定部署到符合某些行業標準的資料中心,以確保實體存取受到限制。
在軟體層級,您也從沒有外部存取權限的地方開始。預設情況下,沒有其他方對您的服務具有管理監督權。您可以透過避免提供存取權限並設定加密和其他安全措施來保護您的資料,以提供您所需的保護層級。
高效能
如果您的應用程式需要一致的高效能,傳統資料庫部署可能是您的最佳策略。
當您自行執行資料庫伺服器時,您可以更輕鬆地發現和減輕資源競爭,因為您可以完全了解競爭的流程和用戶端。您不必擔心鄰近的客戶佔用過多的共用資源,並且您可以根據需要佈建額外的資產。系統的峰值效能僅受限於您分配的時間和金錢以及您在管理系統方面的專業知識。
與無伺服器資料庫比較時,特別相關的是伺服器資料庫資源的持續可用性。您沒有冷啟動問題,因為您不會在低於峰值需求時縮減基礎架構層級。如果您需要一致的效能,而無論先前的活動層級如何,這可能很重要。
我為什麼要使用無伺服器資料庫?
如果無伺服器資料庫非常適合您的使用案例,它們也具有許多顯著的優點。如果您想要經濟實惠的資料庫存取權,並且可以自行擴展而無需繁重的管理負擔,那麼它們是一個絕佳的選擇。
低成本營運
無伺服器資料庫可以提供的主要優點之一是低營運成本。由於無伺服器資料庫的儲存層和運算層都是獨立擴展的,因此您只需為您實際使用的部分付費。
儲存層根據您管理的資料量進行擴展。這通常根據容量定價,如果您的應用程式具有一致的模式,則定價相對可預測。由於此儲存後端是動態分配的,因此您永遠不必擔心空間不足或與過度佈建儲存相關的成本。價格僅反映您的儲存空間。
運算層是完全分離的,並使用自己的標準進行擴展。佈建的查詢執行器實例數量取決於您的應用程式目前傳遞到資料庫的流量。這表示在流量高峰期,服務將啟動額外的查詢處理器來處理請求。另一方面,當沒有執行查詢時,服務可以將此層級縮減為零,從而完全消除該時間段的處理成本。
如果您對成本非常敏感,無伺服器資料庫可能是一個不錯的選擇,因為您不需要擔心準確預測您的使用量。平台的資源和您的成本會隨著您的使用量完全線性擴展。
高擴展性
我們在上一節中將此作為成本的一個功能提及,但無伺服器資料庫策略最顯著的優勢之一是易於擴展的能力。這不僅影響費用,還影響您滿足不同程度需求的能力,因為您的使用量會隨著可預測的週期波動,或因興趣激增而變化。
資料儲存和查詢執行的獨立擴展機制允許您使用相同的服務和配置來處理非常不同的使用情境。該服務可以自動調整以適應大多數使用層級,並且可以隨著您的應用程式成長而成長,而無需更改資料庫服務。
高擴展性也表示您可以輕鬆地試驗應用程式,並在測試和生產之間移動,而無需更改資料庫服務。您可以設定測試和預備資料庫,這些資料庫在不使用時會縮減為零。當實作持續整合和持續交付時,這可能特別有用,因為您的管道可以使用完全鏡像您生產環境的資料庫服務,同時僅為您的測試所需的一小部分使用量付費。
降低管理責任
對於無伺服器資料庫來說,也許最大的亮點是它們可以幫助您的團隊卸載管理責任的方式。雖然許多組織已經習慣了託管資料庫所需的管理開銷層級,但無伺服器資料庫承擔了額外的支援和管理層級,以進一步減少您的工作量。
無伺服器資料庫服務不僅管理基礎架構和資料庫管理系統軟體,還管理資源分配和資料庫的許多策略。您不必確切地計算出資料庫需要多少儲存空間或需要多少資料庫實例來服務您的平均流量層級,系統只需回應它發現的條件即可。您不必管理擴展規則,而是可以為您期望的擴展層級設定邊界,平台將在這些約束條件內智慧地擴展。
這聽起來類似於託管資料庫的常用描述方式,但實際上結果卻大不相同。使用無伺服器資料庫,您不必提前做出許多決策。主要來說,您配置您想要維持的任何成本閾值,以及您想要對擴展進行的任何特定調整,例如始終至少有一個可用的查詢執行器。系統幾乎處理所有其他事情,以確保您的應用程式的資料庫使用始終可用、效能符合標準並回應目前的要求環境。
結論
功能 | 傳統資料庫 | 無伺服器資料庫 |
---|---|---|
控制層級 | 高 | 極小 |
資料隱私 | 預設為私密,由管理員配置 | 必須信任供應商處理資料 |
效能 | 能夠達到非常高的效能,取決於硬體和配置 | 如果需求激增,效能可能會下降(可以透過備用查詢處理器來緩解) |
成本 | 靜態,無論需求高低,資料庫成本都相同 | 變動式,僅為您使用的部分付費 |
擴展性 | 取決於配置,可能很複雜 | 根據需求和服務設定自動擴展 |
管理責任 | 負責所有事項 | 極小的責任 |
在本文中,我們探討了傳統的自行管理資料庫與無伺服器資料庫服務之間的一些主要差異。我們討論了它們從使用者的角度來看有何不同,以及在根據組織的優先事項決定資料庫策略時,您必須考量哪些權衡取捨。
雖然無伺服器資料庫不適用於所有類型的應用程式,但它們可以讓許多組織的資料庫管理和營運變得更加容易。了解它們在何時可能是一個好的解決方案以及它們可能有哪些缺點,可以幫助您判斷在評估資料庫解決方案時是否可以並且應該考慮它們。
Prisma Accelerate 提供了一種處理無伺服器應用程式和後端資料庫之間連線問題的方法。它可以幫助管理來自無伺服器功能的臨時連線,以避免耗盡您的資料庫連線池。立即查看!