新聞中心
一、什么是數(shù)據(jù)庫即服務(wù)(DBaaS)

創(chuàng)新互聯(lián)是一家以網(wǎng)站設(shè)計(jì),開發(fā)核心業(yè)務(wù)的專業(yè)網(wǎng)絡(luò)公司,創(chuàng)新互聯(lián)為客戶提供:軟文營銷、創(chuàng)新網(wǎng)站解決方案。我們的目標(biāo)是提高客戶網(wǎng)站項(xiàng)目的專業(yè)度,以創(chuàng)新和互聯(lián)的思維增加用戶體驗(yàn)并有效提高潛在客戶。
首先介紹一下『數(shù)據(jù)庫即服務(wù)』?!簲?shù)據(jù)庫即服務(wù)』其實(shí)是『Database-as-a-service』的中文翻譯,我們看看它在維基百科中的定義:
我們知道,現(xiàn)在有很多的as-a-service,比如Infrastructure as a Service(IaaS)、Platform as a Service(Paas)還有Software as a Service(Saas)。他們到底都是什么呢?有什么區(qū)別?
這張圖應(yīng)該可以很好地解釋這些X-aaS。最左邊是傳統(tǒng)企業(yè)的IT,所有的活都要自己干,從數(shù)據(jù)中心服務(wù)器到操作系統(tǒng)數(shù)據(jù)庫再到上層業(yè)務(wù)系統(tǒng)。IaaS開始就進(jìn)入云計(jì)算的范疇了,最基礎(chǔ)的是云服務(wù)器,不需要再關(guān)心機(jī)房啊硬件拉,直接就可以用。然后再往右客戶需要關(guān)注的越來越少,臟活累活都交給服務(wù)提供商來干。
那么『數(shù)據(jù)庫即服務(wù)』的情況是怎么樣呢?
數(shù)據(jù)庫即服務(wù)的優(yōu)勢
『數(shù)據(jù)庫即服務(wù)』其實(shí)可以認(rèn)為是PaaS的一種變種,主要關(guān)注點(diǎn)在數(shù)據(jù)庫上,客戶不再需要去自己部署數(shù)據(jù)庫,而是只需要按需使用由服務(wù)提供商提供的數(shù)據(jù)庫即可,數(shù)據(jù)庫的維護(hù)都交給服務(wù)提供商來完成,這樣客戶只需關(guān)注應(yīng)用本身即可。
我們來具體看一下使用『數(shù)據(jù)庫即服務(wù)』和原來有什么不同,這里除了列舉傳統(tǒng)全部DIY的方式之外,還對比了一種利用IaaS來自建數(shù)據(jù)庫的方式,這也是現(xiàn)在比較常見的一種做法。我們看到傳統(tǒng)方式,需要做很多事情,這當(dāng)中還需要涉及多個(gè)團(tuán)隊(duì)來協(xié)作,非常不容易。然后看看第二種方式,利用IaaS來自建,這里以阿里云的云服務(wù)器ECS為例,這種方式和剛剛相比,省了不少事,但是仍然是比較麻煩的,也可能還需要涉及跨團(tuán)隊(duì)協(xié)作。
我們再來看看如果是使用『數(shù)據(jù)庫即服務(wù)』呢?只需要點(diǎn)下頁面上的部署按鈕,就可以等著用了,已經(jīng)進(jìn)化為完全自助服務(wù)了。從時(shí)間上來看,第一種方式可能需要花費(fèi)數(shù)月,第二種可能需要花費(fèi)數(shù)天,第三種則只需要數(shù)小時(shí)即可??梢姟簲?shù)據(jù)庫即服務(wù)』的優(yōu)勢還是很明顯的。
所以說為什么要『即服務(wù)』,其實(shí)是一個(gè)進(jìn)化的趨勢。我們經(jīng)常說人不能太懶,但是懶這個(gè)字用在程序猿身上可能并不是不好的東西,因?yàn)閼?,促使我們?huì)去自動(dòng)化。最早我們通過人肉操作,下載軟件,編譯部署,然后配置。有一天我們發(fā)現(xiàn)經(jīng)常需要這么干很累很浪費(fèi)時(shí)間,就開始寫腳本來完成這些操作,生產(chǎn)力開始提高。等到規(guī)模更大的時(shí)候,比如要同時(shí)管理數(shù)十臺數(shù)百臺機(jī)器,這時(shí)候可能分發(fā)腳本也嫌麻煩了,開始寫一些自動(dòng)化的工具來做這個(gè)事情。到最高級階段,就是完全實(shí)現(xiàn)自助服務(wù),這是懶的最高境界。
二、MongoDB簡介
說完了『即服務(wù)』以及其重要性,接下來我們看一下今天的另一個(gè)主角:MongoDB,因?yàn)橛行┩瑢W(xué)可能對這個(gè)不了解,所以還是簡單介紹一下。
首先,MongoDB是什么呢,它是一個(gè)Document Store,文檔型數(shù)據(jù)庫,也是我們經(jīng)常說的NoSQL。根據(jù)DB-Engines的數(shù)據(jù)庫排名,MongoDB長期霸占著NoSQL老大的地位,現(xiàn)在是數(shù)據(jù)庫界一位重量級選手。
事實(shí)上,MongoDB可以稱為是一種NewSQL,它融合了傳統(tǒng)關(guān)系型數(shù)據(jù)庫和NoSQL的一些優(yōu)點(diǎn)。
最左邊的3個(gè)能力是來自于關(guān)系型數(shù)據(jù)庫:
- 首先,它具備豐富的查詢語句和二級索引。通過這點(diǎn),用戶可以以足夠復(fù)雜的方式來訪問和組織數(shù)據(jù)。
- 第二點(diǎn),強(qiáng)一致性。MongoDB支持一個(gè)靈活的一致性模型。你可以選擇使用強(qiáng)一致性,或最終一致性,取決于你的業(yè)務(wù)場景。
- 第三點(diǎn),MongoDB能很好的集成到多企業(yè)現(xiàn)有技術(shù)架構(gòu)中。
右邊3個(gè)能力來自NoSQL:
- 首先是靈活的數(shù)據(jù)模型,MongoDB的文檔模型允許動(dòng)態(tài)修改schema,不用擔(dān)心有任何的性能影響。
- 其次是高性能和高可擴(kuò)展性,MongoDB可以輕松進(jìn)行水平擴(kuò)展,從而帶來更高的吞吐和更低的延遲。
- 最后,是全球部署,也就是高可用。接下來我們就來具體講下MongoDB的幾個(gè)關(guān)鍵特性。
MongoDB的關(guān)鍵特性
MongoDB的關(guān)鍵特性主要是3個(gè),第一個(gè)就是靈活動(dòng)態(tài)的文檔模型,第二個(gè)是高可用副本集,第三個(gè)是MongoDB的水平擴(kuò)展,也就是sharding。
1、靈活動(dòng)態(tài)的文檔模型
MongoDB以一種叫做BSON(二進(jìn)制JSON)的存儲(chǔ)形式將數(shù)據(jù)作為文檔存儲(chǔ)。具有相似結(jié)構(gòu)的文檔通常被組織成集合??梢园鸭峡闯深愃朴陉P(guān)系數(shù)據(jù)庫中的的表:文檔對應(yīng)的是行,字段對應(yīng)的是列。
MongoDB將一條記錄的所有數(shù)據(jù)聚合在一個(gè)文檔中,而在關(guān)系數(shù)據(jù)庫中則傾向于將數(shù)據(jù)分布在多個(gè)表中。這樣做有幾個(gè)好處,一是由于數(shù)據(jù)聚集,減少了多表JOIN的需求,這樣只需要讀一次就可以讀到所有數(shù)據(jù),在性能上會(huì)有很大優(yōu)勢。
另外,這種模型更加接近我們平時(shí)編程語言中的對象結(jié)構(gòu),可以方便開發(fā)者進(jìn)行數(shù)據(jù)映射。
最后就是這種模型是schema-less的,也就是在MongoDB中不需要像關(guān)系數(shù)據(jù)庫一樣去事先定義每個(gè)表的schema。MongoDB一個(gè)集合內(nèi)的文檔之間可以擁有不同的結(jié)構(gòu),可以輕松為一個(gè)新的文檔添加和減少字段,不會(huì)有任何的性能影響。這個(gè)特性非常適合開發(fā)一些新產(chǎn)品,可以快速迭代。
當(dāng)然,過于靈活就可能導(dǎo)致混亂。有時(shí)候我們想要求文檔必須要有某些字段,某些字段必須要有固定的類型。為此,MongoDB提供了一個(gè)文檔驗(yàn)證功能來對文檔的格式進(jìn)行約束。
2、高可用副本集
接下來說MongoDB的第二個(gè)關(guān)鍵特性,高可用副本集(也可以翻譯成復(fù)制集)。
MongoDB副本集由一組Mongo實(shí)例(進(jìn)程)組成,包含一個(gè)Primary節(jié)點(diǎn)和多個(gè)Secondary節(jié)點(diǎn),Mongodb Driver(客戶端)的所有數(shù)據(jù)都寫入Primary,Secondary從Primary同步寫入的數(shù)據(jù),以保持副本集內(nèi)所有成員存儲(chǔ)相同的數(shù)據(jù)集,提供數(shù)據(jù)的高可用。
上圖是一個(gè)典型的MongDB副本集,包含一個(gè)Primary節(jié)點(diǎn)和2個(gè)Secondary節(jié)點(diǎn)。
副本集通過replSetInitiate命令(或mongo shell的rs.initiate())進(jìn)行初始化,初始化后各個(gè)成員間開始發(fā)送心跳消息,并發(fā)起Primary選舉操作,獲得『大多數(shù)』成員投票支持的節(jié)點(diǎn),會(huì)成為Primary,其余節(jié)點(diǎn)成為Secondary。
這里『大多數(shù)』的定義是副本集內(nèi)可投票成員的一半以上,當(dāng)副本集內(nèi)存活成員數(shù)量不足大多數(shù)時(shí),整個(gè)副本集將無法選舉出Primary,此時(shí)副本集將無法提供寫服務(wù),處于只讀狀態(tài)。通常建議將副本集成員數(shù)量設(shè)置為奇數(shù),因?yàn)榕紨?shù)個(gè)節(jié)點(diǎn)能容忍的節(jié)點(diǎn)失效和比它少1個(gè)節(jié)點(diǎn)的奇數(shù)個(gè)節(jié)點(diǎn)是一樣的,但是可以節(jié)省一個(gè)節(jié)點(diǎn)的數(shù)據(jù)存儲(chǔ)成本。
除了初始化的時(shí)候會(huì)進(jìn)行選舉,MongoDB副本集的高可用服務(wù)體現(xiàn)在,當(dāng)副本集中沒有Primary節(jié)點(diǎn)時(shí),選舉都會(huì)進(jìn)行。比如當(dāng)Primary節(jié)點(diǎn)宕機(jī)時(shí),剩下的Secondary節(jié)點(diǎn)中會(huì)選舉出新的Primary(只需要滿足大多數(shù)成員存活的條件)。選舉使用的算法是基于Raft協(xié)議,但是可以通過為節(jié)點(diǎn)配置選舉優(yōu)先級對選舉結(jié)果進(jìn)行控制。
此外需要提一下,有一些比較常見的特殊的Secondary。一個(gè)是Hidden,Hidden節(jié)點(diǎn)和普通的Secondary的區(qū)別是它是對Driver隱藏的節(jié)點(diǎn),也就是客戶端無法訪問到Hidden,另外就是它的選舉優(yōu)先級是0,也就是它不能被選舉為Primary。Hidden節(jié)點(diǎn)上擁有數(shù)據(jù),因此通常會(huì)用來作一些運(yùn)維任務(wù),如數(shù)據(jù)備份、計(jì)算分析等。
另外還有一個(gè)是Arbiter,Arbiter是只參與投票,但是不存儲(chǔ)數(shù)據(jù)的節(jié)點(diǎn),這可以用在對可用性有要求,又要嚴(yán)格控制成本的場景。
此外還有如Priority0節(jié)點(diǎn)、Delayed節(jié)點(diǎn)等。
3、MongoDB的水平擴(kuò)展
MongoDB提供了一種水平擴(kuò)展的方式,叫做sharding,通過這種方式對數(shù)據(jù)庫進(jìn)行擴(kuò)容,對應(yīng)用是透明的。通過sharding,可以將一個(gè)集合的數(shù)據(jù)散到多個(gè)shard節(jié)點(diǎn)上。這里每個(gè)shard都可以是一組副本集。應(yīng)用程序通過一個(gè)路由節(jié)點(diǎn)(mongos)來訪問sharding集群的數(shù)據(jù)。有了sharding,MongoDB就可以突破單機(jī)的限制,比如磁盤、內(nèi)存和IOPS等,從而提供更強(qiáng)大的服務(wù)能力。
Sharded cluster由Shard、Mongos和Config server 3個(gè)組件構(gòu)成。Mongos本身并不持久化數(shù)據(jù),Sharded cluster所有的元數(shù)據(jù)都會(huì)存儲(chǔ)到Config Server,而用戶的數(shù)據(jù)則會(huì)分散存儲(chǔ)到各個(gè)shard。Mongos啟動(dòng)后,會(huì)從config server加載元數(shù)據(jù),開始提供服務(wù),將用戶的請求正確路由到對應(yīng)的Shard。
Sharded cluster支持將單個(gè)集合的數(shù)據(jù)分散存儲(chǔ)在多個(gè)shard上,用戶可以指定根據(jù)集合內(nèi)文檔的某個(gè)字段即shard key來分布數(shù)據(jù),目前主要支持2種數(shù)據(jù)分布的策略,范圍分片(Range based sharding)或hash分片(Hash based sharding)。
范圍分片下,文檔是根據(jù)其shard key的值進(jìn)行分片。shard key的值相鄰近的文檔比較有可能會(huì)被放在同一個(gè)shard上,這種方式適用于需要使用范圍查詢的業(yè)務(wù)。
哈希分片下,文檔根據(jù)其shard key的hash值進(jìn)行分片。這會(huì)保證數(shù)據(jù)分布比較均勻,但是不利于范圍查詢。
隨著數(shù)據(jù)量的增多,MongoDB也會(huì)自動(dòng)在后臺對數(shù)據(jù)以chunk為單位進(jìn)行負(fù)載均衡。
三、如何搭建MongoDB數(shù)據(jù)庫即服務(wù)
接下來介紹一下今天的重點(diǎn)內(nèi)容,如何搭建一個(gè)MongoDB數(shù)據(jù)庫即服務(wù)。
首先,在我看來,數(shù)據(jù)庫即服務(wù),應(yīng)該具備這些特性:自動(dòng)化、按需服務(wù)、彈性、安全、高可用和可量化:
- 第一個(gè),自動(dòng)化,這是非常關(guān)鍵的,是實(shí)現(xiàn)自助服務(wù)的基礎(chǔ),所有可以被自動(dòng)化操作的流程都應(yīng)該被自動(dòng)化,不需要人工干預(yù)。
- 第二個(gè),按需服務(wù),數(shù)據(jù)庫即服務(wù)應(yīng)該是由用戶驅(qū)動(dòng)的,后臺應(yīng)該要有一個(gè)工作流的機(jī)制來對需求進(jìn)行響應(yīng)。
- 第三個(gè),彈性,可以按需動(dòng)態(tài)擴(kuò)縮容。
- 第四個(gè),安全,這是毋庸置疑的。
- 第五個(gè),高可用,宕機(jī)自動(dòng)切換。
- 第六個(gè),可量化,服務(wù)的使用量可以被衡量、報(bào)告并且是可控的。
此圖為數(shù)據(jù)庫即服務(wù)應(yīng)具備的功能大圖。主要包括生命周期管理、容災(zāi)體系、監(jiān)控報(bào)警、數(shù)據(jù)管理和增值服務(wù):
- 生命周期管理包括數(shù)據(jù)庫實(shí)例的新建、釋放、擴(kuò)縮容等,這是數(shù)據(jù)庫即服務(wù)最基礎(chǔ)的功能。
- 容災(zāi)體系包括高可用、備份恢復(fù),甚至更高級的如異地容災(zāi)/多活等等。
- 監(jiān)控報(bào)警一方面就是服務(wù)使用量的監(jiān)控,另一方面則是報(bào)警,包括服務(wù)不可用的報(bào)警,以及一些監(jiān)控?cái)?shù)據(jù)異常的報(bào)警。
- 數(shù)據(jù)管理指的就是可以方便的對數(shù)據(jù)進(jìn)行管理,如可以提供一些圖形化界面等。
- 增值服務(wù)包括審計(jì)、診斷服務(wù)等。其中審計(jì)是數(shù)據(jù)庫的一個(gè)非常重要的功能,一方面可以幫助查證問題,另一方面可以為一些數(shù)據(jù)分析或診斷提供數(shù)據(jù)源。診斷服務(wù)一方面跟蹤服務(wù)的資源使用量,為是否需要擴(kuò)縮容提供決策依據(jù),另一方面主要為慢查詢提供優(yōu)化建議。
數(shù)據(jù)庫即服務(wù)的核心架構(gòu)就是工作流引擎,這是實(shí)現(xiàn)自動(dòng)化及按需服務(wù)的基礎(chǔ)。
1、生命周期管理
生命周期管理功能包括數(shù)據(jù)庫實(shí)例的新建、釋放、擴(kuò)縮容以及遷移。新建一個(gè)數(shù)據(jù)庫實(shí)例包括分配資源(主要是主機(jī)資源)、安裝數(shù)據(jù)庫、初始化配置。對MongoDB來說,副本集涉及多個(gè)節(jié)點(diǎn),涉及到資源的分配策略,Sharding更多。另外副本集還需要一些初始化工作,sharding需要有一個(gè)各組件的組合。釋放實(shí)例比較簡單,主要是資源的回收。擴(kuò)縮容可以分為本地和跨機(jī)的擴(kuò)縮容,其實(shí)跨機(jī)的擴(kuò)縮容就是遷移。對于MongoDB來說,遷移可以直接利用MongoDB的添加節(jié)點(diǎn)自動(dòng)同步的特性,還是比較方便的。
生命周期管理功能主要涉及這幾個(gè)組件,包括資源管理、規(guī)格及配置管理、軟件棧管理和負(fù)載均衡:
資源管理主要是指主機(jī)資源的管理,這里主機(jī)可以是物理機(jī),也可以是虛擬機(jī),如云主機(jī)等。資源管理主要負(fù)責(zé)資源的分配和回收,此外還包括如何實(shí)施資源隔離。
規(guī)格及配置管理一個(gè)是需要為數(shù)據(jù)庫實(shí)例制定一些規(guī)格,以方便擴(kuò)容和縮容,另一方面是負(fù)責(zé)數(shù)據(jù)庫相關(guān)配置的維護(hù)。
軟件棧管理則包括數(shù)據(jù)庫軟件以及其依賴的軟件的安裝維護(hù)等,包括操作系統(tǒng)。
除了這些,還需要一個(gè)負(fù)載均衡組件來保證數(shù)據(jù)庫實(shí)例在資源上的分布的均衡,當(dāng)有主機(jī)資源需要下線的時(shí)候,能夠做到自動(dòng)對其上的數(shù)據(jù)庫實(shí)例進(jìn)行遷移。
對于MongoDB來說,在實(shí)施資源分配策略時(shí)需要注意的一點(diǎn)是需要保證不要破壞副本集原本的高可用特性。雖然MongoDB副本集自帶了高可用,但是如果你把副本集的所有節(jié)點(diǎn)都分布在一臺物理機(jī)上,那如果這個(gè)物理機(jī)掛了,整個(gè)副本集都沒用了。所以一個(gè)起碼的原則是要保證MongoDB多副本的主機(jī)安全性,盡可能夠做到機(jī)架安全。
現(xiàn)在我們的MongoDB數(shù)據(jù)庫即服務(wù)的架構(gòu)可以稍微擴(kuò)充一下了,多了資源服務(wù)、規(guī)格及配置服務(wù)、軟件棧服務(wù)以及負(fù)載均衡服務(wù)這幾個(gè)組件。
2、容災(zāi)體系
接下來看一下容災(zāi)體系,這包括高可用、備份/恢復(fù)、異地容災(zāi)/多活。高可用需要有一個(gè)負(fù)責(zé)健康檢查的巡檢服務(wù),另外還需要有一個(gè)容災(zāi)切換的組件。備份/恢復(fù)也是容災(zāi)體系非常重要的一環(huán),這里有一個(gè)很容易被忽視的事情是需要做備份的有效性驗(yàn)證。如果備份不是有效的,那等于沒有備份。異地容災(zāi)/多活是比較高級的容災(zāi)能力,實(shí)施起來比較復(fù)雜,有興趣的同學(xué)可以參考我之前做過的一個(gè)分享《MongoDB異地容災(zāi)多活實(shí)踐》。
(鏈接:https://yq.aliyun.com/articles/96598)
MongoDB副本集自帶了高可用,我們還需要做什么工作呢?主要是需要保證容災(zāi)切換的一個(gè)可控。以一個(gè)經(jīng)典的3節(jié)點(diǎn)P/S/H副本集為例,一方面我們可以通過配置選舉優(yōu)先級的方式來保持Primary和Secondary的角色穩(wěn)定性。另一方面,我們希望在任意時(shí)刻,用戶都可以有兩個(gè)節(jié)點(diǎn)是可訪問的,因此我們需要對節(jié)點(diǎn)宕機(jī)后的副本集做一些reconfig操作,保證宕機(jī)節(jié)點(diǎn)最終都會(huì)變成Hidden,然后統(tǒng)一對Hidden進(jìn)行處理,比如重搭等。
容災(zāi)體系第二個(gè)比較重要的點(diǎn)就是備份恢復(fù)。備份主要需要做的是需要提供自動(dòng)/手動(dòng)的備份方式以及支持一些靈活的備份策略制定,如備份周期/備份保留時(shí)間等?;謴?fù)主要是看對恢復(fù)的形態(tài)做成什么樣,是覆蓋原來的實(shí)例還是克隆出一個(gè)新的實(shí)例來,還有就是恢復(fù)的粒度,這取決于備份能力,是只能恢復(fù)到某個(gè)全量備份,還是可以恢復(fù)到任意時(shí)間點(diǎn)。關(guān)于備份存儲(chǔ),我們要求的最要 能力是高可靠性。另外就是剛剛提過的備份有效性驗(yàn)證,不能等到火燒眉毛了才發(fā)現(xiàn)備份不可用,需要防范于未然。
關(guān)于MongoDB的備份方法,相關(guān)的文檔和分享已經(jīng)有很多了,這里再簡單提一下。全量備份從實(shí)施方式上可以分為兩種,邏輯備份和物理備份。其中邏輯備份主要使用官方提供的mongodump/mongorestore工具。物理備份則可以在文件系統(tǒng)或是更底層的邏輯卷、塊設(shè)備這層去做。
從各個(gè)指標(biāo)上對比邏輯備份和物理備份,在備份和恢復(fù)效率上,物理備份的優(yōu)勢比較明顯,不過邏輯備份在兼容性上會(huì)比較好。
MongoDB的增量備份主要通過持續(xù)的抓取oplog來實(shí)現(xiàn)。有了全量備份加增量備份,就可以實(shí)現(xiàn)恢復(fù)到任意時(shí)間點(diǎn)。
至此,我們的MongoDB數(shù)據(jù)庫即服務(wù)的架構(gòu)又可以得到一個(gè)比較大的擴(kuò)充,主要增加了高可用以及備份相關(guān)的一些服務(wù)。
3、監(jiān)控報(bào)警
接下來看下數(shù)據(jù)庫的監(jiān)控報(bào)警,性能監(jiān)控主要涉及性能數(shù)據(jù)的采集、存儲(chǔ)和展示。采集粒度越細(xì)越好,最好能做到秒級。報(bào)警則可以分為可用性的報(bào)警和性能數(shù)據(jù)的報(bào)警。
具備監(jiān)控報(bào)警能力后的架構(gòu)圖已經(jīng)有點(diǎn)滿了,這里報(bào)警服務(wù)可以通過巡檢服務(wù)和性能數(shù)據(jù)存儲(chǔ)收集相關(guān)數(shù)據(jù)。
4、增值服務(wù)
來看最后一個(gè)增值服務(wù),一個(gè)是審計(jì),主要涉及審計(jì)日志的采集、存儲(chǔ)和分析。另一個(gè)是診斷服務(wù),一個(gè)是資源使用量上的診斷,另外一個(gè)是慢查詢的診斷,可以做一些索引推薦等。
這就是我們的MongoDB數(shù)據(jù)庫即服務(wù)的完整架構(gòu),可以看到組件還是比較多的,做一個(gè)數(shù)據(jù)庫即服務(wù)還不是那么容易的。
總結(jié)
最后做一下總結(jié),我認(rèn)為數(shù)據(jù)庫即服務(wù)的核心特性有兩點(diǎn),一個(gè)是資源池化,另外一個(gè)是服務(wù)可量化。
資源池化后才可以進(jìn)行資源的自動(dòng)管理,而我們需要的服務(wù)是要能夠被量化的,并且是可控的。現(xiàn)在回顧一下之前的一鍵安裝數(shù)據(jù)庫,其實(shí)背后有許多工作要做。當(dāng)然,如果覺得自己搭建一個(gè)數(shù)據(jù)庫即服務(wù)太麻煩,可以考慮使用現(xiàn)成的云服務(wù),比如阿里云MongoDB數(shù)據(jù)庫服務(wù):)
分享文章:從零開始搭建MongoDB數(shù)據(jù)庫即服務(wù)
文章位置:http://fisionsoft.com.cn/article/codhjjj.html


咨詢
建站咨詢
