日本电影一区二区_日本va欧美va精品发布_日本黄h兄妹h动漫一区二区三区_日本欧美黄色

為什么說數(shù)據(jù)庫(kù)是Serverless最難攻堅(jiān)的堡壘?

為什么說數(shù)據(jù)庫(kù)是Serverless最難攻堅(jiān)的堡壘?

星星之火、可以燎原

它是站在海岸遙望海中已經(jīng)看得見桅桿尖頭了的一只航船,它是立于高山之巔遠(yuǎn)看東方已見光芒四射噴薄欲出的一輪朝日,它是躁動(dòng)于母腹中的快要成熟了的一個(gè)嬰兒。

——毛澤東

一、關(guān)于Serverless

看到如今Serverless在云計(jì)算行業(yè)噴薄欲出的態(tài)勢(shì),像極了《星星之火,可以燎原》中的描述:雖然不能預(yù)測(cè)未來的發(fā)展和變化,但對(duì)于云計(jì)算來說這是個(gè)相對(duì)確定的方向。

從Google Trends的Serverless關(guān)鍵字的趨勢(shì)可以看到,對(duì)于Serverless的搜索一直居高不下,并且在未來的一段時(shí)間內(nèi)也會(huì)保持相當(dāng)?shù)臒岫取?015年開始,以AWS為代表的國(guó)外云計(jì)算大廠也在不斷地布局Serverless相關(guān)的產(chǎn)品,AWS Lambda、Aliyun FAAS,數(shù)據(jù)庫(kù)領(lǐng)域的Aurora Serverless、RedShift Serverless、Azure SQL Database等。

為什么說數(shù)據(jù)庫(kù)是Serverless最難攻堅(jiān)的堡壘?

學(xué)術(shù)界對(duì)Serverless的研究熱度也不亞于工業(yè)界對(duì)商業(yè)化方案的追求,文末列出了一些相關(guān)文章作為參考。對(duì)于云計(jì)算往Serverless演進(jìn)的趨勢(shì),學(xué)術(shù)界也經(jīng)歷過一些質(zhì)疑,2018年“Serverless Computing: One Step Forward, Two Steps Back”[3] 文章曾經(jīng)對(duì)Serverless的發(fā)展給現(xiàn)在IT基礎(chǔ)設(shè)施帶來的沖擊表示過擔(dān)憂,但2019年同一撥人在這個(gè)方向上又表現(xiàn)出了支持和樂觀的態(tài)度。從Serverless領(lǐng)域被引用次數(shù)較多的論文上看到,主流科研機(jī)構(gòu)對(duì)Serverless的趨勢(shì)和方向研究上趨于一致,研究重點(diǎn)也慢慢從“why”轉(zhuǎn)變?yōu)椤癶ow”[6]。

何為Serverless?為什么Severless是個(gè)趨勢(shì)?“Cloud Programming Simplified: A Berkeley View on Serverless Computing”[5] 這篇文章為代表做了一個(gè)比較全面的分析和預(yù)測(cè)。同樣是Berkeley在2009年發(fā)表的另一篇文章“Above the Clouds: A Berkeley View of Cloud Computing”[7] 預(yù)測(cè)了云計(jì)算作為IAAS基礎(chǔ)設(shè)施的觀點(diǎn)。該篇文章延續(xù)了之前的風(fēng)格,分析了現(xiàn)狀和難點(diǎn),預(yù)測(cè)了云計(jì)算2.0的形態(tài)Serverless作為下一代基礎(chǔ)設(shè)施,也定義了Serverless的主要三個(gè)特征。

1、資源的解耦和服務(wù)化

弱化了存儲(chǔ)和計(jì)算之間的聯(lián)系。服務(wù)的儲(chǔ)存和計(jì)算被分開部署和收費(fèi),存儲(chǔ)不再是服務(wù)本身的一部分,而是演變成了獨(dú)立的云服務(wù)。這使得計(jì)算變得無(wú)狀態(tài)化,更容易調(diào)度和擴(kuò)縮容,同時(shí)也降低了數(shù)據(jù)丟失的風(fēng)險(xiǎn)。

2、自動(dòng)彈性伸縮

