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