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



