代碼的執(zhí)行不再需要手動(dòng)分配資源。不需要為服務(wù)的運(yùn)行指定需要的資源(比如使用幾臺(tái)機(jī)器、多大的帶寬、多大的磁盤等),只需要提供一份代碼,剩下的交由Serverless平臺(tái)去處理就行了。當(dāng)前階段的實(shí)現(xiàn)平臺(tái)分配資源時(shí)還需要用戶方提供一些策略,例如單個(gè)實(shí)例的規(guī)格和最大并發(fā)數(shù),單實(shí)例的最大CPU使用率。理想的情況是通過某些機(jī)器學(xué)習(xí)算法來進(jìn)行完全自動(dòng)的自適應(yīng)分配。

3、按使用量計(jì)費(fèi)

Serverless按照服務(wù)的使用量(調(diào)用次數(shù)、時(shí)長(zhǎng)等)計(jì)費(fèi),而不是像傳統(tǒng)的Serverful服務(wù)那樣,按照使用的資源(ECS實(shí)例、VM的規(guī)格等)計(jì)費(fèi)。

值得一提的是[5]這篇文章有眾多云計(jì)算廠商的背書,包括AWS、Micorsoft、Google、Alibaba等,同時(shí)文章也直接以AWS Lambda服務(wù)作為樣板去分析Serverless的問題。Serverless本身的技術(shù)難度,這篇文章羅列了多項(xiàng)內(nèi)容,這里不做贅述,可以具體讀一下文章。

關(guān)于Serverless的技術(shù)實(shí)現(xiàn)[3]給出了一個(gè)可行的系統(tǒng)實(shí)現(xiàn)方式,當(dāng)然還是以FAAS為背景。其中提到Serverless關(guān)鍵技術(shù)路徑包括:

  • 統(tǒng)一的標(biāo)準(zhǔn)運(yùn)行環(huán)境支持多語(yǔ)言的運(yùn)行時(shí)統(tǒng)一管理;
  • 輕量級(jí)/蠅量級(jí)安全容器(在[4]中額外提到安全和隔離的重要性)
  • 冷熱容器池設(shè)計(jì)做極致的多租戶復(fù)用能力;
  • 高效的函數(shù)調(diào)度能力。

其中,函數(shù)計(jì)算的實(shí)現(xiàn)方式,卻與數(shù)據(jù)庫(kù)Serverless息息相關(guān)。

二、數(shù)據(jù)庫(kù)的Serverless

數(shù)據(jù)庫(kù)品類繁多,關(guān)系型數(shù)據(jù)庫(kù)自1979年E. F. Codd對(duì)于關(guān)系模型的描述[7]開始,后來者大多只是模仿,而尚未在用戶接受度和規(guī)模上有超越。

數(shù)據(jù)庫(kù)不僅僅是一個(gè)“stateful”的應(yīng)用,而且是一個(gè)“state-heavy”的應(yīng)用。數(shù)據(jù)庫(kù)是Serverless最不友好的應(yīng)用之一,包括云原生基礎(chǔ)設(shè)施kubernates對(duì)于stateful應(yīng)用的支持,也是等到StatefulSet和operator之后才有一個(gè)比較好的解決方案。而在這之前數(shù)據(jù)庫(kù)都是作為Serverless對(duì)狀態(tài)做解耦和狀態(tài)下沉的工具,也是全棧Serverless解決方案中最難攻堅(jiān)的最后一個(gè)堡壘。

對(duì)于Serverless的定義,文章給出來一個(gè)公式:Serverless = FAAS BAAS。將FAAS(Functions as a Service)定義為事件、API、消息驅(qū)動(dòng)的計(jì)算層;將BAAS(Backends as a Service )定義為類似數(shù)據(jù)庫(kù)、消息隊(duì)列等后端服務(wù)。

“State-heavy applications will remain as BaaS”是目前對(duì)于數(shù)據(jù)庫(kù)的一個(gè)基本認(rèn)知,但這與數(shù)據(jù)庫(kù)本身是否具備一定程度的Serveless能力其實(shí)是兩回事。前者強(qiáng)調(diào)的是在應(yīng)用向Serverless做架構(gòu)轉(zhuǎn)型的過程當(dāng)中,數(shù)據(jù)庫(kù)的大量狀態(tài)存儲(chǔ)做不到FAAS這樣即開即用的能力,只能作為“ ”來對(duì)接Serverless生態(tài);后者說的是在某種程度上也能夠滿足“資源解耦”、“自動(dòng)彈性”、“按使用量付費(fèi)”的特點(diǎn),某種程度上也可以認(rèn)為是Serverless。

數(shù)據(jù)庫(kù)Serverless的難點(diǎn)究竟在哪里?

