作者 | 褚杏娟
近年來,雲原生轉型已成為眾多企業關注的焦點,中泰證券也不例外。但中泰證券的雲原生轉型面臨著很大挑戰。
中泰證券的軟體架構非常複雜。除了傳統架構,還有一些自行研發的雲原生架構、獨立框架以及獨立的 C++ 框架等,雲原生架構的比例較低。資料庫方面同樣如此,內部資料庫類型繁多,Oracle 占了 30%,此外還有 MySQL、SQL Server 等等。過多的技術棧,各種架構交織在一起增加了轉型難度。
中泰證券金融科技委員會主任兼科技研發部總經理何波在「2023 網易數帆城市行」大會上,分享了自己做雲原生轉型的過程。面對複雜的技術棧,中泰證券的技術團隊的策略是將技術的複雜性與業務研究的複雜性分離。「通過標準化技術,我們可以將技術複雜性下沉,從而更多地關注業務複雜性,減少處理技術細節的時間和精力。」何波表示。
轉型過程
從軟體工程的演進來看,架構逐漸複雜,但基本原則一直清晰:低耦合、高內聚。通過不斷將複雜性標準化下沉至基礎框架,可以更好地實現從作坊式向工業化的轉變,從而應對更加複雜的體系。
中泰證券在構建微服務體系的過程中,經歷了技術選型、技術驗證、引入開源實現及完全自研等一系列的過程。對於技術選型,中泰證券不希望重複發明輪子,也不希望完全受制於開源的實現,所以在技術選型時遵循如下原則:
在雲原生轉型過程中,中泰證券按照一系列明確的步驟進行了架構的遷移,其中一個關鍵舉措是將應用與環境進行解耦。中泰證券需要逐步將原有的粗放式架構層層拆分,將其中台化。新自研項目除少數性能敏感的系統外,全部採用微服務架構;傳統架構根據業務分類分組按需進行服務拆分改造;異構系統按需做服務適配,以 API 形式提供服務,保護投資,復用能力。
通過微服務的轉型,技術團隊成功將研發工作從上層抽離出應用和環境,也解決了過去部署過程中常見的配置文件和環境問題。藉助 Kubernetes(K8s),團隊成功實現了配置與環境的解耦。目前,中泰證券已經成功在 17 個 K8s 集群上運行了 2000 多個 pod。
應用和環境解耦後,接下來就是應用和配置的解耦。在傳統的開發模式中,許多應用都含有大量的配置文件,有時甚至會將配置存儲在資料庫中。然而,這種做法在軟體的配置、交付和上線過程中經常導致問題,因為不同環境中的配置可能不同。但實際上,應用本身與配置是沒有直接關聯的。按照雲原生原則,中泰證券將配置轉移到環境變量中,並通過配置中心進行管理,成功將應用與配置解耦,使得測試環境和生產環境中的應用完全一致,避免了配置文件引起的問題。目前,其已經建立了 4 個配置中心,涵蓋了 80% 的自研項目。
中泰證券的另一個重要改進是將中間件進行 PaaS 化。團隊採用了網易數帆輕舟雲原生平台作為中間件的資源池,將資源的管理從單個應用下沉到資源池中,避免了每個應用獨立構建這些中間件。無論是 Redis、Kafka 還是多達 40 種不同版本的 MySQL 資料庫,都被納入了這一 PaaS 化的管理中。
金融機構的資料庫存儲量是很大的。為了提高維護性和升級的便捷性,中泰證券對資料庫進行輕量化處理,摒棄存儲過程,回歸到分布式資料庫存儲。這樣,架構不僅保障了數據的完整性,還將大部分業務邏輯下沉到應用層,資源層的 PaaS 化也為外部提供了便利。此外,中泰證券對製品庫進行了全面的管理,實現了統一的交付渠道。
安全建設
技術發展過程中,建立一個更加安全和高效的治理體系至關重要。而中泰證券主要面臨著技術棧多樣性的挑戰,涵蓋了註冊發現、配置中心、底層資料庫、PaaS 等。
對於安全問題,中泰證券的技術團隊認為,最關鍵的是要能夠及早暴露出故障率。除了前述的技術棧,確保良好的監控和可觀測性顯得尤為重要。在實際操作中,技術團隊需要明確監控的程度,確定哪些指標有意義、哪些無意義,並對衡量標準作出充分考慮,避免系統出現問題時倉促採取行動。
因此,中泰證券非常重視混沌工程的實踐,通過模擬紅藍軍演練,在系統中引入破壞並嘗試恢復,從而更快地發現潛在故障。在這個過程中,技術團隊進行了攻防演練,涵蓋了大量故障處理,包括基礎故障、CPU、內存使用率、磁碟使用率、中間件問題、MySQL 異常等。這一實踐在某二級部門中得以應用,涉及到 20 多個業務場景、100 多個混沌場景以及 300 次的演練,有力保障了業務的運行。
接下來,中泰證券進入安全工具的應用階段,通過代碼掃描等安全工具,在 CICD 安全環節中加入了更多的監測。此外,無論是常規發布還是緊急發布,安全門禁都被置於產品的每個關鍵點,以確保發布和審核的安全性。
結束語
為了評估轉型效果,中泰證券對資產進行了分類:實用資產和戰略資產,實用資產包括伺服器、網絡、財務系統等,戰略資產包括企業用來向客戶提供產品或服務的工具,可以形成差異化競爭優勢。去年,中泰證券的戰略資產占比為 20%,如今已提升至 28% 左右。
總體而言,雲原生轉型帶來了研發質量和效率的提升。通過減少重複勞動和不必要的開發,中泰證券實現了研發效率的增加。測試能力的提升以及自動化測試平台的使用,也節省了大量的測試時間,大幅度降低了測試成本。
何波還表示,中泰證券最近也在嘗試用大模型自動生成代碼、自動化測試等,希望開發人員可以聚焦在寫業務代碼上,並且通過雲原生改造真正把技術沉澱下來,變成一些標準化的東西使用。
目前,中泰證券自研項目的研發部分完成了約 70%。「我們的目標是進行全面的雲原生轉型。」何波表示,雲原生帶來了研發質量和效率的提升,通過敏捷 IT 能力的構建,為證券業務數字化轉型加速,更好地支撐業務創新與客戶體驗提升。
點擊底部閱讀原文訪問 InfoQ 官網,獲取更多精彩內容!
今日好文推薦
GitHub 變 Twitter?強「喂」新推薦算法引公憤,開發者從「編程烏托邦」被驅趕到了信息繭房
小型開發者的生存之戰:Unity 想要我們的全部收入!我們要破產了
40 多名直接下屬、從不 1 對 1 溝通,老黃如此管理下的英偉達能在 AI 晶片領域稱霸多久?
AI 大模型熱潮來襲,看機密計算如何應對敏感數據安全挑戰