以下是現(xiàn)場速記。
騰訊云數(shù)據(jù)庫產(chǎn)品總監(jiān) 王云龍
王云龍:謝謝大家,我也是第一次參加CIO大會,兩天都有參與到學(xué)習(xí)和討論,確實(shí)學(xué)到了很多行業(yè)的經(jīng)驗(yàn),也有體會到各行各業(yè)CIO企業(yè)信息化轉(zhuǎn)型過程中的各種問題。作為數(shù)據(jù)庫廠商,我也在思考數(shù)據(jù)庫層面怎樣給各個行業(yè)、各個企業(yè)的CIO帶來自己的企業(yè)價值,或者降低整體信息系統(tǒng)的成本。
今天我的主題就是“騰訊云TDSQL助力政企核心系統(tǒng)國產(chǎn)化”,主要分為這樣幾個部分:騰訊TDSQL產(chǎn)品的進(jìn)階過程,為什么發(fā)展到了現(xiàn)在這樣一個狀態(tài),騰訊TDSQL當(dāng)前可以提供給各個企業(yè),能夠體驗(yàn)到的產(chǎn)品價值,過去一段時間各行各業(yè)在國產(chǎn)化數(shù)據(jù)庫做的一些案例分享,最后是希望能夠通過國產(chǎn)化數(shù)據(jù)庫推動給各個企業(yè)的產(chǎn)品輸入,能夠做到整個企業(yè)數(shù)據(jù)庫技術(shù)的提升和人員的壯大。
TDSQL產(chǎn)品進(jìn)階之路分為三個階段,其實(shí)也是源于騰訊自有業(yè)務(wù),最初騰訊的各種產(chǎn)品底層都是有數(shù)據(jù)庫的支撐,更多的都是通過TDSQL數(shù)據(jù)庫統(tǒng)一對外,就是服務(wù)企業(yè)內(nèi)部。騰訊2015年開始做公有云數(shù)據(jù)庫產(chǎn)品,逐步把TDSQL推送給企業(yè)的各個客戶或者各個行業(yè),相當(dāng)于有了一個目標(biāo),就是投身產(chǎn)業(yè)互聯(lián)網(wǎng)。騰訊原來To C的行業(yè)逐步向產(chǎn)業(yè)互聯(lián)網(wǎng)經(jīng)營,消費(fèi)互聯(lián)網(wǎng)向產(chǎn)業(yè)互聯(lián)網(wǎng)轉(zhuǎn)型。最近兩年剛引入的攻堅(jiān)金融標(biāo)桿,順應(yīng)國家整體國產(chǎn)化的戰(zhàn)略,軟件、硬件的底層核心系統(tǒng)和核心技術(shù)全部國產(chǎn)化替換,優(yōu)先從金融行業(yè)做起。隨著金融行業(yè)和其它各種行業(yè)經(jīng)驗(yàn)的逐步積累,國產(chǎn)化的風(fēng)潮肯定會越來越大,趨勢肯定會逐步蔓延到各行各業(yè),我們希望把這些經(jīng)驗(yàn)逐步復(fù)制。
我們現(xiàn)在做的就是數(shù)據(jù)庫廠商,但我本人最初也是跟在座的各行各業(yè)一樣,服務(wù)于騰訊內(nèi)部的數(shù)據(jù)庫系統(tǒng),最初我的工作是運(yùn)維部,主要就是做數(shù)據(jù)庫系統(tǒng)的運(yùn)維和整體業(yè)務(wù)系統(tǒng)的運(yùn)維?;ヂ?lián)網(wǎng)公司的生產(chǎn)資料其實(shí)就是各種程序和互聯(lián)網(wǎng)服務(wù),整體的IT設(shè)施本身就是自己的生產(chǎn)資料,底層很多技術(shù)都是自己開發(fā)、研究、使用,因?yàn)楹蛯?shí)體經(jīng)濟(jì)不一樣,互聯(lián)網(wǎng)公司就是要做這件事情。因此對數(shù)據(jù)庫團(tuán)隊(duì)來說,需要支撐自身支撐數(shù)據(jù)庫業(yè)務(wù)的事情,騰訊內(nèi)部的各種各樣的系統(tǒng),根據(jù)不同的業(yè)務(wù)場景和對數(shù)據(jù)庫的要求,使用大量的數(shù)據(jù)庫技術(shù),包括開源的MySQL、PostGre等等,通過這些技術(shù)的沉淀和積累進(jìn)一步適應(yīng)高并發(fā)和大場景下的需求,然后對業(yè)務(wù)系統(tǒng)進(jìn)行很多變更,數(shù)據(jù)庫團(tuán)隊(duì)也對這些數(shù)據(jù)庫內(nèi)部的核心技術(shù)做出調(diào)整,逐步發(fā)展騰訊自有的分布式數(shù)據(jù)庫TDSQL產(chǎn)品。
公有云業(yè)務(wù)國內(nèi)的市場就是2013年到2014年啟動,騰訊也是2013年左右開始做公有云市場。整體思路可能跟之前是相似的,只不過是把原來對內(nèi)的技術(shù)能力通過公有云的方式對外提供,賦能各個行業(yè)。除了基于開源IaaS資源層面的輸出,需要把更核心的數(shù)據(jù)庫能力或者自有能力對外輸出。我們可能在微眾銀行、人口普查、數(shù)字廣東系統(tǒng)大量引入騰訊的技術(shù),包括數(shù)據(jù)庫技術(shù)。我們可以通過這些客戶自有的業(yè)務(wù)特點(diǎn)發(fā)現(xiàn)都是新建業(yè)務(wù),所以整體的互聯(lián)網(wǎng)技術(shù)進(jìn)行賦能的過程中,很多都是賦能新建的這些業(yè)務(wù)場景,微眾銀行也是比較新的銀行,很多系統(tǒng)都是需要重新搭建的,并不是對已有系統(tǒng)的替換。
在此過程中,我們就有發(fā)生互聯(lián)網(wǎng)技術(shù)和傳統(tǒng)技術(shù)的碰撞,但很多之前的技術(shù)在向To B行業(yè)賦能的過程中并不適合,我們要和各行各業(yè)自有業(yè)務(wù)和不同業(yè)務(wù)系統(tǒng)的開發(fā)人員進(jìn)行學(xué)習(xí)和碰撞,最終進(jìn)行適配,目標(biāo)還是希望能夠幫助客戶在業(yè)務(wù)層面達(dá)到成功。
我們可以進(jìn)一步推動國產(chǎn)化,這也是最近兩年正在做的,通過第二階段的打磨,我們確實(shí)有一部分的自有業(yè)務(wù)可以對外輸出,開始就是核心的金融行業(yè)。為什么從金融行業(yè)開始推動?不知道大家是否知道,國家層面在信創(chuàng)領(lǐng)域下了很大力氣,也有很重要的文件下發(fā)到各大金融行業(yè)和大型企業(yè),要求大家在2025年之前把核心系統(tǒng),包括操作系統(tǒng)的硬件和數(shù)據(jù)庫完全達(dá)到國產(chǎn)化替換。金融行業(yè)作為大型企業(yè),肯定是需要優(yōu)先認(rèn)領(lǐng)國家這些任務(wù),我們也同時適應(yīng)這種任務(wù)的推進(jìn)。我們是從微眾銀行做起,也是騰訊自有的銀行業(yè)務(wù),把數(shù)據(jù)庫技術(shù)向張家港銀行、平安銀行,國有的中行和農(nóng)行進(jìn)行復(fù)制,最終達(dá)到這樣的效果。說明互聯(lián)網(wǎng)公司的數(shù)據(jù)庫不僅能夠服務(wù)互聯(lián)網(wǎng)能力,也可以影響到實(shí)體金融行業(yè),甚至應(yīng)用到核心關(guān)鍵系統(tǒng)里面。
通過這樣幾個階段,我們簡單總結(jié)一下:騰訊數(shù)據(jù)庫第一階段是自給自足,打造騰訊自有業(yè)務(wù)的堅(jiān)實(shí)后盾,打磨自有的核心系統(tǒng)和核心技術(shù)。第二階段是產(chǎn)業(yè)互聯(lián)網(wǎng)階段,服務(wù)各行各業(yè),更多的還是通過公有云的系統(tǒng)進(jìn)行服務(wù)。第三階段開始向私有云、私有化轉(zhuǎn)移,把互聯(lián)網(wǎng)之間碰撞的技術(shù)直接私有化,就是有些核心數(shù)據(jù)或者安全性比較高的系統(tǒng)不用非得上到公有云,可以把整體全套系統(tǒng)進(jìn)行私有化輸出,能夠在我們自己家的服務(wù)器或者數(shù)據(jù)中心打造自有專有公有云的服務(wù)。
總結(jié)下來,我們需要保持堅(jiān)持和敬畏之心,要向不同行業(yè)業(yè)務(wù)保持學(xué)習(xí)的心態(tài),最終滿足各行各業(yè)對技術(shù)的要求。
通過這些打磨,我們看一看騰訊To B私有化的產(chǎn)品整體框架,主要分為這樣三層:底層需要適配國產(chǎn)的芯片和硬件系統(tǒng),可以跟當(dāng)前主流的國產(chǎn)服務(wù)器鯤鵬、海光進(jìn)行全面適配,騰訊自有研發(fā)的產(chǎn)品技術(shù)平臺統(tǒng)一輸出。我們對云的需求分為專有云和金融云,專有云就是把整體騰訊公有云完整的技術(shù)體系和技術(shù)生態(tài)復(fù)制到自有的數(shù)據(jù)中心,數(shù)據(jù)中心并沒有建得那么大,但仍然有專有的訴求,可以直接幫助行業(yè)客戶建立行業(yè)專有云,也就是金融云,幫助金融客戶建立這樣的自有云。兩朵云的基礎(chǔ)上,我們提供各種各樣的大數(shù)據(jù)平臺、云原生PaaS基礎(chǔ)技術(shù),也包括國產(chǎn)化TDSQL數(shù)據(jù)系統(tǒng),整體的Linux國產(chǎn)操作系統(tǒng),可以提供敏捷開發(fā)的組件,最終還是支撐各行各業(yè)自有的核心業(yè)務(wù)。
看一看TDSQL能夠給大家?guī)淼募夹g(shù)能力,圖中就是TDSQL產(chǎn)品框架圖,也是按照三層進(jìn)行劃分。
最重要的就是中間的業(yè)務(wù)層,TDSQL提供的是全套的數(shù)據(jù)庫分布系統(tǒng),包括應(yīng)用驅(qū)動、計(jì)算引擎、存儲節(jié)點(diǎn),所以從應(yīng)用層到計(jì)算層和存儲層全面分布式系統(tǒng)適配。不同的點(diǎn)還有不同的技術(shù)能力實(shí)現(xiàn),應(yīng)用驅(qū)動層,原有大部分業(yè)務(wù)系統(tǒng)都是基于Java實(shí)現(xiàn),但在我們進(jìn)行國產(chǎn)化替換的時候需要換一套全新的驅(qū)動才能連接或者訪問全新的數(shù)據(jù)庫,但這個換驅(qū)動的過程可能會對原有的業(yè)務(wù)系統(tǒng)邏輯造成自己的影響,影響過大的話整個業(yè)務(wù)邏輯都要重構(gòu),這些對企業(yè)帶來的成本和替換的復(fù)雜度是很高的。
我們在應(yīng)用驅(qū)動層做了大量數(shù)據(jù)庫兼容的邏輯,就是希望客戶替換數(shù)據(jù)庫的過程中更加平穩(wěn)。計(jì)算引擎提供多種計(jì)算模式,我們有MySQL引擎和PG生態(tài)引擎,要想替換Oracle數(shù)據(jù)庫的話就會用Oracle模式替換。
存儲層就是行存和列存混合存儲,行存就是正常支撐自有業(yè)務(wù),更新不頻繁但需要復(fù)雜查詢、復(fù)雜統(tǒng)計(jì)信息的數(shù)據(jù)適合列存,所以行列混存,放在一套數(shù)據(jù)庫進(jìn)行存儲,方便選擇不同的場景和不同的存儲結(jié)構(gòu)。
再往上就是自動化運(yùn)維的能力,我本身也是數(shù)據(jù)庫運(yùn)維出身,DVA很苦惱和困惑的就是怎么調(diào)整數(shù)據(jù)庫,要是數(shù)據(jù)庫慢了,怎么證明是哪個SQL慢了?應(yīng)該怎樣優(yōu)化,指導(dǎo)應(yīng)用,調(diào)整業(yè)務(wù)達(dá)到更好的響應(yīng)效果?基于這些內(nèi)部數(shù)據(jù)庫運(yùn)維的沉淀,我們提供智能化運(yùn)維系統(tǒng),就是生命周期管理、智能運(yùn)維和調(diào)優(yōu)手段提供全套的平臺。
底層就是異構(gòu)數(shù)據(jù)庫遷移的替換過程中需要的不同工具,包括剛才說的智能管家以及SQL開發(fā)的工具。
我們的數(shù)據(jù)庫能力包括高可靠和高可用,這些是數(shù)據(jù)庫必須具備的,另外就是數(shù)據(jù)庫分布式架構(gòu)和性能。騰訊云TDSQL前不久剛拿下全球TDCC榜單,我們已經(jīng)打破兩年前的紀(jì)錄,現(xiàn)在已經(jīng)達(dá)到全球TDCC的第一。我們通過更低的成本,TDCC的指標(biāo)就是每次計(jì)算消耗的成本量更低,我們是降低了一半。我們不僅僅是承擔(dān)數(shù)據(jù)庫,需要對使用者友好,我們啟動智能運(yùn)維管理能力。我們在企業(yè)安全的數(shù)據(jù)庫層面不能再讓企業(yè)操心,整體來說可以從應(yīng)用系統(tǒng)、數(shù)據(jù)傳輸系統(tǒng)、數(shù)據(jù)分析系統(tǒng)更加進(jìn)一步增強(qiáng),數(shù)據(jù)庫系統(tǒng)搭建自有的安全合規(guī)數(shù)據(jù)安全能力。
有了國產(chǎn)化數(shù)據(jù)庫,怎樣進(jìn)行替換?我們把這些能力跟已有的核心系統(tǒng)進(jìn)行替換,我在交流的過程中,很多企業(yè)提到一個問題,原來已經(jīng)購買很多X86服務(wù)器,現(xiàn)在進(jìn)行國產(chǎn)化替換,需要換成鯤鵬服務(wù)器和海光服務(wù)器,成本到底怎么承接?兩部分的資源池怎么使用?后面的資源浪費(fèi)能不能提效?避免原有的資產(chǎn)受損?我們最新發(fā)布這樣一個能力,就是可以把X86資源池和信創(chuàng)國產(chǎn)化的資源池同時部署,現(xiàn)在還有X86服務(wù)器,可以用X86服務(wù)器,也可以新建信創(chuàng)資源池,同一個集群通過數(shù)據(jù)復(fù)制在兩個不同的資源池實(shí)現(xiàn)并行。達(dá)到一定程度以后,我們把整體業(yè)務(wù)完全切到信創(chuàng)資源池,達(dá)到核心系統(tǒng)從上到下全部的國產(chǎn)化。
我們有一云多芯產(chǎn)品能力,實(shí)現(xiàn)業(yè)務(wù)雙軌并行,按需切換。
再說一個難點(diǎn),也是我跟客戶實(shí)際交互的過程中遇到的挑戰(zhàn)。剛才說的可能都是新建的業(yè)務(wù)系統(tǒng),我們還有很多年前的業(yè)務(wù)系統(tǒng)的創(chuàng)建。需要面對歷史的Oracle系統(tǒng)替換,現(xiàn)在看來真的還是挺難的。Oracle本身語法特性比較多,幾十年前的開發(fā)是把大量的業(yè)務(wù)邏輯應(yīng)用在數(shù)據(jù)里面。很多邏輯雖然是Java系統(tǒng),但調(diào)用的時候是通過Oracle SQL,1個系統(tǒng)大概有300萬行SQL,完全運(yùn)行在Oracle數(shù)據(jù)庫,我們進(jìn)行替換的話不僅僅是承載數(shù)據(jù)層面,而是承載整體業(yè)務(wù)系統(tǒng)的替換。代碼量比較大的話,我們在業(yè)務(wù)測試的過程中需要更加仔細(xì)。我們的解決方案就是內(nèi)容層面做到語法兼容,性能層面做到形神兼?zhèn)?,樣子兼容不夠,性能上也要和Oracle一致。我們的使用習(xí)慣也要進(jìn)行兼容,因?yàn)楹芏喽际荗racle時代過來的研發(fā),一下子切換的話很多習(xí)慣不同,需要盡可能勁敵學(xué)習(xí)成本。
再來看一看我們的幾個系統(tǒng)案例。
政務(wù)云的案例是新建系統(tǒng),整體全面按照國產(chǎn)化的技術(shù)實(shí)現(xiàn),應(yīng)用層面和數(shù)據(jù)層面全面替換,進(jìn)行單元化改造,業(yè)務(wù)單元化+數(shù)據(jù)庫單元化。
保險行業(yè)的案例是將近十五年的老系統(tǒng),而且還在持續(xù)迭代,相信在座的各位也有很多類似的系統(tǒng),數(shù)據(jù)量很大,代碼量也很大。我們要求做到業(yè)務(wù)不動,因?yàn)槔洗a已經(jīng)找不到誰來幫忙更新,我們做到數(shù)據(jù)庫層面的兼容和替換。
兼容性測試通過以后,大部分不兼容的都是通過數(shù)據(jù)庫內(nèi)核進(jìn)行兼容,40%是通過剛才說的應(yīng)用層面進(jìn)行兼容,可能還有1%不到的點(diǎn)需要業(yè)務(wù)真正小改一下。
最后講一講我們的生態(tài)策略,我們希望跟合作伙伴共創(chuàng)國產(chǎn)數(shù)據(jù)庫的市場,也有行業(yè)ISV合作伙伴,騰訊提供產(chǎn)品加上合作伙伴共同提供服務(wù)的方式,但我更想講的還是這一頁,所以稍微花點(diǎn)時間把后面TDSQL的生態(tài)策略跟大家進(jìn)行簡單的分享。
我們也有看到數(shù)據(jù)庫的整體推廣,但從數(shù)據(jù)庫廠商來說,不僅僅是要把產(chǎn)品賣給大家,更希望能夠把整體數(shù)據(jù)庫技術(shù)讓每個客戶都實(shí)現(xiàn)自主可控,建立自己的數(shù)據(jù)庫的運(yùn)維和技術(shù)團(tuán)隊(duì)。我們也可以跟企業(yè)客戶去做定向開源,因?yàn)樯鐓^(qū)開源是一部分,當(dāng)然還有很多核心能力放在商業(yè)版,我們也可以定向開源給商業(yè)客戶,如果有自己的運(yùn)營和研發(fā)能力可以拿到核心代碼能力進(jìn)一步學(xué)習(xí),甚至定義自己自有的數(shù)據(jù)庫平臺。當(dāng)然,有些客戶已經(jīng)開始跟我們進(jìn)行類似的合作,不僅僅是我們推動國產(chǎn)數(shù)據(jù)庫的替換,而是由企業(yè)內(nèi)部自驅(qū)的信息部門推動自有的國產(chǎn)化替換,能夠?qū)ψ约旱臄?shù)據(jù)庫技術(shù)做到自主可控,提升數(shù)據(jù)庫研發(fā)、運(yùn)維和服務(wù)的能力。
可以看到現(xiàn)在我們已經(jīng)把行業(yè)客戶放在最上面,最下面就是前幾年公有云的客戶衍生的游戲、政企的客戶,自上而下都是整體客戶的演進(jìn)。