數(shù)據(jù)庫為何需要多區(qū)域應用程序架構?
譯文?譯者 | 布加迪
審校 | 孫淑娟
多區(qū)域應用程序架構是任何云應用系統(tǒng)最重要的方面之一。它的意義不僅僅在于覆蓋全球和接近客戶,還在于確保應用程序可以在不同的區(qū)域和國家順利運行。

因此,您的數(shù)據(jù)庫應駐留在多個區(qū)域,那樣即使遇到自然災害或電力中斷等意外問題,也能確保高可用性和高性能。
多區(qū)域意味著什么?
多區(qū)域意味著您的應用程序覆蓋多個區(qū)域。每個區(qū)域都是一個獨立的數(shù)據(jù)中心,含有自己的數(shù)據(jù)庫和負載均衡系統(tǒng)。不同區(qū)域的數(shù)據(jù)庫彼此之間沒有連接,但是它們都有相同的模式,因此可以跨所有區(qū)域使用一組查詢。
每個區(qū)域都有自己的服務器,這意味著對應用程序的任何請求都沒有單一故障點。如果一個數(shù)據(jù)中心出現(xiàn)故障,來自其他地方的用戶的流量將自動轉移到另一個數(shù)據(jù)中心,用戶不會注意到網(wǎng)站有任何異常。
為何使用多區(qū)域應用程序?
- 縮短延遲:多區(qū)域應用程序架構使您能夠將數(shù)據(jù)庫托管在不同的區(qū)域,從而縮短延遲。如果您的用戶位于世界各地,這一點尤其有用。
 - 減少數(shù)據(jù)丟失:使用多區(qū)域應用程序架構,您可以在多個區(qū)域之間使用同步復制,并確保即使出現(xiàn)硬件/網(wǎng)絡故障或任何其他災難,數(shù)據(jù)也不會丟失。就算其中一個區(qū)域因網(wǎng)絡中斷或硬件故障等某個原因出現(xiàn)故障,您的數(shù)據(jù)仍然在其他區(qū)域可以使用。
 - 降低成本:您可以將數(shù)據(jù)庫托管在云平臺上,而不是購買昂貴的服務器在本地托管,從而節(jié)省成本,因為云提供商對其服務的收費低于本地托管提供商(這同樣適用于其他的IT基礎設施部件,比如存儲)。
 
如何著手構建多區(qū)域應用程序?
想構建多區(qū)域應用程序,您需要使用在多個區(qū)域可用的數(shù)據(jù)庫。比如說,如果您有一個駐留在AWS上的應用程序,并將亞馬遜關系數(shù)據(jù)庫服務(RDS)用于數(shù)據(jù)庫,那么您可以將RDS實例配置為在多個區(qū)域可用。
還可以從具有多區(qū)域可用性的數(shù)據(jù)庫中進行選擇。Microsoft Azure SQL數(shù)據(jù)庫就是一個典型例子:在該數(shù)據(jù)庫中,用戶可以創(chuàng)建數(shù)據(jù)庫,可用性集(availability set)由復制相連接。您還可以使用Microsoft SQL Server 2017或更高版本的服務代理功能,使用流復制或合并復制跨不同區(qū)域復制數(shù)據(jù)。
第三種選擇是使用支持多區(qū)域故障切換的數(shù)據(jù)庫,因為其故障切換流程不需要任何停運,而是立即切換到另一個區(qū)域,不會中斷服務,性能在切換期間也保持不變!
多區(qū)域架構的好處
多區(qū)域架構讓您可以在不同的區(qū)域擁有數(shù)據(jù)庫的多個副本。每個副本可以位于不同的區(qū)域,每個區(qū)域可以為相同的數(shù)據(jù)庫使用不同的版本和語言。這為您在針對數(shù)據(jù)冗余和高可用性設計架構時提供了極大的靈活性。
您可能希望在一個區(qū)域保留存儲成本較低的舊版本作為備份,而在另一個區(qū)域使用存儲需求較高的新版本作為主版本,那樣如果前者有任何問題,您可以比較輕松地切換到后者。
多區(qū)域架構面臨的挑戰(zhàn)
雖然區(qū)域部署架構的好處顯而易見,但它也有自己的一系列挑戰(zhàn)。最大的挑戰(zhàn)是成本。雖然運行多區(qū)域數(shù)據(jù)庫的成本可能低于單區(qū)域環(huán)境,但仍可能比在不同地方運行單區(qū)域環(huán)境的成本更高。原因是您需要為每個區(qū)域維護單獨的基礎設施和服務——比如說,您可能擁有跨區(qū)域的獨立計算資源和存儲實例,而不是依賴貴公司內的共享基礎設施。多區(qū)域數(shù)據(jù)庫的另一個挑戰(zhàn)是數(shù)據(jù)延遲:兩個距離遙遠的地方因網(wǎng)絡延遲或網(wǎng)絡擁塞而導致延遲增加時,就會出現(xiàn)數(shù)據(jù)延遲。
雖然在多個地區(qū)管理如此大的數(shù)據(jù)集變得更容易,因為它們將容量分布到位于不同地區(qū)(數(shù)據(jù)中心)的多臺服務器上,在不影響性能和可用性的情況下有助于降低操作成本。但是說到可擴展性和安全問題,情況變得棘手起來,因為以一致的方式確保這些工作負載正常運行可能需要額外的工作。
通過將應用程序分布到每個區(qū)域內的多個數(shù)據(jù)中心,可以減少應用程序的延遲和成本,并提高可靠性、性能和可用性。
在為數(shù)據(jù)庫構建多區(qū)域應用程序架構時,還可以跨多個區(qū)域改進安全,比如數(shù)據(jù)加密。
除此之外,還有其他好處:
增強可擴展性——在任何一個區(qū)域出現(xiàn)高負載或流量突發(fā)的情況下,您都可以在部署應用程序的任何位置添加更多的計算資源,從而輕松提高容量。這讓您在沒有任何停運的情況下進行擴展,同時在高峰使用時間保持高性能。
簡化管理——管理跨多個位置部署的應用程序需要的管理開銷比管理單個位置的應用程序要少。
結論
我們已了解了使用多區(qū)域應用程序架構的原因。多區(qū)域數(shù)據(jù)庫架構是個復雜的領域,需要數(shù)據(jù)管理、數(shù)據(jù)庫和云解決方案等方面的專業(yè)知識。我們還討論了在貴公司使用多區(qū)域數(shù)據(jù)庫架構的好處。
原文標題:??Why You Want Multi-Region Application Architecture for you Database???,作者:Hiren Dhaduk?















 
 
 






 
 
 
 