新聞中心
終于有人把云計算與數(shù)據(jù)庫的關系講明白了
作者: 李海翔 2021-11-07 21:01:52
云計算 2006年Google的CEO埃里克·施密特首次提出了云計算(Cloud Computing)的概念。2011年,哥倫比亞大學的Prof.Stolfo教授提出霧計算(Fog Computing),后被思科公司理論化。云計算是集中式計算,埃森哲(Accenture)公司給出了的云計算定義:第三方提供商通過網(wǎng)絡動態(tài)提供及配置IT功能(硬件、軟件或服務)。

目前創(chuàng)新互聯(lián)已為上1000家的企業(yè)提供了網(wǎng)站建設、域名、虛擬主機、網(wǎng)站托管、服務器托管、企業(yè)網(wǎng)站設計、雞澤網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
2006年Google的CEO埃里克·施密特首次提出了云計算(Cloud Computing)的概念。2011年,哥倫比亞大學的Prof.Stolfo教授提出霧計算(Fog Computing),后被思科公司理論化。云計算是集中式計算,埃森哲(Accenture)公司給出了的云計算定義:第三方提供商通過網(wǎng)絡動態(tài)提供及配置IT功能(硬件、軟件或服務)。
而霧計算是云計算概念的延伸,是局域網(wǎng)的分布式計算方式,符合互聯(lián)網(wǎng)的“去中心化”特征,其低延時、位置感知、廣泛的地理分布、適應移動性的應用特征,使得該計算范式可支持更多的邊緣節(jié)點。
2011年,同時出現(xiàn)了邊緣計算(Edge Computing)的概念,OpenStack社區(qū)給出的定義為:邊緣計算是為應用開發(fā)者和服務提供商在網(wǎng)絡的邊緣側提供云服務和IT環(huán)境服務,目標是在靠近數(shù)據(jù)輸入或用戶的地方提供計算、存儲和網(wǎng)絡帶寬。
霧計算和邊緣計算的區(qū)別在于,霧計算具有層次性、網(wǎng)式架構;而邊緣計算依賴于不構成網(wǎng)絡的單獨節(jié)點。霧計算中的不同節(jié)點之間具有廣泛的對等互連能力,而邊緣計算是孤島中運行的節(jié)點,這樣的節(jié)點被容納入云或霧的網(wǎng)絡中可實現(xiàn)流量傳輸。
云計算、霧計算、邊緣計算,是三種不同但又相關的計算范式,每種范式對于數(shù)據(jù)庫系統(tǒng)而言,都有提出不同需求的可能。如今,云計算中的云數(shù)據(jù)庫的特征基本探明,但也在發(fā)展中。而霧計算中的霧數(shù)據(jù)庫的特征尚未有提出,邊緣計算中的數(shù)據(jù)庫是否是可從傳統(tǒng)的單機數(shù)據(jù)庫系統(tǒng)稍加演化得到,也尚未有提及或討論。
但是,三種不同的計算方式,必然適用于不同類型的應用,對于數(shù)據(jù)的存儲、管理、計算、交換的需求,也必有差異,深入研究不同應用的需求和特點,可得到不同類型的數(shù)據(jù)庫。未來數(shù)據(jù)庫的類型或形態(tài)必然會更加豐富多彩。
一、云原生
早在云原生概念出現(xiàn)之前,就出現(xiàn)了Cloud Foundry的概念,其內(nèi)容可以被概括為一種方法論,稱為12要素應用程序(12-Factor App)。根據(jù)這12個要素,人們對數(shù)據(jù)庫提出了如下一些具體的要求,使得數(shù)據(jù)庫的架構和功能發(fā)生了變化。
- 12要素應用的任意部署,都應該可以在不進行任何代碼改動的情況下完成,將本地MySQL數(shù)據(jù)庫換成第三方服務(例如 Amazon RDS)。與此類似,本地SMTP服務應該也可以和第三方SMTP服務(例如Postmark)互換。這使得云應用研發(fā)不深度依賴于數(shù)據(jù)庫系統(tǒng),使得云數(shù)據(jù)庫之間的功能差異化競爭被消滅。
- 12要素反對與會話具有高黏性。會話中的數(shù)據(jù)應該保存在諸如Memcached或Redis等帶有過期時間的緩存中。這就要求云數(shù)據(jù)庫服務要么有多種產(chǎn)品支持不同能力,要么在一個產(chǎn)品內(nèi)提供帶有過期時間的緩存。
- 12要素應用本身從不考慮存儲自己的輸出流,即不提倡提供日志功能(不寫或者管理日志文件),而是把信息直接輸出到標準輸出(stdout)事件流。在開發(fā)環(huán)境中,開發(fā)人員可以通過這些數(shù)據(jù)流,在終端實時看到應用的活動。在應用端不能提供日志以供確認問題,這對服務端的數(shù)據(jù)庫提出了更高的要求:第一數(shù)據(jù)絕對保持強一致而不存儲,第二數(shù)據(jù)庫自身有分析等位問題的能力。但是,不是所有類型的應用都適合進行這方面的設計和實現(xiàn),大型復雜類應用和網(wǎng)站類應用的定位問題多依賴于日志。
Matt Stine于2017年在一次技術大會的分享中提出“Cloud Foundry與微服務:一種共生關系”的概念,云原生(Cloud Native)的概念正式誕生。他將云原生歸納模塊化、可觀察、可部署、可測試、可替換、可處理6個特質。
Matt Stine認為:服務的基本原則是有一個清晰的專注點(對應用功能細分的要求)、一個清晰的契約(應用與后臺服務之間的接口定義要清晰)、一個清晰的API(應用與后臺服務之間的接口在形式上要明確好用)。
云原生通常被認為是一個思想的集合,包括了諸多內(nèi)容:DevOps、持續(xù)交付(Continuous Delivery)、微服務(MicroServices)、敏捷基礎設施(Agile Infrastructure)、康威定律(Conways Law)等,以及根據(jù)商業(yè)能力對公司進行重組。
這使得云原生的概念全面且復雜,其成為一系列技術、企業(yè)管理方法的集合,其中既包含了技術(微服務、敏捷基礎設施),也包含了管理(從DevOps、持續(xù)交付、康威定律、重組等層面對技術進行管理)。
云計算使得傳統(tǒng)的應用方式發(fā)生了變化,其自身具有的特點如下。
1. 規(guī)模化
IT設施從零散化走向集中化、規(guī)模化。大型數(shù)據(jù)中心被大量建立,作為基礎設施向全社會提供集中式服務。
2. 資源池化
IT設施規(guī)?;院螅趶椥苑盏囊?,需要對硬件資源統(tǒng)一管理。業(yè)務規(guī)模應可動態(tài)瞬時擴縮容,因此要池化硬件資源以提供彈性服務。
云計算,是期望通過互聯(lián)網(wǎng)絡為用戶提供按需使用的IT資源服務。因此,云服務商要保證在所提供的硬件資源上擁有容量充足的資源池,以保證在并發(fā)業(yè)務高峰時刻可以滿足用戶的服務要求,這就是云服務的資源池化。
云數(shù)據(jù)庫作為一種服務,同云計算相似,其所能管理使用的資源同樣需要資源池化。這樣用戶在使用云數(shù)據(jù)庫的服務時就無須了解云數(shù)據(jù)庫中的實際架構和技術實現(xiàn)了,用戶所感知的是其使用的獨立完整的數(shù)據(jù)管理服務和相應的計算資源。
對于用戶而言,資源管理在云數(shù)據(jù)庫內(nèi)部體現(xiàn)為實現(xiàn)多租戶特性,根據(jù)租戶所租用的資源來提供服務。數(shù)據(jù)庫內(nèi)部資源池化后,可為用戶的應用提供彈性伸縮服務。
3. 服務化
云計算使得過去IT業(yè)所能提供的內(nèi)容發(fā)生了變化。
- 交付方式從軟件交付走向服務交付。用戶看似在使用一個軟件其實不再是一個軟件,一系列軟件組合成一個服務后提供給用戶,對用戶而言一項項具體的服務是可直接感受到的。
- 開發(fā)方式從底層(IaaS+PaaS)走向上層(SaaS)。云計算不僅提供CPU和機架,更多的是提供用戶可感受的軟件服務(SaaS),或者軟件都感受不到,直接感受到的就是服務(Serverless)。
4. 多樣化
數(shù)據(jù)形式及應用場景從單一化走向多樣化。服務、微服務等已經(jīng)各自成型,無服務(Serverless)也作為一種FaaS(Function-as-a-Service)開始為世界的多樣性和精彩性貢獻力量。
二、云數(shù)據(jù)庫
為了應對云應用的研發(fā)需求,云上提供服務的數(shù)據(jù)庫系統(tǒng)也相應發(fā)生了一些變化。云原生數(shù)據(jù)庫是指通過云平臺進行構建、部署、交付和自動運維的數(shù)據(jù)庫服務。
該服務通常以DBaaS (Database-as-a-Service)的形態(tài),將數(shù)據(jù)庫架構和實現(xiàn)細節(jié)隱藏起來,采用多租戶和資源有效分發(fā)的形式將云資源自動管理起來,為用戶提供一個能夠滿足彈性伸縮、高可用、高可靠、高安全性、強一致等需求,且可以隨時隨地訪問的數(shù)據(jù)庫服務。
該服務具備自動化運維能力(僅需要極少的人力),可提供自動備份和恢復、自動性能調(diào)優(yōu)、自動對規(guī)?;臄?shù)據(jù)庫集群的資源進行調(diào)節(jié)等可超越傳統(tǒng)DBA所做工作的能力(具備智能數(shù)據(jù)庫的特征)。這種能力使得云數(shù)據(jù)庫系統(tǒng)托管和維護的成本降低,規(guī)?;靥岣哔Y源的利用率。
總體來說,云數(shù)據(jù)庫的特征可以概括為解放用戶和適應業(yè)務兩類。具體可以轉化為如下6條內(nèi)容,其中前3條屬于解放用戶的范疇,后3條屬于適應業(yè)務的范疇。
1. 智能運維(智能數(shù)據(jù)庫)
故障可自愈,包括宕機自動遷移、故障隔離、異常流量自動調(diào)度、負載均衡、自動限流降級等。數(shù)據(jù)庫可自動調(diào)優(yōu),自動調(diào)節(jié)資源的使用,擁有自適應算法以應對應用的負載等。這樣的能力可以概括為自調(diào)優(yōu)、自適應、自動駕駛(工業(yè)界將自動駕駛的標準分為6個級別,數(shù)據(jù)庫界借用了此級別來定義數(shù)據(jù)庫自動駕駛的概念)。
2. 易于管理
智能運維的表現(xiàn)就是易于管理。云數(shù)據(jù)庫具備自動化異常分析診斷能力,可在運維操作中實現(xiàn)白屏化、智能化、規(guī)模化、少人化。
3. 極致體驗
用戶對于數(shù)據(jù)庫的申請、創(chuàng)建、監(jiān)控、報警、故障定位都可以最簡單的方式完成,給用戶以極致便捷的體驗。
4. 彈性伸縮
能夠根據(jù)業(yè)務的應用負載自動伸縮,具備秒級擴縮容能力,可靈活動態(tài)分配或釋放資源,結合彈性計費策略,可以大幅度降低用戶的使用成本。這一條中部分內(nèi)容和智能運維重合,但描述問題的角度不同,本條是從系統(tǒng)可擴展性的角度,對云數(shù)據(jù)庫的重要特征進行描述。
業(yè)務或系統(tǒng)上云,是購買了一種應對未來的可能。對于正處于業(yè)務發(fā)展中的商戶而言,隨著數(shù)據(jù)的積累在云端可隨時擴展存儲,也可自由擴展計算節(jié)點,這樣對于一個從小向大發(fā)展的商戶而言,是一種最佳的資源利用方式,也是一種成本最低的方式。
而支持這種業(yè)務發(fā)展的技術,就是彈性伸縮。在彈性伸縮中需要考慮事務執(zhí)行的先后次序,這個次序對于數(shù)據(jù)庫架構而言,就是存算分離。
5. 按需計費
支持按量(如流量、存儲量、調(diào)用次數(shù)、調(diào)用時長、核數(shù)、內(nèi)存資源占用量等)制定多種定價策略,使用戶可根據(jù)業(yè)務情況靈活匹配出最優(yōu)計量模式,節(jié)約用戶成本。
6. 安全、資源隔離
云數(shù)據(jù)庫采用共享池化技術來提高計算、存儲、網(wǎng)絡等資源的利用率,隔離用戶對資源的并發(fā)爭用;另外提供多租戶方式以做到安全隔離,避免信息泄露或遭受攻擊等。
上述內(nèi)容為云數(shù)據(jù)庫的設計指出了方向。
三、Serverless數(shù)據(jù)庫
Serverless是一種無服務器架構,其不是一個具體的編程框架、工具,而是一種軟件系統(tǒng)架構思想和方法,其核心思想是讓用戶無須關注支撐應用服務運行的底層主機,用戶可根據(jù)應用需要,按需使用底層服務器(硬件以及軟件系統(tǒng)),并根據(jù)使用量付費。Serverless類應用所需要的計算資源由底層的云計算平臺動態(tài)提供。
云原生數(shù)據(jù)庫作為后臺服務,其提供一種數(shù)據(jù)庫服務/訪問方式連接用戶,該方式即是Serverless方式。但是,Serverless不只是連接數(shù)據(jù)庫的一種服務方式,還是連通其他各類服務的一種方式。Serverless與云數(shù)據(jù)庫都是一種服務能力。云數(shù)據(jù)庫把數(shù)據(jù)存儲、管理、計算能力轉化為服務提供給用戶。
具備了Serverless能力的數(shù)據(jù)庫系統(tǒng),在存儲層面要解決無限量的數(shù)據(jù)存儲能力;在計算層面,要提供彈性計算的能力;在系統(tǒng)內(nèi)部的架構方面,要提供監(jiān)控調(diào)度能力,使資源分配可動態(tài)進行;對于數(shù)據(jù)庫的各個組件,要有可被池化的能力,即具備自動資源管理的能力;對于用戶接入層面,要能響應用戶接入的事件請求,根據(jù)訪問量,利用前述的存儲、計算、管理的基礎進行彈性擴縮容以應對應用層的波峰或波谷,按量計費。
如果云數(shù)據(jù)庫具備了無服務器架構的能力并可支持依賴于數(shù)據(jù)庫Serverless類的應用,則該數(shù)據(jù)庫就可稱為ServerlessDB。而云數(shù)據(jù)庫在構建Serverless能力時,應具備如下特性。
- 單一職責:該云數(shù)據(jù)庫的業(yè)務是獨立的,負責的團隊是自主的。云數(shù)據(jù)庫負責單一的服務且該服務處于核心領域。該云數(shù)據(jù)庫具有高內(nèi)聚、低耦合、與其他系統(tǒng)和領域有明確邊界的特點。
- 輕量級通信:云數(shù)據(jù)間的通信應該簡單、輕量,且與語言和平臺無關。
- 獨立性:該云數(shù)據(jù)庫應是獨立開發(fā)、獨立測試和獨立部署的。
圖6-1顯示了AWS的Aurora的Serverless能力。
▲圖6-1 Aurora數(shù)據(jù)庫具備有Serverless的能力
在應用層,形式上Aurora可以通過函數(shù)或事件的方式接入服務平臺。如AWS的API接口會觸發(fā)AWS的Lambda函數(shù)或者無服務器函數(shù),這些函數(shù)再從數(shù)據(jù)庫表中獲取數(shù)據(jù)流,返回應用時數(shù)據(jù)的格式是固定的。不同云計算廠家有不同的設計方案, 但使用的思想是類似的。
關于作者:李海翔(網(wǎng)名:那海藍藍),騰訊金融云數(shù)據(jù)庫首席研究員,騰訊T14級專家,騰訊TDSQL分布式數(shù)據(jù)庫首席架構師。中國人民大學、北京林業(yè)大學特聘碩士導師,CCF數(shù)據(jù)庫專委會委員,DTCC(中國數(shù)據(jù)庫技術大會)專家委員會委員,北京市科技進步一等獎得主。申請和獲得授權的專利多達70余項,在VLDB等數(shù)據(jù)庫大會上發(fā)表論文若干篇,參與了多個國家863重大專項、核高基、工信部、科技部等的項目。
本文摘編自《分布式數(shù)據(jù)庫原理、架構與實踐》,經(jīng)出版方授權發(fā)布。
文章題目:終于有人把云計算與數(shù)據(jù)庫的關系講明白了
文章轉載:http://www.5511xx.com/article/cdihcpj.html


咨詢
建站咨詢