數(shù)據(jù)庫(kù)做Serverless有若干難點(diǎn)[4],總結(jié)如下:

  • Serverless沒有內(nèi)置的持久化存儲(chǔ),需要依賴遠(yuǎn)端存儲(chǔ),這就會(huì)導(dǎo)致在延時(shí)上較高;

  • 客戶端是基于連接的方式訪問數(shù)據(jù)庫(kù),在客戶端往往會(huì)維護(hù)連接池的方式供應(yīng)用訪問,而函數(shù)計(jì)算往往具備飄忽不定的網(wǎng)絡(luò)地址,與數(shù)據(jù)庫(kù)傳統(tǒng)的IP User password鑒權(quán)的方式迥異;

  • 很多高性能的數(shù)據(jù)庫(kù)使用共享內(nèi)存技術(shù),而FAAS本身不具備共享內(nèi)存的能力,會(huì)使得計(jì)算和數(shù)據(jù)庫(kù)之前的資源動(dòng)態(tài)擴(kuò)展能力不一致

為什么說數(shù)據(jù)庫(kù)是Serverless最難攻堅(jiān)的堡壘?

其中尤其要注意的是第2點(diǎn),在應(yīng)用進(jìn)FAAS之后,當(dāng)前的數(shù)據(jù)庫(kù)訪問方式已經(jīng)不適用于Serverless生態(tài):

  • 服務(wù)器與DB做連接保持,這就意味著訪問狀態(tài)是由客戶端和數(shù)據(jù)庫(kù)共同維護(hù),而FAAS無(wú)法做到連接持續(xù)保持的能力;

  • 服務(wù)器通過driver和連接池的方式訪問數(shù)據(jù)庫(kù),每次的連接初始化相對(duì)較重,F(xiàn)AAS上無(wú)法承受如此重的連接初始化工作;

  • 服務(wù)器訪問鑒權(quán)通過user/password/ip的方式訪問數(shù)據(jù)庫(kù),而FAAS多租戶場(chǎng)景所有用戶共享IP地址池,user/password內(nèi)置到FAAS當(dāng)中也暴露了極大的安全風(fēng)險(xiǎn);

  • 數(shù)據(jù)庫(kù)需要一種新的訪問方式,直接影響到數(shù)據(jù)庫(kù)能否作為Serverless生態(tài)當(dāng)中的一部分,直接影響到當(dāng)前Serverless應(yīng)用做全棧Serverless改造。其重要程度甚至大于數(shù)據(jù)庫(kù)Serverless(資源解耦、極致彈性、按使用量付費(fèi)等)本身。

當(dāng)然數(shù)據(jù)庫(kù)本身要做的事情遠(yuǎn)遠(yuǎn)不止如此,數(shù)據(jù)庫(kù)本身要實(shí)現(xiàn)高效的彈升彈降,涉及到更多的管控和內(nèi)核緊密的聯(lián)動(dòng)。

三、他山之石

行業(yè)翹楚AWS在Serverless相關(guān)的布局從2015年推出Lambda開始,引領(lǐng)著這個(gè)方向的發(fā)展。這里更多的關(guān)注在數(shù)據(jù)庫(kù)方面,結(jié)合AWS在Aurora Serverless上的取舍,洞察AWS對(duì)于數(shù)據(jù)庫(kù)Serverless的理解。

從Aurora Serverless V1發(fā)表于2018年,在Serverless的理念上做了大膽的創(chuàng)新,做了幾件事情:

  • 以ACU的方式去統(tǒng)一底層的資源,不再對(duì)上層暴露底層具體的機(jī)型和代數(shù)。1ACU“相當(dāng)于”2GiB的RAM,統(tǒng)一對(duì)底層資源做了標(biāo)準(zhǔn)化和規(guī)范化的處理。這與Serverless理念中資源的解耦、以及對(duì)底層資源的屏蔽一致;

  • 支持自動(dòng)啟停,在無(wú)負(fù)載的情況下支持將計(jì)算節(jié)點(diǎn)降低至“0”。將Serverless中按資源使用量付費(fèi)體現(xiàn)到極致,但也帶來了另外的問題。自動(dòng)啟停在一般場(chǎng)景下首次拉起需要30s左右,犧牲了部分auto scale的能力;

  • 數(shù)據(jù)庫(kù)彈性過程中內(nèi)核相關(guān)buffer pool等參數(shù)隨著資源配合的變化而發(fā)生變化,這也是數(shù)據(jù)庫(kù)這種特殊的應(yīng)用場(chǎng)景需要做的一些特殊處理;

  • 2019年推出Data API功能,補(bǔ)全了數(shù)據(jù)庫(kù)作為BAAS接入FAAS的能力,解決了前面提到的生態(tài)兼容的問題。

