臺企銀近年翻新網銀系統,先用容器化技術取代單體式架構,重練系統,接著還要導入微服務技術,提升高使用量應用的執行效能。

圖片來源: 

紅帽

銀行業為提升數位服務支援力,近年紛紛擁抱新技術,像是容器、微服務架構等,來加快服務上線時間,連主要提供中小企業金融服務的臺灣中小企業銀行(簡稱臺企銀),也不例外。

近日,臺企銀對外分享過去3年,資訊團隊導入容器化技術的經歷,更預告接下來還要採微服務方式部署新系統,還有微服務化使用量大的既有應用,來提升應用的執行效能。

臺灣中小企業銀行資訊部襄理周聖鈞點出,促使臺企銀導入容器化技術的關鍵是,全面翻新網路銀行的決策。臺企銀網銀原採單體式架構建置,造成IT時常遭遇工作效率不彰的一些狀況。

譬如說,為符合銀行資安監理要求,IT團隊每年須針對網銀系統,進行數次資安檢查和評估,包含弱點掃描、滲透測試、參數檢核,還有部署更新檔。周聖鈞表示,傳統單體式架構下,臺企銀網銀系統有4臺伺服器,IT需花費很多人力和時間,分別為4臺伺服器進行資安修補的動作。

另外,每當臺企銀舉行高度宣傳的行銷活動,IT團隊為緩解伺服器承受的高負載流量,會遭遇系統擴充的挑戰,需耗費數小時調整相關設定,才能擴充資源。周聖鈞直言,在傳統網路伺服器架構下,要擴充系統資源,「不容易。」

他回憶團隊曾處理的一場行銷活動的經過。當天活動一開跑,大量人流瞬間湧入系統,導致系統出現反應遲緩的狀況,即便IT團隊不久後找到促使系統運作變慢的瓶頸,但他表示,要擴充系統,並無法這麼快速。

IT團隊需調整各項系統架構的設定,除需開通防火牆,還需調整網路伺服器、交換器等,花了約2小時,才成功將系統資源從4臺VM擴充至8臺,緩解那次活動的系統負載量。他表示,因資安檢查、資源擴充等面向的問題,促使臺企銀決定翻新網銀系統。

由於網銀系統涉及多種業務,串接多個業務系統,包含臺幣、外幣、基金、黃金等,非常龐大,臺企銀資訊團隊與管理高層經好一段時間討論,才拍板決定新系統建置要採用的技術,那就是容器。

臺企銀期望藉由容器技術具備的彈性、輕便等特性,提升網銀服務的作業效率,2019年時,正式展開容器化技術的導入旅程,打掉網路銀行舊系統,用容器化技術重練新網銀。

容器化網銀系統上線初期,IT遭遇各種容器效能不彰問題:笨重、無法自動擴充、重啟慢等,遂進一步導入管理平臺

然而,容器化網銀系統上線初期,IT團隊缺乏管理、使用容器的經驗,也欠缺有效的容器管理工具,所以,很長一段時間,處於摸索學習階段,也遭遇許多容器使用效率不彰的狀況。

周聖鈞回憶系統上線時,當時所用的容器相當笨重,大小高達好幾百MB外,用量大的容器更占據近2G的記憶體量。他表示,因容器笨重、尺寸大,一臺VM可放入的容器數量也有限,當時反而沒有享受到高密度的容器特性。

此外,臺企銀網銀系統容器無法自動擴充,缺乏擴充性,而效能方面,重啟容器時,也不如其他採用容器技術的金融業者,能夠以秒計算重啟時間,而是以分鐘為計算單位。

維運方面,臺企銀使用原生Docker導入容器技術,並採用Docker自行開發的容器調度工具Swarm管理容器,而遭遇容器分散不同VM的狀況,導致IT維運團隊管理容器時,必須進入每一臺VM查找Log,以下指令方式取得資訊,才能找出容器的問題,來排除狀況,效率相當不佳。

相對傳統單體式系統架構,容器技術具有的輕便、彈性、高密度、自動擴充、高效能等特性,周聖鈞直言,網銀系統上線初期,臺企銀一個特性都沒有享受到。

因遭遇上述問題,臺企銀發覺須導入全面性的容器管理工具,從單一平臺管理、維運和監控容器,才能真正獲得容器技術的特性,提升網銀系統的作業效率。評估多個容器管理平臺後,選擇導入紅帽OpenShift。

周聖鈞表示,透過OpenShift網頁版管理介面,IT人員可以監控每一個容器的資源使用狀況,包含CPU、記憶體,甚至是網路頻寬,他提到,過去人員查找Log需花非常多時間,從登錄各個VM取得Log,再排列Log的時間序列,才能釐清問題,現透過網頁管理介面可快速找到各容器的Log資訊,進而排除問題。

此外,臺企銀還利用OpenShift實現系統自動擴充力,周聖鈞提到,當行銷活動開跑後,客戶湧入網銀使交易量變大時,OpenShift會監控容器的負載量,一旦發現容器資源不敷所需,會自動擴充容器的資源,他更認為,自動擴充力是導入OpenShift幫助最大之處。

IT團隊現不需為網銀系統每一次的資源擴充動作,調整交換器、防火牆等元件的設定,只需事先設定好OpenShift的ingress等物件,就可以實現系統自動擴充能力。

微服務化網銀高度使用應用,提升系統運作效能

有了單一容器管理平臺,可監控應用程式的運作狀況後,下一階段,臺企銀想進一步朝微服務化應用邁進。

其實,臺企銀內部討論網銀新系統時,就曾討論採微服務架構技術,建置網銀系統的可能性,周聖鈞表示,當時,團隊考量網銀系統龐大,如果直接跳到微服務,會面對許多難題,他坦言:「我們沒有勇氣這麼做。」

他進一步說明,微服務架構雖可為系統環境帶來很多好處,但開發和建置過程相對容器架構複雜,他舉例,需適當切分有關聯性的業務邏輯,還需解偶資料、確保資料具一致性等,這些都需花費相當高的成本,包含時間、技術,還有人力,才可以實現微服務架構。

所以,臺企銀那時沒有一口氣採用微服務架構,建置新網路銀行系統,選擇以漸進方式進行,讓網銀先走向容器化,再慢慢轉變為微服務架構。

臺企銀決定分進推進系統微服務化工程,首先,鎖定笨重、效能較差的容器,要抽出這些容器裡經常改變或常用的應用、服務或API,比如說,銀行顧客最常使用的登錄功能,來進行微服務化工程,提高容器的效能。

自行開發IT應用需求上升,將導入敏捷開發文化,加快應用上線時間

微服務化系統應用後,臺企銀還要導入敏捷式開發文化,強化自有開發能力。周聖鈞提到,過去臺企銀系統多半採委外開發、自行維運的模式,但這幾年自行開發的比例越來越高,而且資訊需求的開發時程也越來越短,他表示,有時甚至隔周就需上線,像是近期開發的五倍卷系統,從開發到上線不到一個月,且上線後仍需不斷調整。

有感自行開發比例變多,開發時間又縮短,臺企銀開始琢磨要導入敏捷式開發,希望透過流程化管理工具,比如說Jenkins,串接各項流程,從版本控制、原始碼檢測,到壓力測試、部署,把既有人工開發流程串起來,縮短應用程式上線時間。

優化應用程式品質,還有加快應用上線時間,是臺企銀的長期目標,然而,這並不容易做到,周聖鈞表示,這牽涉業務單位、系統需求單位,還有程式開發人員,他強調,需調整人員的觀念,還有調整開發人員的工法,才能夠讓應用程式開發更優質,加快上線速度。

熱門新聞

Advertisement