傳統的分布式環境數據庫通常部署為多個獨立的數據庫實例,具有統一查詢的能力。對于測試/開發環境,生成數據庫的許多物理副本在后臺創建,導致數據蔓延。云計算與這些解決方案的集成是有限的:重點是數據的位置,而不是使用分布式系統的強大功能。讓我們考慮針對高可用性和測試/開發數據庫的情況解決這些問題的不同選項。
高度可用的數據庫
云計算時代的高可用數據庫是可擴展、容錯且與任何私有云或公共云兼容的數據庫實例。它們旨在提供業務連續性,而不會因任何類型的硬件或網絡故障而導致用戶體驗的影響。其核心設計原則是消除任何單點故障,并提供平穩的故障轉移體驗。
主動/被動數據庫副本
第一種選擇是在主/副本體系結構中部署數據庫,以便在任何給定時間單個主服務器提供數據庫請求。復制策略使用數據庫供應商的復制特性或外部第三方復制工具從主服務器同步復制數據。一旦主服務器發生故障,副本服務器就會接管并使用復制的數據在故障發生之前重新啟動數據庫。
這種方法可能會遇到數據庫性能和可靠性問題。數據庫操作將與這兩個位置的網絡一樣快。第三方復制工具可能無法提供穩定的數據復制,并且可能在故障轉移后使數據庫處于不一致的狀態。
內置高可用性的數據庫
第二種選擇是尋找提供內置高可用性的數據庫解決方案。此功能在Noss數據庫(如Cassandra和MongoDB)中更常見。它們從數據庫層創建一致的數據副本,并啟用容錯數據庫。然而,這種方法可能對許多企業不起作用,因為傳統的關系數據庫管理系統缺乏這種能力。此外,混合和多云復制通常不是這些解決方案的選擇。
測試/開發數據庫
克隆數據庫是測試、開發和分析的共同要求。生產數據庫始終在隔離的基礎設施中運行,并且為備份、大數據分析和質量保證創建此數據庫的一個或多個副本。
快照和克隆
要將數據庫復制到另一個站點或云平臺,操作人員可以獲取快照并將其物理克隆到其他位置。這樣做涉及設置策略,該策略定期獲取數據庫的快照。并將其克隆到預定義位置。用戶需要像Oracle RMAN這樣的解決方案,它可以跟蹤快照之間的變化,采取一致的備份,并在需要時進行恢復。但是對于所有數據庫都不存在這樣的解決方案,并且使用遠程數據中心和云平臺來創建這樣的克隆仍然是復雜的(如果可行的話)過程。
適用于私有云、混合云和多云的高可用存儲
解決這些問題的更好解決方案是從存儲層完全抽象數據庫層,并讓存儲解決方案處理應用程序的高可用性。軟件定義存儲(SDS)可以通過提供不同類型的硬件和軟件故障的數據保護來提供此功能。軟件定義存儲(SDS)還可以靈活地在后端使用任何類型的存儲硬件,其中包括物理服務器和虛擬云實例。
這種方法的唯一缺點是投資于正確的解決方案,這種解決方案很容易與客戶選擇的數據庫應用程序集成,并且還與其他數據庫兼容以實現轉換。此外,此類解決方案應該能夠在任何私有云或公共云上運行,并且應該模糊內部部署和公共云位置之間的界限。
以下是這樣的解決方案:
數據庫即服務
社交媒體、投資、游戲等需要5個9或6個9的可用性,并采用全球可訪問性的應用程序,需要最適合云端的整個數據庫系統。數據庫即服務(DBaaS)提供了一種在云中運行數據庫的簡便方法,可以節省購買服務器、構建基礎設施和構建大型團隊來管理這些數據庫的時間。供應商提供多種方式來使用數據庫即服務(DBaaS)產品,例如安裝了數據庫的虛擬機,DB Schema即服務以及具有專用硬件的數據庫,用于RDBMS以及NoSQL數據庫。
在考慮任何基于云計算的數據庫安裝時,必須解決以下問題:
(1)供應商鎖定:每個提供商都有自己的業務流程框架,這使得消費者更難從一個提供商轉移到另一個提供商。
(2)數據同步:總是需要外部工具以一致的方式將數據從一個位置復制到另一個位置。這些工具通常具有破壞性,昂貴且復雜,并且它們構成了跨越多個位置和環境的巨大瓶頸。
(3)云計算成本分析:決定在云平臺中應該使用哪些應用程序和數據之前,應該進行仔細的預算分析。如果不設計混合云,其預算很容易失控,同時要記住為了獲得簡單性和靈活性需要付出代價。
迄今為止,數據庫已經存在了50多年,長期在傳統的辦公環境中成功運行。現在是企業通過采用云計算解決方案運行現代數據庫來獲得競爭優勢的時候了。