3年前,巴西最大的伊塔烏聯合銀行(Itau Unibanco)展開了雲端轉型,計畫2028年所有業務全面上雲。這間創立超過百年銀行,也是拉丁美洲最大銀行,據點橫跨18國,但有高達97%的顧客互動都在線上進行。為了支援雲端轉型,伊塔烏聯合銀行也展開了平臺工程的開發變革,要來提高一萬八千名開發人員的生產力。

先看一下他們如何展開這場IT現代化之旅,2010年時,伊塔烏聯合銀行只有一座資料中心,因應不同業務目標,而有各種不同的應用系統,其中,許多是孤島式的系統。這些系統大多在虛擬化環境中執行,不過,當時的虛擬化軟體擴充能力不強(編按:當時為ESXi 4.x版),他們也沒有一套統一的工作流程,每個AP團隊各有自己的建置做法和維運方式,自動化程度很低,每週只有進行少數的變更或更新作業,可以說,IT部門到處都是孤島。這些問題,讓開發人員要花很大的力氣來建置和維運系統,卻沒有提供很好的交付能力,直接影響了業務團隊的創新速度。

直到2018年時,他們開始建置一套私有雲平臺,來提高內部運算資源的調度彈性,巴西銀行在2018年才逐漸開放該國銀行可以使用公有雲。所以,伊塔烏聯合銀行也決定開始上雲,2020年先將少數應用系統轉移到公雲,再逐年擴大上雲範圍,經過了兩年,伊塔烏聯合銀行半數的業務服務都搬上公雲。甚至到了2024年時,業務系統上雲的比例達到了65%,他們在2025年訂出了新的目標,2028年將所有業務系統都上雲,要達成完全上雲的目標。

伊塔烏聯合銀行IT現代化時程表,目標是2028年全面上雲。(圖片來源:伊塔烏聯合銀行)

從2018年啟動上雲計畫,到2025年,八年來,重大事故的數量減少了99%,每年技術異動或更新的數量,增加了20倍,平均交易成本也減少了45%。

不只是全面上雲,伊塔烏聯合銀行的2028願景,是成為一家真正以顧客為中心的公司,從設計到部署,也都希望能有統一的開發者旅程和跨職能協作,提供一致的平臺體驗來賦能開發團隊,像是提供標準化、可信賴、容易擴充的開發者平臺,讓工程師放心發布、迭代各種新功能,和業務團隊共同創造更多的商業價值。另外,他們也希望能建立共享責任制度,更聰明的投資技術和決策,來優化成本,也能因應業務需求,擴大解決方案的規模。

為了因應金融市場的激烈競爭,伊塔烏聯合銀行希望盡可能地優化顧客體驗,推動業務轉型,他們希望工程團隊有能力支援各式各樣的應用場景,從最小可行性規模的雛形開發,到需要極高效能的大規模應用需求,都能支援,來提高跨領域創新的靈活度。

不過,伊塔烏聯合銀行的技術團隊多達18,000人,IT技術架構的規模龐大,也高度複雜,全集團上雲至今,超過65%業務系統上雲,擁有1萬個公雲帳號,程式碼分散在10萬個git儲存庫中,使用了10萬個資料庫,基礎架構所用的K8s叢集超過了2,300套。

從文化、標準化和平臺等三大面向展開開發變革

2018年開始上雲時,為了賦能18,000名工程師,伊塔烏聯合銀行採取了文化、標準化和平臺等三大面向的策略來推動變革。

在文化轉型策略做法上,伊塔烏聯合銀行發起了全球最大規模的公雲培訓計畫和內部專家自訓制度,也專注於人才的留任與招聘,重新設計了技術人員的職涯發展模式,提供更資深的技術職缺。在專案管理上,也強化以顧客為中心的思維,專注於成果導向的發展路線圖。

在標準化策略上,伊塔烏聯合銀行定義了自己的應用程式開發藍圖、技術架構和標準模組,標準化帶來的好處,不只可以強化開發者的生產力,也能提高維護和擴充能力。像是統一各開發階段所用機制的應用程式開發藍圖(Application Development Landscape)和不同類型的技術架構。所有工程團隊的開發人員必須使用開發藍圖中的工具和做法,以及技術架構中列出來的技術,不能任意安裝自己想要用的新工具。

