2022年2月25日晚10點
上線倒計時9天,愁云慘淡路在何方
日落月升,喧囂的城市,逐漸歸于寧靜。
此刻,S市M大樓依舊燈火通明,作為X項目開發(fā)商項目經(jīng)理的我,還在為項目的如期上線緊張地忙碌著。離上線僅剩最后9天的關(guān)鍵時刻,依舊問題頻出,這令我們團隊的每個人都憂慮萬分。
X項目的主體是S市關(guān)鍵政務(wù)系統(tǒng),該系統(tǒng)由我司承擔(dān)搭建并維護,為全市上萬個政務(wù)用戶提供服務(wù),其業(yè)務(wù)高峰期并發(fā)會話量超過1000個,涉及多個應(yīng)用和幾十個Oracle數(shù)據(jù)庫,整個項目錯綜復(fù)雜,難乎其難。目前我們計劃對X項目的所有業(yè)務(wù)系統(tǒng)進行升級遷移,將原本基于Oracle運行的業(yè)務(wù)系統(tǒng)統(tǒng)一遷移到S市大數(shù)據(jù)中心的國產(chǎn)云平臺上運行,底層數(shù)據(jù)庫使用KingbaseES數(shù)據(jù)庫。簡而言之,我們需要對業(yè)務(wù)層及數(shù)據(jù)層重新開發(fā)和整合,使相關(guān)業(yè)務(wù)系統(tǒng)及業(yè)務(wù)數(shù)據(jù)向統(tǒng)一服務(wù)平臺遷移。
整個項目工期緊迫且工作量龐大。根據(jù)計劃,我們需要在3月6日前完成系統(tǒng)的整體遷移工作,確保系統(tǒng)在3月7日早上8點正式上線后,政務(wù)用戶能夠正常使用,并且新系統(tǒng)能夠順利支撐業(yè)務(wù)高峰期。
我負責(zé)S市政務(wù)系統(tǒng)遷移升級項目的整體統(tǒng)籌工作,雖然前期已投入大量人力物力趕工應(yīng)對,但項目整體進度依舊差強人意,目前系統(tǒng)的關(guān)鍵應(yīng)用依舊處于開發(fā)調(diào)試階段。
根據(jù)應(yīng)用開發(fā)人員的最新反饋,擋在我們面前的,主要是這2座大山:
1.為驗證新系統(tǒng)上業(yè)務(wù)是否可以正常運行,每開發(fā)一個新功能,就需要同時在新舊兩個系統(tǒng)上驗證數(shù)據(jù),耗費了雙倍的時間;
2.存量數(shù)據(jù)龐大,停機窗口期無法完成系統(tǒng)遷移上線;
系統(tǒng)上線在即,這2座大山的存在給項目帶來了極大的風(fēng)險。
然而,一波未平,一波又起,正當(dāng)我們?yōu)槿绾慰邕^那2座高山而頭疼時,項目協(xié)同會上的新需求,仿佛成為了壓垮我們的最后一根稻草。
3.客戶對新系統(tǒng)上線后的穩(wěn)定性存在顧慮,要求在新系統(tǒng)上線后,舊的業(yè)務(wù)系統(tǒng)依然可用,因此,要將新系統(tǒng)上新增數(shù)據(jù)實時的轉(zhuǎn)移到舊的系統(tǒng)上。這是我們從未考慮的的問題,不論是從技術(shù)層面還是方案層面,我們都毫無頭緒。然而,該項目是S市的關(guān)鍵政務(wù)系統(tǒng),事關(guān)民生,事關(guān)大局。按時完成是底線,不容有失!
車到山前必有路,前一段時間在數(shù)據(jù)庫產(chǎn)業(yè)峰會的經(jīng)歷,讓我認識了金倉數(shù)據(jù)同步產(chǎn)品KingbaseFlySync(簡稱KFS),基于KFS的解決方案似乎可解我的燃眉之急。在與項目組成員簡單地溝通及討論后,便緊急致電KFS的H經(jīng)理尋求幫助。
電話接通,H經(jīng)理便感受到了我的急切與憂慮,在得知我的困境并聽取我的訴求之后,立即針對我的需求初步的給出了基于KFS的3道錦囊妙計,并表示次日一早便可攜方案及人員親臨S市,為我出謀劃策。
2022年2月26日早8點
第1計|KFS數(shù)據(jù)集中,力保開發(fā)調(diào)試高效推進
東方將白,作為應(yīng)用開發(fā)商的我們、客戶和金倉KFS三方人員便齊聚項目所在地,多方共同溝通X項目技術(shù)方案。身處現(xiàn)場,客戶對項目能否按時保質(zhì)完成的擔(dān)憂和顧慮令我壓力倍增。但KFS的鼎力相助令我多了份底氣,當(dāng)即向客戶表示將只爭朝夕,全速推進項目,確保項目質(zhì)量和進度。
時間緊、任務(wù)重,我迅速進入工作狀態(tài),重新梳理開發(fā)計劃:
當(dāng)前,新系統(tǒng)仍處于開發(fā)調(diào)試階段,經(jīng)常涉及表結(jié)構(gòu)和表數(shù)據(jù)的更改。開發(fā)人員需要在開發(fā)環(huán)境完成所有修改驗證后,再將新功能手工同步到生產(chǎn)環(huán)境當(dāng)中。
由于業(yè)務(wù)系統(tǒng)的復(fù)雜性,項目開發(fā)人員就有200多名,常用的業(yè)務(wù)表更高達7000+個。通常一個功能的開發(fā)涉及到十多個業(yè)務(wù)表的更改,開發(fā)人員將這些修改同步到生產(chǎn)庫中,少則20分鐘,多則幾個小時,常常令開發(fā)人員叫苦不迭。更有甚者,一個表經(jīng)常被多個開發(fā)人員同時修改,手動同步到生產(chǎn)環(huán)境時,還需要開發(fā)人員進行再次確認核實。修改的數(shù)據(jù)多了之后,再向生產(chǎn)庫同步時,很難找到哪些是新增的數(shù)據(jù),哪些是原有的。畢竟在上千萬條數(shù)據(jù)中找到自己需要的,猶如大海撈針,難度可想而知。
按照此般現(xiàn)狀,至少還需15天才能完成應(yīng)用開發(fā)調(diào)試工作,但7天后的系統(tǒng)切換是用戶給定的最后期限!
這種局面令我心亂如麻,好在,KFS產(chǎn)品的H經(jīng)理在了解問題的關(guān)鍵點所在之后,適時拿出了第1計“KFS數(shù)據(jù)集中方案”。
在KFS工具介入后,我們開發(fā)人員在開發(fā)環(huán)境修改的表結(jié)構(gòu)和數(shù)據(jù)能夠?qū)崟r地同步到生產(chǎn)環(huán)境中。并且,應(yīng)用開發(fā)人員在提交修訂后,可以在生產(chǎn)庫中立即看到新功能的效果。避免了一次修改、多次重復(fù)操作的問題,也解決了在海量數(shù)據(jù)中篩選所需數(shù)據(jù)耗費大量時間的問題,還極大地縮減了項目整體人力成本。
3月2日晚8時,在全體應(yīng)用開發(fā)人員緊鑼密鼓的攻堅克難之下,在KFS產(chǎn)品的大力支持之下,我們在客戶期望的時間節(jié)點之內(nèi),提前2天,完成了新系統(tǒng)的開發(fā)和調(diào)試!
2022年3月3日早8點
第2計|KFS平滑上線,零停機助力系統(tǒng)遷移上線
在與時間賽跑,成功翻越了第1座大山之后。我們來到了第2座大山的腳下。
由于客戶的業(yè)務(wù)是面向全市的政務(wù)用戶,因此留給業(yè)務(wù)的上線窗口期只有周六周日2天。畢竟對于政務(wù)系統(tǒng),每多停機一天,造成的損失都不可估量。
然而,客戶的應(yīng)用系統(tǒng)為分布式架構(gòu),涉及的業(yè)務(wù)數(shù)據(jù)庫眾多,舊的Oracle庫共幾十個,存量數(shù)據(jù)高達20T+,數(shù)據(jù)量異常龐大。基于我們項目組現(xiàn)有的方案評估下來,完整的數(shù)據(jù)遷移至少需要4天,如果加上遷移后的系統(tǒng)調(diào)試,所需時間還會更多。如何與時間賽跑,在用戶給定的停機窗口期內(nèi),完成系統(tǒng)的遷移上線,是我們無法破解的難題。
畢竟,在如此短的時間內(nèi),完成數(shù)據(jù)的遷移和新系統(tǒng)的調(diào)試,就好比“短時間”內(nèi)給正在行駛中的汽車“換輪胎”一般,是一項巨大的挑戰(zhàn)。
但提前完成的新系統(tǒng)開發(fā)和調(diào)試,為我們此刻的遷移工作爭取到了充足的準(zhǔn)備時間。在充分研究項目的歷史數(shù)據(jù)之后,H經(jīng)理獻出了“基于kfs的不停機遷移”這第2計,在深入探討該方案在本項目中應(yīng)用的可行性后。
最終,我們引入KFS不停機遷移的能力,零停機,將舊的業(yè)務(wù)系統(tǒng)中的所有存量數(shù)據(jù)和增量數(shù)據(jù)完整地遷移到新的業(yè)務(wù)庫當(dāng)中。
2022年3月5日早8點
第3計|KFS雙軌方案,新老系統(tǒng)間平滑切換
系統(tǒng)上線的問題解決后,新的挑戰(zhàn)接踵而至!
由于客戶對新系統(tǒng)上線后的穩(wěn)定性存在顧慮,要求在新系統(tǒng)上線后,舊的業(yè)務(wù)系統(tǒng)依然可用。這就意味著,我們需要將新系統(tǒng)上新增數(shù)據(jù)實時地轉(zhuǎn)移到舊的系統(tǒng)上。
如何將上線后KingbaseES中的增量數(shù)據(jù)給同步到原Oracle數(shù)據(jù)庫中呢?項目組成員提出采取每天定時遷移的方式。但仔細論證一番后,發(fā)現(xiàn)篩選增量數(shù)據(jù)難、大數(shù)據(jù)量遷移耗時龐大等問題無法回避,該方案根本不現(xiàn)實。
天無絕人之路,正在大家一片焦頭爛額之時,H經(jīng)理拋出了第3計“KFS雙軌方案”。
通過KFS雙軌方案,在上線后一鍵更改同步方向,將新業(yè)務(wù)系統(tǒng)中產(chǎn)生的數(shù)據(jù)實時同步到原Oracle數(shù)據(jù)庫,以此避免開發(fā)人員每日對新增數(shù)據(jù)的篩選、搬遷等重復(fù)工作;同時也保證了不論新系統(tǒng)是否穩(wěn)定運行,舊系統(tǒng)中的數(shù)據(jù)都是完整可靠的。最大限度地保證了用戶業(yè)務(wù)運行的連續(xù)性,減少因故障帶來的損失。
應(yīng)用KFS雙軌方案之后,新系統(tǒng)數(shù)據(jù)將會實時回寫到原Oracle數(shù)據(jù)庫中作為災(zāi)備,全面消除了客戶對新系統(tǒng)故障的顧慮。
海到天邊天作岸,山登絕頂我為峰!就這樣,第3座大山也被我們征服。 3月7日,到了檢驗戰(zhàn)果的時刻。從早上7點起,我們就開始監(jiān)控整個系統(tǒng)的運行狀態(tài),一直穩(wěn)定運行到到晚上6點。為X項目交出圓滿的答卷:
可以看到,無論是業(yè)務(wù)高峰期還是系統(tǒng)維護期,KFS始終以高吞吐、低延遲的同步能力保障服務(wù)的穩(wěn)定運行;幫助我們翻過了這3座大山,經(jīng)受住了這次困難的檢閱。
小結(jié)
歷經(jīng)9天的奮戰(zhàn),X項目終于順利上線,并平穩(wěn)運行。即使在業(yè)務(wù)高峰期,性能依舊強勢,令客戶交口贊譽。
在此次項目中,我不止要感謝我的項目組成員夜以繼日的奮戰(zhàn)和攻堅克難。我更要感謝KFS的3道錦囊妙計。KFS的數(shù)據(jù)集中和不停機遷移不僅極大地節(jié)省了我們項目上線前的開發(fā)人工投入,縮短了項目上線周期,還減少了客戶服務(wù)停止時間,令我們的項目得到客戶充分認可和肯定。此外,雙軌并行規(guī)避了上線失敗的風(fēng)險,大大縮減了后期運維成本,數(shù)據(jù)同步全自動,數(shù)據(jù)校驗全自動。
KingbaseFlySync助力應(yīng)用系統(tǒng)平穩(wěn)升級,你也值得擁有!