了解最新公司動態(tài)及行業(yè)資訊
2006 年,CEO Eric Sc??hmidt 首次提出云計算(Cloud)的概念。 2011年,哥倫比亞大學(xué)教授提出霧計算(Fog),后來被思科理論化。云計算是集中式計算,埃森哲()給出的云計算定義:第三方提供商通過網(wǎng)絡(luò)動態(tài)提供和配置IT功能(硬件、軟件或服務(wù))。
霧計算是云計算概念的延伸。它是局域網(wǎng)中的一種分布式計算方法。符合互聯(lián)網(wǎng)“去中心化”的特點。獨特的應(yīng)用特性使得這種計算范式支持更多的邊緣節(jié)點。
2011年,邊緣計算(Edge)的概念同時出現(xiàn)。社區(qū)給出的定義是:邊緣計算是在網(wǎng)絡(luò)邊緣為應(yīng)用開發(fā)者和服務(wù)提供商提供云服務(wù)和IT環(huán)境。旨在提供接近數(shù)據(jù)輸入或用戶的計算、存儲和網(wǎng)絡(luò)帶寬的服務(wù)。
霧計算與邊緣計算的區(qū)別在于霧計算具有層次化、網(wǎng)絡(luò)化的架構(gòu),而邊緣計算依賴于不構(gòu)成網(wǎng)絡(luò)的單個節(jié)點。霧計算中的不同節(jié)點具有廣泛的點對點互連能力,而邊緣計算是一個運行在孤島中的節(jié)點,這些節(jié)點被容納在云或霧網(wǎng)絡(luò)中以實現(xiàn)流量傳輸。
云計算、霧計算和邊緣計算是三種不同但相關(guān)的計算范式,每一種可能對數(shù)據(jù)庫系統(tǒng)有不同的要求。如今,云計算中的云數(shù)據(jù)庫的特性基本得到驗證,但也在不斷發(fā)展。霧計算中霧數(shù)據(jù)庫的特點尚未被提出,邊緣計算中的數(shù)據(jù)庫是否可以從傳統(tǒng)的單機數(shù)據(jù)庫系統(tǒng)中稍微演進一些也沒有被提及或討論。
但是,三種不同的計算方式必須適用于不同類型的應(yīng)用,對數(shù)據(jù)存儲、管理、計算和交換的要求也必須不同。深入研究不同應(yīng)用的需求和特點,提供不同類型的數(shù)據(jù)庫。未來數(shù)據(jù)庫的種類或形式一定會更加豐富多彩。
01 云原生
Cloud的概念早在云原生的概念之前就出現(xiàn)了,其內(nèi)容可以概括為一種方法論,稱為12- (12-App)。根據(jù)這12個要素,人們對數(shù)據(jù)庫提出了如下一些具體的要求,使數(shù)據(jù)庫的結(jié)構(gòu)和功能發(fā)生了變化。
Matt Stine 在 2017 年的一次技術(shù)會議上的分享中提出了“云與微服務(wù):一種共生關(guān)系”的概念,云原生(Cloud)的概念正式誕生。他將云原生分為六個特征:模塊化、可觀察、可部署、可測試、可替換和可處理。
Matt Stine 認(rèn)為:服務(wù)的基本原則是有明確的重點(應(yīng)用功能細分的要求)、明確的契約(應(yīng)明確定義應(yīng)用與后臺服務(wù)之間的接口)、明確的 API(應(yīng)用程序與后臺服務(wù)之間的接口在形式上應(yīng)清晰易用)。
云原生一般被認(rèn)為是思想的集合,包括很多東西:、持續(xù)交付()、微服務(wù)()、敏捷基礎(chǔ)設(shè)施(Agile)、康威定律(Law)等,并根據(jù)公司重組其商業(yè)能力。
這使得云原生的概念全面而復(fù)雜,它是一系列技術(shù)、企業(yè)管理方法的集合,既包括技術(shù)(微服務(wù),敏捷基礎(chǔ)設(shè)施),又包括管理(從,管理技術(shù)在持續(xù)的層面上)交付、康威定律和重組)。
云計算改變了傳統(tǒng)的應(yīng)用模式,其自身特點如下。
1.縮放
IT 設(shè)施正在從分散式轉(zhuǎn)向集中式和大規(guī)模。大規(guī)模數(shù)據(jù)中心作為基礎(chǔ)設(shè)施大量建立,為全社會提供集中服務(wù)。
2.資源池
IT設(shè)施規(guī)模化后,硬件資源需要根據(jù)彈性業(yè)務(wù)的需求進行統(tǒng)一管理。業(yè)務(wù)規(guī)模要具備動態(tài)、瞬時的伸縮能力,所以要集中硬件資源,提供彈性服務(wù)。
云計算有望通過互聯(lián)網(wǎng)為用戶提供按需的IT資源服務(wù)。因此,云服務(wù)提供商必須確保在提供的硬件資源上擁有足夠容量的資源池,以確保在并發(fā)業(yè)務(wù)高峰時段滿足用戶的服務(wù)需求。這就是云服務(wù)的資源池化。
作為一種服務(wù),云數(shù)據(jù)庫類似于云計算,它可以管理和使用的資源也需要資源池化。這樣,用戶在使用云數(shù)據(jù)庫服務(wù)時,不需要了解云數(shù)據(jù)庫中的實際架構(gòu)和技術(shù)實現(xiàn),用戶感知到的就是自己使用的獨立完整的數(shù)據(jù)管理服務(wù)和相應(yīng)的計算資源。
對于用戶來說,資源管理作為多租戶特性體現(xiàn)在云數(shù)據(jù)庫中服務(wù)器運維技術(shù),根據(jù)租戶租用的資源提供服務(wù)。將數(shù)據(jù)庫內(nèi)部資源池化后,可以為用戶應(yīng)用提供彈性伸縮服務(wù)。
3.面向服務(wù)
云計算改變了 IT 行業(yè)過去可以提供的服務(wù)。
4.多元化
數(shù)據(jù)形式和應(yīng)用場景由簡單化向多樣化轉(zhuǎn)變。服務(wù)、微服務(wù)等已經(jīng)成型,()作為一種FaaS(-as-a-)也開始為世界的多樣性和興奮做出貢獻。
02 云數(shù)據(jù)庫
為了滿足云應(yīng)用的研發(fā)需求,在云上提供服務(wù)的數(shù)據(jù)庫系統(tǒng)也相應(yīng)發(fā)生了一些變化。云原生數(shù)據(jù)庫是指通過云平臺構(gòu)建、部署、交付和自動運維的數(shù)據(jù)庫服務(wù)。
該服務(wù)通常采用DBaaS(-as-a-)的形式,隱藏了數(shù)據(jù)庫架構(gòu)和實現(xiàn)細節(jié),以多租戶和高效資源分發(fā)的形式自動管理云資源,為用戶提供A滿足彈性伸縮、高可用、高可靠、高安全、強一致性要求,隨時隨地可訪問的數(shù)據(jù)庫服務(wù)。
該服務(wù)具有自動化運維能力(需要很少的人力),可以提供自動備份恢復(fù)、自動性能調(diào)優(yōu)、大型數(shù)據(jù)庫集群的自動資源調(diào)整等。工作(具有智能數(shù)據(jù)庫的特點)。該能力降低了云數(shù)據(jù)庫系統(tǒng)托管和維護的成本,并大規(guī)模提高了資源利用率。
總的來說,云數(shù)據(jù)庫的特點可以概括為解放用戶和適應(yīng)業(yè)務(wù)。具體可以轉(zhuǎn)化為以下6項,其中前3項屬于解放用戶類,后3項屬于適應(yīng)業(yè)務(wù)類。
1.智能運維(智能數(shù)據(jù)庫)
故障可以自愈,包括停機自動遷移、故障隔離、異常流量自動調(diào)度、負(fù)載均衡、自動限制流降級等。數(shù)據(jù)庫可以自動調(diào)優(yōu),自動調(diào)整資源使用,有自適應(yīng)算法,以應(yīng)對應(yīng)用程序的負(fù)載等。這些能力可以概括為自調(diào)優(yōu)、自適應(yīng)、自動駕駛(業(yè)界將自動駕駛的標(biāo)準(zhǔn)分為6個級別,數(shù)據(jù)庫社區(qū)借用這個級別來定義數(shù)據(jù)庫自動駕駛的概念)。
2.易于管理
智能運維的性能易于管理。云數(shù)據(jù)庫具備異常自動分析診斷能力,可實現(xiàn)白屏、智能化、規(guī)?;?、少人化運維操作。
3.極致體驗
用戶可以以最簡單的方式完成數(shù)據(jù)庫的申請、創(chuàng)建、監(jiān)控、報警、故障定位,給用戶帶來極其便捷的體驗。
4.彈性伸縮
可根據(jù)業(yè)務(wù)應(yīng)用負(fù)載自動伸縮,具備秒級擴縮容能力,靈活動態(tài)分配或釋放資源,結(jié)合靈活計費策略,可大幅降低用戶使用成本。本文部分內(nèi)容與智能運維有重疊,但描述問題的角度不同。本文從系統(tǒng)可擴展性的角度描述了云數(shù)據(jù)庫的重要特性。
將業(yè)務(wù)或系統(tǒng)遷移到云端就是購買應(yīng)對未來的可能性。對于商家在業(yè)務(wù)發(fā)展過程中,隨著數(shù)據(jù)的積累,存儲可以隨時在云端擴展,計算節(jié)點也可以自由擴展。這是商家從小到大的最佳資源利用。方法是最便宜的方法。
支持這種業(yè)務(wù)發(fā)展的技術(shù)是彈性伸縮。在彈性伸縮中,需要考慮事務(wù)執(zhí)行的順序。對于數(shù)據(jù)庫架構(gòu)來說,這個順序就是存儲和計算的分離。
5.按需計費
支持設(shè)置多個按量計費(如流量、存儲、調(diào)用次數(shù)、調(diào)用時長、內(nèi)核數(shù)、內(nèi)存資源使用量等)。這種定價策略可以讓用戶根據(jù)業(yè)務(wù)情況靈活匹配最優(yōu)的計量模式,節(jié)省用戶成本。
6.安全和資源隔離
云數(shù)據(jù)庫采用共享池化技術(shù),提高計算、存儲、網(wǎng)絡(luò)等資源的利用率,隔離用戶并發(fā)爭用資源。此外,提供多租戶方式,實現(xiàn)安全隔離,避免信息泄露或攻擊。
以上內(nèi)容為云數(shù)據(jù)庫的設(shè)計指明了方向。
03 數(shù)據(jù)庫
它是一種無服務(wù)器架構(gòu),它不是一個特定的編程框架或工具,而是一個軟件系統(tǒng)架構(gòu)思想和方法的核心思想是讓用戶不需要關(guān)注支持的底層主機應(yīng)用服務(wù)的運營。用戶可根據(jù)應(yīng)用需要,按需使用底層服務(wù)器(硬件和軟件系統(tǒng)),按使用量付費。此類應(yīng)用所需的計算資源由底層云計算平臺動態(tài)提供。
云原生數(shù)據(jù)庫作為后臺服務(wù),提供了一種數(shù)據(jù)庫服務(wù)/訪問方式來連接用戶,這個方式就是方法。但是,它不僅是一種連接數(shù)據(jù)庫的服務(wù)方式,也是一種連接其他類型服務(wù)的方式。是云數(shù)據(jù)庫的服務(wù)能力。云數(shù)據(jù)庫將數(shù)據(jù)存儲、管理和計算能力轉(zhuǎn)化為服務(wù),為用戶提供服務(wù)。
一個有能力的數(shù)據(jù)庫系統(tǒng)需要在存儲層面解決無限的數(shù)據(jù)存儲能力;在計算層面,需要提供彈性計算能力;在內(nèi)部系統(tǒng)架構(gòu)上,需要提供監(jiān)控和調(diào)度能力。資源分配可以動態(tài)進行;對于數(shù)據(jù)庫的每個組件服務(wù)器運維技術(shù),都必須具備被池化的能力,即具備自動管理資源的能力;對于用戶訪問層,必須能夠響應(yīng)用戶訪問事件請求,根據(jù)訪問量,利用前述的存儲、計算、管理基礎(chǔ)彈性伸縮,應(yīng)對應(yīng)用層的峰谷,并按體積收費。
如果云數(shù)據(jù)庫具有無服務(wù)器架構(gòu)的能力并支持依賴于數(shù)據(jù)庫類的應(yīng)用程序,則可以調(diào)用它。在構(gòu)建能力時,云數(shù)據(jù)庫應(yīng)具備以下特點。
圖 6-1 展示了 AWS 的功能。
▲圖6-1 數(shù)據(jù)庫有能力
在應(yīng)用層,可以以函數(shù)或事件的形式進行連接。進入服務(wù)平臺。比如AWS API接口會觸發(fā)AWS函數(shù)或者函數(shù),這些函數(shù)會從數(shù)據(jù)庫表中獲取數(shù)據(jù)流,返回應(yīng)用時數(shù)據(jù)的格式是固定的。不同的云計算廠商有不同的設(shè)計方案,但使用的思路是相似的。
作者簡介:李海翔(網(wǎng)名:),騰訊金融云數(shù)據(jù)庫首席研究員,騰訊T14級專家,騰訊TDSQL分布式數(shù)據(jù)庫首席架構(gòu)師。中國人民大學(xué)、北京林業(yè)大學(xué)特聘碩士生導(dǎo)師,CCF數(shù)據(jù)庫專委會委員,DTCC(中國數(shù)據(jù)庫技術(shù)大會)專家委員會委員,北京市科技進步一等獎獲得者。申請并獲得專利70余項,在VLDB等數(shù)據(jù)庫會議上發(fā)表論文數(shù)篇,參與多項國家863重大項目、核高技術(shù)、工信部、科技部和其他項目。
本文摘自《分布式數(shù)據(jù)庫的原理、架構(gòu)與實踐》,經(jīng)出版社授權(quán)發(fā)表。
《分布式數(shù)據(jù)庫原理、架構(gòu)與實踐》
推薦:騰訊T14級專家,騰訊金融云數(shù)據(jù)庫首席研究員,騰訊TDSQL首席架構(gòu)師撰寫,從原理、架構(gòu)、案例三個維度深度解析分布式數(shù)據(jù)庫。