統一應用程式開發藍圖和技術架構

這個應用程式開發藍圖,涵蓋了整個應用程式開發生命週期,各個階段的標準工具、配套機制和相關標準規格,包括了開發階段工具、測試和品管工具、建置和CI/CD工具、部署和執行環境(runtime)工具、資安和法遵工具、監控和可觀察性工具。例如在開發階段有標準化的IDE和編輯器、版本控制、封裝管理機制等,測試工具則包括了單元測試機制、整合測試機制和程式碼靜態分析工具。

在技術架構標準上,伊塔烏聯合銀行則訂定了前端技術架構,包括了Android、iOS、React和Angular框架,後端技術架構則採用Java、Kotlin、.NET和Golang語言 ,為了分析手上的海量數據,伊塔烏聯合銀行也用Python和Spark來設計了一套分析技術架構。

不同的技術架構都有提供了一套共用的標準模組或元件,方便工程團隊重複使用來加速開發,這些標準化模組例如像授權、認證、路由、快取、可觀測性、事件管理、訊息佇列等。透過模組標準化,可以降低成本,強化資安控制,更容易治理和合規管理,也更容易跨團隊合作,因為每個團隊都用同一套工具和流程。

開發者平臺聚焦五大目標

為了統整和套用上述這些工具和技術架構,伊塔烏聯合銀行打造了一套通用的開發者平臺,專注於5大目標,提升開發者體驗與生產力、加速交付與上市時間、改善安全與合規、增強擴展性與可靠性,以及成本優化。

伊塔烏聯合銀行內部開發者平臺的架構設計,包括三大類控制平面,分別是控制管理器、App控制平面和資料控制平面。(圖片來源:伊塔烏聯合銀行)

在這個開發者平臺上,還可以細分成三大類不同功能的控制機制,第一類是控制管理器(Control Manager),這是上層的管理機制,作為不同控制平面的調度層。第二類則是有不同技術類型的App控制平面(Control Planes),來負責維持某一類技術能力的運作,像是Ap控制平臺,DB控制平面等。最後一類控制平面是用來處理資料傳輸的資料控制平面(Data Planes),每一類資料控制平面的帳號,只負責管理和控制同一類資源的使用。

所有的控制平面都遵循相同的設計模式,控制管理器採取多租戶和多雲架構的設計,都是基於Kubernetes的控制管理機制,主要使用Go語言。不同的技術控制平臺,都同樣採取了分散式的多租戶架構,採用Go語言和Argo技術架構,也有同樣的組成,包含了API伺服器、排程器(scheduler)、控制器(controllers)、狀態機,資料庫控制平臺則還會多了標準的資料庫和NoSQL資料庫等。

資料控制平臺則都採取了無狀態設計,隔離架構、可按需彈性擴充,有一套自動化的生命週期管理機制,某一類資料控制平面下,會包含多個用K8s命名空間來區分的叢集,一個命名空間會具有提供一項業務服務所需要的一切功能,像是會有自己的開放API、服務網格設計、備份還原機制等

許多企業打造內部開發者平臺的目的是為了簡化開發者的認知負擔,提供抽象層的中介平臺,來簡化直接管理雲端基礎架構的複雜度。但是,伊塔烏聯合銀行的想法很不一樣,開始上雲的第一年,也就是2018年到 2019 年間,他們面臨了一個選擇,應該先將工作負載集中化後,打造出統一管理和開發的平臺,再將業務轉移到公有雲上執行,還是不先整併,讓各業務系統分別上雲,之後再建立開發者平臺來統整技術和流程?

後來,他們的決定是先訓練開發人員,要求每一個工程師都必須具備熟練的公雲技術能力,讓每個AP團隊都可以處理各種雲端架構的複雜性,後續再開始打造一套通用的開發者平臺。

熱門新聞

Advertisement