2020年發(fā)布的Aurora Serverless V2的介紹視頻并提供內(nèi)測(cè)申請(qǐng),而在前不久V2也正式GA。從Aurora Serverless V2的能力來看,在Serverless能力上做了增強(qiáng)和取舍:

  • 將V1中彈性能力繼續(xù)提升至秒級(jí),做極致快速的彈性。將V1中跨機(jī)升級(jí)的能力優(yōu)化為本地升級(jí)的能力,保證業(yè)務(wù)在彈性過程中不受損。從Aurora Serverless只在3.0.2這一個(gè)版本上支持可以看出,內(nèi)核層針對(duì)Serverless場(chǎng)景也做了大量的優(yōu)化;

  • 去除了V1中關(guān)于自動(dòng)啟停的能力,用戶可以手動(dòng)啟停實(shí)例;更加關(guān)注實(shí)例的auto scale能力,最小資源降低至0.5ACU而非0,犧牲了部分按使用量付費(fèi)的能力,這也是一種取舍;

  • 將彈性縮容的策略做得更加保守,以保證業(yè)務(wù)壓力情況下對(duì)業(yè)務(wù)的影響盡可能小。

從V1到V2的變化,對(duì)比V2和V1的User Case可以看出,Aurora Serverless V2主要解決的是從“開發(fā)測(cè)試環(huán)境”到有限場(chǎng)景下的生產(chǎn)環(huán)境的轉(zhuǎn)變,至于底層的實(shí)現(xiàn)原理,可以從一絲絲蛛絲馬跡中去探究。結(jié)合其他云的做法,Serverless的能力目前還是看重這個(gè)理念,各個(gè)廠商也在以自己的產(chǎn)品形態(tài)去向貼近這個(gè)理念,至于說一統(tǒng)行業(yè)標(biāo)準(zhǔn)的產(chǎn)品化方案,還為時(shí)過早,這一領(lǐng)域大有可為。

四、未來可期

從2009年開始,云的能力不斷增強(qiáng),云的本質(zhì)是資源的池化,而這些資源不僅僅包含硬件資源,更包含專業(yè)的技術(shù)人才,以及核心的技術(shù)專利標(biāo)準(zhǔn)等。經(jīng)過了十來年在規(guī)模和成本上的激烈競(jìng)爭(zhēng),IAAS資源也在不斷的向Serverless的方向演進(jìn),底層能力的增強(qiáng)也意味著上層PAAS層和SAAS服務(wù)有了更快地向Serverless演進(jìn)的路徑。

如果開源托管產(chǎn)品RDS可以看成是云數(shù)據(jù)庫(kù)服務(wù)1.0,自研產(chǎn)品如PolarDB和Aurora可以看成是云數(shù)據(jù)庫(kù)2.0,那么Serverless將會(huì)是云數(shù)據(jù)庫(kù)服務(wù)的3.0。其中,客戶應(yīng)用跟數(shù)據(jù)庫(kù)交互方式的改變(例如,從JDBC/ODBCRestful API轉(zhuǎn)變),將會(huì)具有重要意義。

從艾瑞2022年初對(duì)數(shù)據(jù)庫(kù)云管平臺(tái)的發(fā)展趨勢(shì)預(yù)測(cè)[9]、以及結(jié)合云的趨勢(shì)和Serverless本身,我們可以對(duì)Aurora Severless未來的發(fā)展方向做一些大膽的預(yù)測(cè):

  • 智能化加持

從re:Invent2021發(fā)布的Devops Guru產(chǎn)品上看到,AWS正在智能化場(chǎng)景下進(jìn)行追趕。內(nèi)置的智能化引擎對(duì)Serverless的場(chǎng)景可以做出更多的精準(zhǔn)預(yù)測(cè),讓“響應(yīng)式”擴(kuò)容升級(jí)為“響應(yīng)式兜底,智能化加持”的雙引擎驅(qū)動(dòng)。

  • 資源解耦和極致的彈性

共享內(nèi)存技術(shù)、Brust IO能力等會(huì)推著Serverless將更多的資源進(jìn)行解耦,以及進(jìn)行獨(dú)立的升降配。

  • 更多的Serverless手段

