國產(chǎn)數(shù)據(jù)庫替代策略的探討
國產(chǎn)數(shù)據(jù)庫替代的策略問題,已經(jīng)討論了幾年了,現(xiàn)在熱度還不減。據(jù)我觀察,目前對這個問題探討最多的人是對此沒有決策權(quán)的DBA或者應用研發(fā)人員,而實際上能夠在這個問題上起決定作用的的IT高管對此的關(guān)注度并不高。不幸的是,很多企業(yè)的國產(chǎn)數(shù)據(jù)庫替代方案的決策者,也就是這些企業(yè)IT高管,實際上對數(shù)據(jù)庫并不了解,在數(shù)據(jù)庫替代策略的選擇上,就不一定很科學。對此問題,討論者也是牢騷不斷。
我這篇文章也僅僅是從科普的角度來討論一下這個問題,表達一下我的個人觀點,很可能我的觀點也會與很多企業(yè)的策略選擇不大一致。企業(yè)都有企業(yè)自己的情況,因此我的觀點也不見得適合你所在的企業(yè),因此也無需爭論,只把它當做一種觀點就可以了。
1、什么樣的企業(yè)要做數(shù)據(jù)庫國產(chǎn)化替代?
首先是什么樣的企業(yè)需要做數(shù)據(jù)庫國產(chǎn)化替代,實際上數(shù)據(jù)庫國產(chǎn)化替代要求十分嚴格的行業(yè)是黨政軍和關(guān)基企業(yè),這些單位實際上都是在管控清單里的,如果你所在的行業(yè)不屬于黨政軍,也不屬于關(guān)基企業(yè),那么在制定數(shù)據(jù)庫國產(chǎn)化替代策略的時候,是不需要十分嚴格的,可以更多考慮企業(yè)自身的情況,選擇更靈活的策略。對于有嚴格要求的黨政軍和關(guān)基企業(yè),每個垂直監(jiān)管部門的監(jiān)管要求也會有所不同,比如金融行業(yè)的監(jiān)管要求十分嚴格,要應替盡替,而某些大型國企的監(jiān)管要求要松很多,只需要關(guān)注核心業(yè)務(wù)系統(tǒng)。
某些黨政用戶經(jīng)費有限,完全購買國產(chǎn)數(shù)據(jù)庫困難較大,采取了國產(chǎn)商用數(shù)據(jù)庫替代和開源數(shù)據(jù)庫替代兩條路線齊頭并進的策略,目的就是安全可控外加省錢。監(jiān)管要求較低的企業(yè)也可以根據(jù)實際情況去選擇成本較低的替代方案。
其實現(xiàn)在有些外企也在做去O的工作,前陣子我們就幫助一家外企進行了PG替代Oracle的實施工作。這些外企一方面也是為了更好地符合政府的安全監(jiān)管要求,另外一方面也是希望能夠節(jié)約數(shù)據(jù)庫使用成本。
綜上所述,去O的單位可以根據(jù)自己的實際情況來做選擇。可以從自己總體成本考慮最佳的模式,部分使用開源數(shù)據(jù)庫來降低成本,不過為了應對今后更加嚴格的行業(yè)監(jiān)管要求,要考慮選擇今后遷移成本更低的開源數(shù)據(jù)庫產(chǎn)品。
2、數(shù)據(jù)庫國產(chǎn)化替代的策略如何選擇?
數(shù)據(jù)庫國產(chǎn)化替代是需要考慮綜合成本的,對于一些資金雄厚的大型國有企業(yè)來說,費用可能不是問題,只要能夠按照規(guī)定時間達到目標就可以了。幾年前我?guī)椭粋€大型國有企業(yè)設(shè)計數(shù)據(jù)庫國產(chǎn)化替代的策略的時候。根據(jù)系統(tǒng)的特點不同,分為三大類:1)簡單替代:對于一些非關(guān)鍵的中小系統(tǒng),選擇與Oracle兼容性較好的國產(chǎn)數(shù)據(jù)庫產(chǎn)品,快速遷移,簡單替代,盡可能不修改代碼;2)優(yōu)化改造后替代:對于大中型系統(tǒng),無法簡單替代的,選擇與Oracle兼容性較好,并且性能較好的國產(chǎn)商用數(shù)據(jù)庫產(chǎn)品(優(yōu)選集中式數(shù)據(jù)庫),在替代過程中進行優(yōu)化改造;3)升級重建時替代:對于大型核心業(yè)務(wù)系統(tǒng),不使用簡單平替的模式,而是對系統(tǒng)進行升級,重新設(shè)計,并選擇國產(chǎn)分布式數(shù)據(jù)庫進行替代。
一些大型國企實際上采取的措施和這個思路類似。某運營商簡化了一下,中小系統(tǒng)選擇與Oracle兼容性極強的達夢數(shù)據(jù)庫做平替,核心系統(tǒng)選擇與Oracle兼容性相對較好的分布式數(shù)據(jù)庫Oceanbase來替代。
實際上替代策略里有平替和改造后替代兩種方案,對于大型的關(guān)鍵業(yè)務(wù)系統(tǒng),一般來說不太建議平替的方案,趁著數(shù)據(jù)庫國產(chǎn)化替代,正好升級核心系統(tǒng)是一種比較好的方案。
某銀行選擇了GaussDB作為核心系統(tǒng)的替代產(chǎn)品。目前他們的做法是從核心系統(tǒng)中不斷剝離模塊出來,根據(jù)這些模塊的業(yè)務(wù)特點和并發(fā)情況,分別選擇GaussDB的集中式部署模式和分布式部署模式,拆出一塊改造一塊。逐漸把一個大核心分解為眾多的微核心,目前已經(jīng)拆出了十幾個模塊了。經(jīng)過分拆改造,最終的核心賬務(wù)也變得跟家簡單,規(guī)模也小了很多,目前他們已經(jīng)有信心2025年賬務(wù)核心開始雙軌制運行,以國產(chǎn)數(shù)據(jù)庫為主系統(tǒng),并逐漸過渡到單軌制運行。
3、該選擇什么國產(chǎn)數(shù)據(jù)庫?
定策略的最后一步是國產(chǎn)數(shù)據(jù)庫選型,現(xiàn)在有200多個國產(chǎn)數(shù)據(jù)庫品牌,該如何選擇呢?可以簡單把國產(chǎn)數(shù)據(jù)庫分為三大類:國產(chǎn)開源數(shù)據(jù)庫、普通國產(chǎn)商用數(shù)據(jù)庫、通過安可認證的國產(chǎn)商用數(shù)據(jù)庫。
對于監(jiān)管要求很嚴的系統(tǒng),必須選擇通過安可認證的國產(chǎn)商用數(shù)據(jù)庫,什么是通過安可認證的國產(chǎn)商用數(shù)據(jù)庫呢?這方面可能一些企業(yè)得到的信息比較亂,主要是國產(chǎn)數(shù)據(jù)庫廠商在打各種擦邊球。實際上目前對于XC工作來說,只有一個唯一的認證渠道,中國信息安全評測中心的官網(wǎng)(http://www.itsec.gov.cn/)發(fā)布的清單才是真正的XC必須遵循的清單。
圖片
目前只發(fā)布了2期清單,其中2023年第一號公告里包含了數(shù)據(jù)庫安可的清單。今年8、9月份可能會發(fā)布第二批。
圖片
大家要注意的是,在選型決策時,要考慮這個清單的有效期是三年。因此不排除兩三年后清單會發(fā)生變化。一些企業(yè)甚至可能會離開商用數(shù)據(jù)庫產(chǎn)業(yè),因此并不是簡單的從中選擇某個數(shù)據(jù)庫產(chǎn)品就可以了。前陣子一個銀行的客戶向我了解某國產(chǎn)數(shù)據(jù)庫廠商的情況,因為他們的CIO無意中了解到他們正在使用的某種數(shù)據(jù)庫的廠商正在大裁員,就通過企查查看了一下,發(fā)現(xiàn)那個數(shù)據(jù)庫廠商的登記交社保的人員不足30人。于是就吩咐他調(diào)研一下,這個數(shù)據(jù)庫產(chǎn)品是否存在風險,是否需要列入替換的計劃中。
分布式數(shù)據(jù)庫目前還不在清單中,在第二批清單里,應該包含了一些分布式數(shù)據(jù)庫產(chǎn)品。另外安可等級最高4級,目前發(fā)布的第一批都是1級,今年發(fā)布的第二批中不知道會不會有更高等級的產(chǎn)品。也不排除對于關(guān)基系統(tǒng),有更高級別的要求,因此選型決策還是要更加慎重。
前面也談到了,對于監(jiān)管要求沒有那么嚴格的單位,為了節(jié)約總體成本,在一些安全性要求并不很高的系統(tǒng)中使用開源數(shù)據(jù)庫也是可以的。不過為了防止不斷嚴格的監(jiān)管要求,在選擇國產(chǎn)開源數(shù)據(jù)庫的時候也要十分慎重。選擇PG系列或者openGauss等開源數(shù)據(jù)庫今后風險較小。如果今后必須改用國產(chǎn)商用數(shù)據(jù)庫,遷移成本也相對較低。對于基于MySQL的國產(chǎn)開源數(shù)據(jù)庫的選擇要更加謹慎一些。如果某些企業(yè)習慣于使用MySQL,不想選擇其他的技術(shù)路線,其實也是可以的。如果今后必須替換國產(chǎn)商用數(shù)據(jù)庫,可以選擇TiDB、Oceanbase等與MySQL協(xié)議兼容的開源數(shù)據(jù)庫,達夢、GaussDB、金倉等國產(chǎn)數(shù)據(jù)庫也都做了MySQL兼容,不過遷移起來略微麻煩一些。