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