擴(kuò)容是最有效直接應(yīng)對(duì)數(shù)據(jù)庫(kù)流量的方式,但是有了更多智能化的手段之后,單純的“擴(kuò)容”已經(jīng)有更多選擇,自動(dòng)索引優(yōu)化、智能調(diào)參會(huì)是很好的選項(xiàng)。

  • 自動(dòng)的橫向擴(kuò)展能力

scale out和scale up同樣可以應(yīng)對(duì)業(yè)務(wù)流量的變化,但scale out的復(fù)雜程度要遠(yuǎn)遠(yuǎn)高于scale out本身,也是個(gè)可能的選項(xiàng)。

  • 低成本硬件大規(guī)模使用

ACU的單位定義屏蔽了底層資源屬性,ARM、x86還是RISC-V已經(jīng)不是那么重要,標(biāo)準(zhǔn)化歸一化的算力能力讓更多類型的硬件無(wú)縫無(wú)感的接入到Serverless當(dāng)中。

目前,在國(guó)產(chǎn)云數(shù)據(jù)庫(kù)領(lǐng)域,各大國(guó)產(chǎn)廠商也正在加大研發(fā)力量。期待未來我們的國(guó)產(chǎn)云數(shù)據(jù)庫(kù)能在Serverless領(lǐng)域取得更多的成績(jī),趕超國(guó)際一流水平。

>>>>

參考資料

  • [1]2016:"Emerging Technology Analysis: Serverless Computing and Function Platform as a Service", Gartner, Tech.
  • [2]2017:"Serverless Computing: Current Trends and Open Problems", IBM Research
  • [3]2017:"Serverless Computing:Design, Implementation, and Performance",IEEE 2017 ICDCSW
  • [4]2018:"Serverless Computing: One Step Forward, Two Steps Back ", CIDR 2019
  • [5]2019:"Cloud Programming Simplified: A Berkeley View on Serverless Computing", EECS 2019
  • [6]2020:"Serverless Applications: Why, When, and How?", IEEE Software
  • [7]2009:"Above the Clouds: A Berkeley View of Cloud Computing", EECS 2009
  • [8]1970:"A relational model of data for large shared data banks", Commun. ACM 1970
  • [9]2022: https://www.iresearch.com.cn/Detail/report?id=3922&isfree=0 艾瑞咨詢

作者丨韋仁忠,花名近秋,阿里云數(shù)據(jù)庫(kù)高級(jí)技術(shù)專家

來源丨公眾號(hào):阿里云數(shù)據(jù)庫(kù)(ID:gh_55546b2b5111)

dbaplus社群歡迎廣大技術(shù)人員投稿,投稿郵箱:editor@dbaplus.cn

更多數(shù)據(jù)庫(kù)干貨

關(guān)注【dbaplus社群】公眾號(hào),后臺(tái)回復(fù)【220318】即可獲取4期精選“數(shù)據(jù)庫(kù)”主題直播回看和PPT。

來自工行、中行、光大、民生、

平安、匯豐、微眾、

阿里、華為云、字節(jié)的數(shù)據(jù)庫(kù)實(shí)戰(zhàn)分享,

分布式選型、遷移改造、智能運(yùn)維等疑難,

幫你一網(wǎng)打盡!

為什么說數(shù)據(jù)庫(kù)是Serverless最難攻堅(jiān)的堡壘?為什么說數(shù)據(jù)庫(kù)是Serverless最難攻堅(jiān)的堡壘?

關(guān)注公眾號(hào)【dbaplus社群】,獲取更多原創(chuàng)技術(shù)文章和精選工具下載

相關(guān)新聞

聯(lián)系我們
聯(lián)系我們
公眾號(hào)
公眾號(hào)
在線咨詢
分享本頁(yè)
返回頂部
原平市| 宜兴市| 冷水江市| 酉阳| 洪洞县| 民权县| 敦化市| 康平县| 惠安县| 文成县| 昭觉县| 积石山| 茂名市| 娱乐| 利川市| 铜陵市| 吐鲁番市| 海兴县| 石泉县| 神池县| 乌恰县| 和顺县| 利辛县| 马龙县| 大化| 烟台市| 芜湖市| 饶河县| 彰武县| 忻州市| 华亭县| 丰县| 河间市| 阳东县| 会同县| 苏尼特右旗| 和静县| 工布江达县| 迁安市| 元氏县| 竹山县|