張超 劉學軍 王國環 王全江
近年來,隨著互聯網技術的飛速迭代和數字化轉型的推進,數字化系統作為企業業務發展的基礎設施之一,各企業紛紛擁抱新技術對老舊系統進行改造升級,強化對系統的自主掌控能力,與此同時,由于早期的技術方案以單點煙囪式為主,系統繁多,給老舊系統的升級改造帶來了較大的挑戰,在數字化系統的升級和改造中,通常需要系統停機、數據備份、系統遷移等操作,這些操作會帶來數據丟失、業務異常、賬務差錯、系統回退等問題,這些問題對于金融類服務系統尤其敏感。為了解決這些問題,業務不間斷架構升級改造方案應運而生。該方案可以在客戶無感知的情況下進行架構升級和改造,保證業務的連續性和數據的完整性。
中國聯通財務公司承接集團委托,將金融業務能力與科技研發能力有機結合,在財務公司行業率先以云原生技術、微服務架構體系,打造了富有聯通特色的“司庫系統及金融服務平臺”。
平臺建設初期,考慮到云原生底座的成熟度和網絡安全防護能力,為全面保障系統安全,在設計思路上,采用了“金融與非金融服務隔離”的原則,雖然在最大程度上保障了系統安全,但是其代價是犧牲了部分資源的利用率,在部署架構上,分為若干個自治集群,每個集群各自治理集群內的資源。隨著云原生底座自身能力的迭代提升,原來為保障安全而分為多個集群的部署架構在新的技術模式下,逐步暴露出資源調度靈活性不足,服務器資源使用效率降低的缺點。與此同時,在舊的架構下,每次迭代升級均面臨著系統之間交互復雜、每次均需停機維護、業務中斷、升級過程中經常回退的痛點.為進一步提高部署效率,盤活資源使用效率,提高客戶滿意度,研發團隊經過審慎調研、周密計劃,制定了詳細的融合割接方案,實現了業務不間斷前提下的多集群合并的架構升級。
(一)方案介紹
基于服務質量、數據同步、系統安全考慮,研發團隊制定出如下兩個備選方案:
1.增量式架構升級
即將架構升級分為多個步驟進行,每一步驟只合并兩個集群,測試通過后再進行下一步驟,以此類推。這樣可以降低整個架構升級的風險,避免由于一次性修改過多功能導致系統崩潰等問題。
2.基于藍綠部署的架構升級
在架構升級前,劃分為藍綠兩個區域,并在藍綠區前置負載均衡器,用于控制流量切換,其中,綠區為完全空白服務器,部署統一的云原生管理底座,后逐步將藍區內應用遷移至綠區,經過充分測試后,通過負載均衡器逐步往綠區切入流量,直至全部切換完成。
(二)方案對比
1.增量式架構升級
增量式架構升級是指將當前集群進行編號A\B\ C\D,集群前置負載均衡器,首先完成A和B集群的合并,即將B集群的應用部署至A集群,通過負載均衡器逐步將B集群的流量切換至A集群,切換完畢后B集群服務器拆除,資源并入A集群,以此類推,將C和D集群逐步合并至A集群。
本方案優點如下:
(1)分步合并降低了架構升級的整體風險,發生問題后,影響范圍可控,回退方案簡單。
(2)將整個架構升級分為多個階段進行,每個階段只修改一小部分的功能。在每個階段結束后,需要進行測試和驗證,確保該部分功能的穩定性和正確性。
本方案缺點如下:
(1)時間周期長:每次合并均需制定詳細的升級方案,步驟繁瑣,而且需要經過一定周期的測試和驗證,最終完成的時間周期長。
(2)內部調用改造方案復雜:前端負載均衡器雖然能夠分發流量,但是主要分發的是外部訪問的流量,與此同時,在微服務架構下,服務與服務之間存在大量的頻繁相互調用,屬于內部交互范疇,在集群合并并行過程中,存在同一個服務部署在不同集群內的情況,對于調用方,調用哪個服務需要預先提前指定,客觀上增加了集群合并的方案復雜度。
2.基于藍綠部署的架構升級
基于藍綠部署的架構升級方案需要劃分兩個區,一個區為當前正在運行的藍區,另一個區為升級后的綠區,其中綠區為完全空白服務器,基于統一的云原生底座,將藍區所有的應用一次性部署至綠區,從應用維度藍綠區保持完全一致,實現藍綠區雙活,同時發揮前端負載均衡器的作用,將用戶訪問流量按照訪問來源IP或訪問目標IP等策略逐步分流至綠區,直至完全切換。
本方案優點如下:
(1)通過藍綠區的方式,避免了分步合并,實施周期短。
(2)由于采用的是藍綠區雙活的方式,可以按照不同的分流策略靈活分流,引流過程中可以隨時在客戶無感知狀態下靈活回退至藍區。
(3)規避了微服務內調用的復雜度,藍區和綠區只在本區內調用。
(4)采用應用與數據分離方案,規避了數據同步的復雜度。
本方案缺點如下:
由于綠區為全新服務器,需要在當前部署架構內,將各集群內冗余服務器資源逐步拆除后部署至綠區,綠區自身服務器資源在應對業務高峰期存在困難。
(三)部署架構方案選擇
通過對比增量式架構升級方案和基于藍綠區部署架構升級方案,最終研發團隊選擇基于藍綠區部署架構升級的方案。
具體操作步驟為:劃定藍區,即原有生產環境資源所有應用服務構成的區域;劃定綠區,使用新服務器設備搭建一套全新的運行環境,部署新的k8s集群,部署一套完整的司庫系統及金融服務平臺服務構成綠區;在綠區部署完應用后,先在測試環境進行全面驗證,驗證通過后再部署到生產環境;然后在藍區部署用戶流量切換網關,藍區和綠區并行運行,通過流量切換網關控制用戶流量精準控制,部分目標用戶訪問流量切換到綠區,觀察綠區業務運行情況,有問題隨時將流量切回藍區;實施過程中數據庫、平臺中間件及容器云平臺保持一套,不涉及數據庫數據移植;為實現藍綠區并行處理,文件存儲區需進行藍綠區域共享,將業務文件從原藍區存儲轉移到藍綠共享區。
(一)實踐步驟
第一步制定升級計劃,整個實施工作分為四個里程碑階段:部署驗證期,生產環境部署期,新老環境并行期,新環境獨立運行期;第二步數據備份,實施前進行數據備份,確保業務的連續性和數據的完整性;第三步測試驗證,在完成升級改造后,進行測試驗證,確保升級改造后系統的穩定性和高效性;第四步收尾,待業務全部切換到綠區后,將藍區的服務器逐步摘離并逐步加入到綠區,同時關閉之前為架構升級開通的網絡策略。
(二)實踐結果
通過實施后的生產運行實踐,業務不間斷部署架構升級改造方案取得了良好的效果。具體結果如下:
第一,實現了應用的100%容器化云化部署,降低了運維復雜程度,減少生產環境部署類型,簡化了運維流程,降低了運維難度;實現統一運維,容器化部署使得各類應用可以在同一平臺進行部署與管理,實現了統一的運維管理,提升了運維管理效率;。
第二,提高資源使用效率,通過容器云平臺實現對計算資源及存儲資源的統一管理,優化資源取用粒度,提高資源使用效率。通過架構升級,節省物理資源1/3以上。
本文介紹了業務不間斷部署架構升級改造方案,針對現有系統升級改造過程中可能出現的業務中斷和數據丟失等問題,提出了基于藍綠部署的升級改造方案。通過實踐,該方案取得了良好的效果,確保了業務的連續性和數據的完整性,同時,該方案還可以作為后續灰度發布的基礎架構,進一步提高運維效率。
在實際業務中,業務不間斷部署架構升級改造方案具有重要意義,可以有效提升系統的穩定性和高效性,滿足業務需求,提升用戶體驗,為企業發展提供有力支持。