現(xiàn)階段,除了數(shù)據(jù)的使用權(quán)、數(shù)據(jù)安全、數(shù)據(jù)存儲(chǔ)等問題,更多的人對大數(shù)據(jù)技術(shù)本身能夠開發(fā)出什么樣的產(chǎn)品,提供什么樣的服務(wù)更感興趣。
因此,UCloud特地在杭州舉辦了UCan下午茶活動(dòng),聚焦數(shù)據(jù)價(jià)值,探討如何在技術(shù)層面進(jìn)行數(shù)據(jù)安全實(shí)踐,為數(shù)據(jù)商業(yè)化變現(xiàn)探尋新出路。
現(xiàn)場座無虛席,UCloud存儲(chǔ)研發(fā)工程師丁順首先帶來了主題為「數(shù)據(jù)庫高可用容災(zāi)方案設(shè)計(jì)和實(shí)現(xiàn)」的分享。
高可用數(shù)據(jù)庫,即一系列數(shù)據(jù)庫構(gòu)成的集群。它通常的架構(gòu)是有一個(gè)主節(jié)點(diǎn)來處理主要請求,另一個(gè)備用節(jié)點(diǎn)作為容災(zāi)切換使用,當(dāng)主節(jié)點(diǎn)不能提供服務(wù)的時(shí)候,備節(jié)點(diǎn)可以成為主節(jié)點(diǎn)繼續(xù)提供服務(wù),從而保證整個(gè)系統(tǒng)的可用和穩(wěn)定。
因此,使用高可用數(shù)據(jù)庫的好處也非常明顯。丁順表示,「一是系統(tǒng)可用性提高;二是可以方便的讀寫分離。即操作中可以在主數(shù)據(jù)庫節(jié)點(diǎn)上進(jìn)行,吞吐量明顯多于單個(gè)數(shù)據(jù)庫;三是變更不停服,它是指做變更時(shí)可以先升級(jí)備節(jié)點(diǎn),再做主層切換,升級(jí)后的備節(jié)點(diǎn)變成主節(jié)點(diǎn),再把之前主節(jié)點(diǎn)再做升級(jí),對用戶影響非常小;四是備份不影響服務(wù)性能,因?yàn)橛泻芏鄠涔?jié)點(diǎn)可以做數(shù)據(jù)備份,所以主節(jié)點(diǎn)的性能不會(huì)受影響。」
因?yàn)楦呖捎脭?shù)據(jù)庫的優(yōu)勢,業(yè)界有很多成熟的架構(gòu)設(shè)計(jì)。而數(shù)據(jù)庫主從復(fù)制是較經(jīng)典的數(shù)據(jù)同步模式,它可以延伸出很多架構(gòu)改進(jìn)。現(xiàn)在UCloud的云數(shù)據(jù)庫產(chǎn)品UDB就采取這種方案,那為什么要基于數(shù)據(jù)庫的主從復(fù)制來做產(chǎn)品?
這是一個(gè)綜合考慮的結(jié)果。丁順表示,一方面是因?yàn)閁DB的初衷即是在高可用架構(gòu)中盡量基于原生MySQL,以涵蓋不同的MySQL數(shù)據(jù)版本;二是在不同場景及存儲(chǔ)引擎背景下,主從復(fù)制方案優(yōu)勢明顯。
但高可用數(shù)據(jù)庫也有非常大的痛點(diǎn),那就是自動(dòng)化運(yùn)維。
而目前采用集中式管理方法的UDB采用自研的容災(zāi)模塊,可以處理大規(guī)模、高并發(fā)的DB自動(dòng)化容災(zāi)。除了自動(dòng)化容災(zāi)之外,后臺(tái)DB的運(yùn)維體系還可以做到自動(dòng)化問題探測以及問題修復(fù),降低運(yùn)維的難度和壓力。
丁順總結(jié),這是因?yàn)閁DB在運(yùn)維當(dāng)中的三個(gè)特性:一是日常做例行巡檢,能夠保證高可用數(shù)據(jù)庫的健康;二是定期的容災(zāi)演練;三是高可用切換需要記錄日志,在切換失敗的時(shí)候需要做告警。這些能力能夠讓UDB能夠達(dá)到良好的自動(dòng)化運(yùn)維效果。
分享過后,與會(huì)者還針對MySQL數(shù)據(jù)主從同步異常的問題進(jìn)行了分析和探討。
第二位進(jìn)行主題演講的嘉賓是UCloud資深數(shù)據(jù)庫研發(fā)工程師劉堅(jiān)君。他的分享題目是「新一代公有云分布式數(shù)據(jù)庫——UCloud Exodus」。他認(rèn)為,在公有云數(shù)據(jù)庫1.0的基礎(chǔ)上,云數(shù)據(jù)庫2.0重新思考了用戶需求痛點(diǎn),基于公有云的進(jìn)化能力創(chuàng)造出了全新價(jià)值,而UCloud Exodus將會(huì)是云數(shù)據(jù)庫2.0時(shí)代的重要產(chǎn)品,現(xiàn)場他對其能力進(jìn)行了詳細(xì)的介紹。
劉堅(jiān)君首先從1.0時(shí)代存在的問題入手,他認(rèn)為1.0時(shí)代云數(shù)據(jù)庫帶來了三方面價(jià)值:彈性、故障救援、知識(shí)復(fù)用。但它同樣有三個(gè)難以解決的問題:容量和性能、租用成本、運(yùn)營成本。
到2.0時(shí)代,解決上述三個(gè)問題的思路是計(jì)算和讀寫分離。通過計(jì)算和讀寫分離,將傳統(tǒng)數(shù)據(jù)庫的計(jì)算層和存儲(chǔ)層拆開,各自獨(dú)立擴(kuò)展和演進(jìn)。帶來的好處是:一是提供更大的容量和讀寫性能;二是按需擴(kuò)容和付費(fèi);三是優(yōu)化運(yùn)營成本并降低運(yùn)營風(fēng)險(xiǎn)。從而讓1.0云數(shù)據(jù)庫的三大問題可迎刃而解。
放眼來看,業(yè)界已推出的2.0云數(shù)據(jù)庫(如Aurora、PolarDB等)均采用計(jì)算和存儲(chǔ)分離的架構(gòu)。而UCloud Exodus的產(chǎn)品和技術(shù)理念則更進(jìn)一步:計(jì)算和存儲(chǔ)分離后,存儲(chǔ)層將完全復(fù)用云平臺(tái)的高性能分布式存儲(chǔ)(如UCloud UDisk、阿里云盤古等),而Exodus則專注于構(gòu)建一款數(shù)據(jù)庫內(nèi)核,去適配主流公有云和私有云廠商發(fā)布的高性能分布式存儲(chǔ)產(chǎn)品。Exodus的這種產(chǎn)品架構(gòu),稱之為Shared-ALL-DISK架構(gòu)。
Shared-ALL-DISK架構(gòu)的優(yōu)點(diǎn)明顯。在提供云數(shù)據(jù)庫2.0創(chuàng)新功能的同時(shí),賦予了用戶業(yè)務(wù)自由遷徙的能力,不被某個(gè)云平臺(tái)綁架;同時(shí)能夠連接上下游的軟硬件廠商,共享云數(shù)據(jù)庫2.0技術(shù)紅利,共建Exodus數(shù)據(jù)庫生態(tài)。中立、自由連接和利益共享,是UCloud成立以來一直強(qiáng)調(diào)的價(jià)值觀。
更為重要的是Exodus最終開源,它會(huì)將核心系統(tǒng)的每一行源碼開放,賦予用戶深入了解和優(yōu)化Exodus的能力;賦予同行改進(jìn),優(yōu)化的自由。并建設(shè)開源社區(qū),吸收全行業(yè)的優(yōu)化成果,共同改進(jìn)和完善Exodus。最終,UCloud Exodus將成為時(shí)間的朋友、用戶的朋友、行業(yè)的朋友。
演講中,劉堅(jiān)君進(jìn)一步闡述了三個(gè)朋友的概念。他指出,最近幾年,某些公有云廠商和產(chǎn)品有成為下一代IOE的趨勢,通過降價(jià)打壓競爭對手和吸引用戶,在產(chǎn)品上對用戶業(yè)務(wù)的捆綁越發(fā)深入,導(dǎo)致敵人越多,朋友越少,長遠(yuǎn)來看不利于行業(yè)健康發(fā)展。而UCloud Exodus的目標(biāo),是希望成為云數(shù)據(jù)庫平臺(tái)中的MySQL。數(shù)據(jù)庫系統(tǒng),歷來是IT行業(yè)的協(xié)作樞紐,UCloud希望打造一款開源的云數(shù)據(jù)庫2.0產(chǎn)品,來重構(gòu)云數(shù)據(jù)庫格局乃至公有云格局,通過開放共享,用自由連接的方法讓敵人越來越少,朋友越來越多,形成通過技術(shù)和服務(wù),而不是品牌宣傳和降價(jià)來相互競爭的格局,推動(dòng)云計(jì)算健康發(fā)展。
當(dāng)然,采用Shared-ALL-DISK這種開放式架構(gòu),有更多技術(shù)問題需要解決。其中的核心問題是IO路徑問題,這也是計(jì)算和存分離架構(gòu)中的根本問題。劉堅(jiān)君認(rèn)為,分析近幾年的技術(shù)趨勢,未來主流云平臺(tái)上的分布式存儲(chǔ)產(chǎn)品,必將朝高性能方向演進(jìn),最終在IO能力上足夠承載數(shù)據(jù)庫等高性能應(yīng)用。
因此,應(yīng)該有前瞻性地把IO路徑問題的主戰(zhàn)場,交給隊(duì)友,交給云平臺(tái)的分布式存儲(chǔ)產(chǎn)品和團(tuán)隊(duì)。比如UCloud UDisk,以UCloud UDisk正在開發(fā)的新版本產(chǎn)品為例,現(xiàn)在已經(jīng)測得了100us的IO延遲,100w+的IOPS。相信隨著時(shí)間的推移,技術(shù)優(yōu)化將不斷深入,底層軟硬件將不斷升級(jí),最終云平臺(tái)的跨節(jié)點(diǎn)IO能力將達(dá)到非常高的水平。
但這并不意味著UCloud Exodus在IO路徑上毫不作為。相反,Exodus將以MySQL為原型,對IO路徑問題做大量優(yōu)化。包括去除Binlog、去除內(nèi)部二次提交、消除DoubleWrite等。這些技術(shù)手段的采用,將保證Exodus在高性能分布式存儲(chǔ)之上,IO跑的又輕又快。
除了IO路徑問題,另一個(gè)重要的技術(shù)問題是主從同步問題。在借鑒業(yè)內(nèi)主流的Redolog同步思路的基礎(chǔ)上,Exodus基于MySQL內(nèi)部機(jī)制又做了創(chuàng)新。該創(chuàng)新方法提供了一種實(shí)現(xiàn)簡單又運(yùn)行高效的主從Redolog同步機(jī)制。
一套完整UCloud Exodus數(shù)據(jù)庫系統(tǒng),由Master、SLAVES、Binloger、分布式存儲(chǔ)與對象存儲(chǔ)構(gòu)成。Master實(shí)例負(fù)責(zé)數(shù)據(jù)讀寫并同步redolog到Slaves;Slaves由一個(gè)或多個(gè)只讀節(jié)點(diǎn)構(gòu)成,緩存和主節(jié)點(diǎn)保持一致并向上提供只讀能力;分布式存儲(chǔ)負(fù)責(zé)數(shù)據(jù)的持久化存儲(chǔ),同時(shí)將數(shù)據(jù)頁和redolog實(shí)時(shí)備份和歸檔到對象存儲(chǔ);而Binloger模塊將根據(jù)對象存儲(chǔ)中的歸檔redolog重演binlog,以向下游系統(tǒng)(如kafka等)提供binlog數(shù)據(jù)。
該系統(tǒng)預(yù)計(jì)2019年第三季度推出公測版,2020年一季度正式發(fā)布。
第三位的演講嘉賓是來自網(wǎng)易的資深數(shù)據(jù)庫內(nèi)核及大數(shù)據(jù)技術(shù)專家蔣鴻翔,他帶來了「基于Impala平臺(tái)打造交互查詢系統(tǒng)」為主題的分享。
交互查詢是偏分析的方向。它的特點(diǎn)是數(shù)據(jù)量基數(shù)龐大,關(guān)系模型相對較復(fù)雜,響應(yīng)時(shí)間要求較高。
因此,選擇匹配的平臺(tái)上,一般基于三個(gè)方面來考慮:一是本身項(xiàng)目熟悉度;二中大廠背書;三是性能和優(yōu)缺點(diǎn)指標(biāo)。
蔣鴻翔表示,現(xiàn)在業(yè)內(nèi)有Impala交互查詢平臺(tái),F(xiàn)acebook做的查詢平臺(tái)Presto,以及Green Plum。那如何去選?因?yàn)榻换ゲ樵兊臄?shù)據(jù)是從大數(shù)據(jù)平臺(tái)上來的,所以一般會(huì)考慮與Hadoop/Hive的兼容,社區(qū)環(huán)境及架構(gòu)設(shè)計(jì)等因素。
之所以選擇Impala平臺(tái),在于它的綜合優(yōu)勢,主要體現(xiàn)在六個(gè)維度:第一,MPP架構(gòu);第二,執(zhí)行節(jié)點(diǎn)無狀態(tài)、去中心化;第三,兼容Hive存儲(chǔ);第四,Apache頂級(jí)項(xiàng)目、成熟社區(qū);第五,多種數(shù)據(jù)格式兼容;第六,高效查詢性能。
當(dāng)然,Impala還有缺陷。包括服務(wù)單點(diǎn)、Web信息不持久化、資源隔離不精準(zhǔn)、底層存儲(chǔ)不能區(qū)分用戶、負(fù)載均衡需要外部支持這幾個(gè)方面。
針對這些缺點(diǎn)已經(jīng)出臺(tái)了不少改進(jìn)方案。目前主要有基于ZK的Loadbalance,管理服務(wù)器,細(xì)粒度權(quán)限和代理,Json格式,兼容Ranger權(quán)限管理,批量元數(shù)據(jù)刷新,元數(shù)據(jù)同步和過濾等維度。
其實(shí),Impala平臺(tái)的應(yīng)用場景也非常多?;谟脩魯?shù)據(jù)沉淀,做不同形式的預(yù)測和推薦,從而最大化利用數(shù)據(jù)。
隨后,UCloud技術(shù)專家王仆帶來了主題演講「UCloud分布式KV存儲(chǔ)系統(tǒng)」。
在線服務(wù)Redis是當(dāng)前比較流行的協(xié)議,它支持比較多的數(shù)據(jù)結(jié)構(gòu)??梢员挥糜趦?nèi)存緩存、持久化存儲(chǔ)等不同場景,大量服務(wù)于各類互聯(lián)網(wǎng)應(yīng)用。
同時(shí)也提供了豐富的功能配置,客戶可以根據(jù)各自業(yè)務(wù)需求,在讀寫性能、緩存容量、數(shù)據(jù)可靠性等方面作出靈活的選擇。
Redis是主要有三個(gè)優(yōu)勢,一是擁有超高性能,讀寫性能可達(dá)10萬以上;二是支持string、list、hash、set、sorted set等豐富的數(shù)據(jù)結(jié)構(gòu);三是支持排序、集合類運(yùn)算、位運(yùn)算、過期淘汰等復(fù)雜運(yùn)算。
目前已經(jīng)有很多企業(yè)都在使用Redis產(chǎn)品。比如說大型社交APP的客戶。通常,社交的APP在Server端比較簡單,會(huì)存儲(chǔ)一些用戶信息,包括發(fā)布信息的狀態(tài)、關(guān)注、消息發(fā)布等。這些龐大的信息運(yùn)轉(zhuǎn)就需要快速的處理,而使用Redis的數(shù)據(jù)結(jié)構(gòu)來緩存數(shù)據(jù),能夠?qū)崿F(xiàn)較快的響應(yīng)。
活動(dòng)接近尾聲,杭州錢塘江已經(jīng)被一片金色籠罩,但與會(huì)者依然熱情,非常積極踴躍地參與交流互動(dòng)。最后一位演講來自于華為的技術(shù)專家時(shí)金魁,他帶來了「實(shí)時(shí)流計(jì)算技術(shù)及其應(yīng)用」的主題分享。
實(shí)時(shí)流在這兩年比較流行,而它的基礎(chǔ)就是大數(shù)據(jù)。目前,實(shí)時(shí)云計(jì)算適用場景比較多,包括廣告、監(jiān)控大盤、打車軟件、金融風(fēng)控、異常檢測、交通、物流、外賣等等。
比如,在打車場景中,一般會(huì)在APP中會(huì)顯示預(yù)計(jì)費(fèi)用,顯示費(fèi)用通過實(shí)時(shí)預(yù)測出來,而不是真正發(fā)生的計(jì)價(jià),這就是實(shí)時(shí)流日常運(yùn)用的場景之一。
今天較出眾的實(shí)時(shí)流計(jì)算框架是Flink。
Flink除了有TABLE,還能夠做一些SQL。目前在Flink上面可以做時(shí)空數(shù)據(jù),主要用在物聯(lián)網(wǎng)方向,比如說車聯(lián)網(wǎng)、物聯(lián)網(wǎng),還有一些基于曲線,比較典型的是電子圍欄、車輛超速等等。除此之外,還有地理位置、智能學(xué)習(xí)模型、實(shí)時(shí)推理。因?yàn)閿?shù)據(jù)是實(shí)時(shí)流進(jìn)來的,可以做實(shí)時(shí)推理并且應(yīng)用到業(yè)務(wù)系統(tǒng)。
時(shí)金魁還提到,現(xiàn)在的潮流是流計(jì)算雙引擎:Flink+Spark,這個(gè)非常有用。它可以實(shí)現(xiàn)很多,比如Stream SQL表達(dá),在線機(jī)器學(xué)習(xí),實(shí)時(shí)故障檢測等等。如果一些數(shù)據(jù)指標(biāo)出現(xiàn)異常會(huì)訓(xùn)練,它是否異??梢酝ㄟ^實(shí)時(shí)流發(fā)現(xiàn),一旦發(fā)現(xiàn)做一些歸類,如果是異常情況實(shí)時(shí)做告警,還有駕駛員分析等等。
活動(dòng)最后,意猶未盡的開發(fā)者們還與演講嘉賓們就一些話題進(jìn)行了交流。而大數(shù)據(jù)技術(shù)的探討之后,UCan下午茶還將走進(jìn)深圳等地,繼續(xù)對技術(shù)趨勢進(jìn)行火熱探討和交流,敬請關(guān)注后續(xù)系列活動(dòng)。
分享到微信 ×
打開微信,點(diǎn)擊底部的“發(fā)現(xiàn)”,
使用“掃一掃”即可將網(wǎng)頁分享至朋友圈。