聯合智網副總經理 劉丕凱 (圖片來源/聯合智網)

5月7日這個平凡的周五夜晚,對聯合智網技術團隊來說,特別重要。多數員工都下班了,唯有軟體研發、產品規畫和系統管理三大技術部門,一同在辦公室待命,準備在周六凌晨展開近48小時馬拉松式的上雲工程,他們準備將旗下電商平臺Udn買東西購物中心(簡稱Udn買東西)部署在本地端機房的系統,全面搬上公有雲。

「上雲不是部署上去,就完成的工程,」掌管技術部門的聯合智網副總經理劉丕凱表示,這是一場長達數十小時的硬仗。

甚至早在上雲之前,技術團隊已花了9個月時間縝密規畫。劉丕凱解釋,上雲不像是搬家,把東西搬過去、歸位就好,系統本身也需要發展成現代化的應用程式。因此,光是在規畫之初,團隊就進行了多次的實驗,直到非常熟練,才擬定整體計畫,再實際進行工程。

從系統程式調整,如語法、結構等,都要符合雲端環境的基礎架構,到訂定系統回復機制,萬一失敗還能還原到先前本地端部署的做法,都花了一番功夫,更進行了不下3次的大規模演練。

最後一步,聯合智網技術團隊特別選在流量較低的周六凌晨夜裡進行。周末兩日,整體團隊都繃緊神經,持續監控每一個搬遷環節,確認平臺上雲後,正常營運。

其實,這不是聯合智網第一次接觸雲端部署架構,2019年時已開始嘗試在公雲,小規模地部署電商平臺的周邊系統,像是圖臺系統等。「若一開始就把這麼大系統拉上去,我們會害怕,」劉丕凱坦言,團隊過去沒有上雲經驗,所以,先將周邊且獨立的系統上雲,一方面實驗,一方面累積經驗,等到時機成熟再展開大規模搬遷工程。

劉丕凱永遠記得,促使聯合智網下定決心轉向雲端的那一天。2018年11月11日,電商例行的年度促銷活動雙十一購物節。當日一早,還未到達活動折扣最高點,系統就開始塞車,無法順暢地接下訂單,從後端監控儀表板看到的流量,是平日的3倍,CPU負載更是超過了9成5以上。

系統架構負荷不了雙十一暴增流量,開啟雲端發展契機

劉丕凱回憶,那年雙十一前,平臺流量已明顯偏高,且持續往上增加,當日一早,伺服器的CPU承載更接近滿載。「那天印象深刻,」直到現在,他仍舊記憶猶新,流量大到連負載平衡機制也無法緩解,擔心一旦到活動最高峰11點11分,系統一定無法負荷,團隊只能想盡辦法,緊急調度所有能夠重啟的機器,來緊急支援。

這一天Udn買東西遭遇的爆量考驗,徹底改變了聯合智網工作負載的部署策略。劉丕凱表示,原有系統架構無法再負擔更大的流量了,因此決定,無論如何都要往雲端走。

隔年,聯合智網開始逐步將部署在IDC機房的主機,部分改用雲端虛擬機器來接手,先從流量大的周邊服務著手,像是圖臺系統,也就是處理商品圖片的伺服器。劉丕凱解釋,商品圖片不只占用大量空間,外部瀏覽所需的流量也很大,所以先往雲端擺。

此外,劉丕凱也從CDN服務來立商品圖檔大小的判斷機制,只要圖片檔案超過一定上限,就會利用雲端服務自動將圖檔壓縮至原先6到8成大小來減量。如此一來,劉丕凱表示,不只大幅改善網頁開啟速度,同時也能降低每月的流量成本。感受第一批工作負載上雲後帶來的效益,成了聯合智網搬遷整個電商平臺上雲的動力。

還有另一股推力,本地端機房除了硬體設備有年限和維修需求外,劉丕凱指出,團隊更擔心每年年尾編列的硬體設備採購預算,能否滿足下一年度的需求,特別是大型銷售活動,他直言,「這件情一直困擾著我們。」

因此,經審慎評估後,劉丕凱決定未來從產品部署,到軟體研發和產品規畫,全部轉往雲端環境來發展。他期望利用雲端動態部署的特性,來提升功能開發效率,也要能彈性配置運算資源。

正式進行搬遷工程前,劉丕凱除要求技術團隊研究搬遷工程的作業外,更注重回復機制的規畫和制定。他強調,上雲端,不管是搬遷過程或是上雲後發生問題,團隊都須確保平臺營運不受影響,且他知道雲服務有故障的機會,所以,他特別在意回復機制的完善性,他表示,一旦雲端發生問題,必須立刻啟用地端伺服器來支援。

經過事前精細的規畫,搬遷工程順利落幕,不過,電商平臺在上雲後的首周,還是發生了一個意料之外的插曲。業務單位反映,平臺搬遷上雲一周以來,業績下滑近1成,然而,後臺數據卻未出現異常,不管是網站流量、停留時間,還是平均客單價,技術團隊回過頭檢查每個環節,才發現原來促銷活動資訊遭程式保留在快取機制中,導致活動頁和商品頁仍是舊資訊,以致消費者進入網站後,無法瀏覽新促銷活動,而影響業績表現。

劉丕凱表示,就算過去進行數次大規模演練,仍舊會遇到無法發現的實務問題,例如這個對活動資訊程式調整的忽略。他回溯,因演練聚焦整體系統執行的流暢度,例如能否正常開啟頁面、功能是否正常運作,直至正式完成雲端部署,業績表現出現下滑,才進一步發現影響業務面的問題,所幸,這個問題不難處理,發現後一兩小時即排除。

電商平臺全面上雲後不久,就遇上全臺進入第三級疫情警戒,民眾為避免染疫減少外出,線上購物需求暴增,再加上電商年中慶活動開跑,從而訂單量、流量大增。這一個月以來,劉丕凱對工作負載全面部署雲端帶來的效益,能夠因應流量變化,來動態部署雲端資源,很有感,他表示,再加上團隊也重新檢視了平臺系統架構和流程,進行了相對應調整。

圖片來源/聯合智網

就算技術不斷推陳出新,有件事沒有改變,就是勤練基本功,降低程式碼獨立的執行路徑數量就是軟體研發基本功。── 聯合智網副總經理 劉丕凱

分三階段改造Udn買東西,以面對快速變遷市場

上雲,只是劉丕凱近年著手推動平臺改造工程的一環。Udn買東西上線至今滿10年,背後系統架構也有著相同的年紀,如今,面對快速變遷的電商市場,技術團隊在開發新功能上,現有系統架構已浮現了一些限制,例如程式碼寫法老舊,或是資料結構不符所需等。

劉丕凱表示,系統架構沒有辦法支援新需求,以及面對爾後的營運目標,舉例來說,他提到,舊型架構循著傳統的開發周期,從開發、驗證到落版後才能上線,無法持續提交新功能,或是更新功能的版本,且開發成本很高。

所以,劉丕凱早在2018年,就訂定了三項改造計畫,分三階段改造電商平臺,而搬遷平臺上雲就是其中一個目標,最先推動的計畫是,全面檢視從頭到尾的系統架構,甚至後端資料庫,包含程式語法、商業邏輯等,要把顯而易見能修復的問題,全數修正。

劉丕凱以修正商品庫存扣除流程為例,過去的作法是,當消費者將商品加入購物車後,系統就會立刻扣除商品的庫存數,然而,不是每一位消費者都會立刻結帳,若商品庫存低時,就會導致其他有意立刻結帳購買相同商品的顧客,因庫存不足而無法下單。因此,團隊調整了系統邏輯,待消費者確認結帳時,系統才會扣除商品的庫存數。

劉丕凱表示,還有些更深一層的問題,團隊還持續在調整架構,目前約完成八成的修正工程。

下一階段,劉丕凱計畫重建Udn買東西,要將整個系統架構打掉重練。他表示,第一個計畫聚焦找出架構問題來修復,但這仍舊是翻修10年前的老架構,若持續使用,未來還是會面臨非常多的瓶頸。所以,他要打造全新的電商平臺,取代現有架構,以符合時下需求。

近期,聯合智網除經營Udn買東西,也開始拓展電商代營運服務,而在劉丕凱2017年剛加入聯合智網的前身聯合報電子商務部時,高層就訂定了公司的新發展目標,要發展2B業務。劉丕凱當時即意識到,要支撐聯合智網未來的發展項目,必須大幅度調整技術架構。

導入微服務加快AP開發

因此,過去4年,他除了推動Udn買東西改造計畫,也在2019年時,導入微服務架構,切割所有程式功能成為一支支微服務,以提升整體業務背後技術架構的彈性。他表示,過往,單一龐大的模組功能交給技術人員開發,冗長耗時,切成微服務後,可交由不同人員分別開發,就能快速驗證,確認是否符合市場需求,進而加快新功能的交付速度。

他特別提到,電商發展非常快,倘若每項新服務都等整體專案完成開發,再拿到市場驗證,「太慢了。」如今,聯合智網開發一個功能模組,縮短到只需要約7天。

另一方面,各微服務間透過API相互支援,也使得聯合智網可以使用不同的開發工具和技術,來共同完成單一個產品或服務。劉丕凱表示,新的品牌代營運服務也開始試驗,混用了PHP和React,他提到,後續會大幅度使用不同技術工具,來共同開發新產品。

過往,技術團隊僅需支援Udn買東西,如今需支援數十家品牌業者的電商營運作業,系統架構也須從單體式走向多叢式架構。劉丕凱表示,團隊過去沒有相關經驗,初期,架構採1*n概念,後發現無法滿足多租戶業務需求,快速改成n*n設計,從單一服務對象轉為n個服務對象,也就是幾十家品牌電商,而後面的n代表品牌在各電商平臺的會員、商品、訂單等與量體有關的項目。

進一步來看,聯合智網把每一個品牌當作獨立的站臺,分離式處理、儲存各品牌的資料。劉丕凱表示,各品牌只有共用商業邏輯應用層。

面對技術隨時間演進,不斷推陳出新,劉丕凱表示,有一件事沒有改變,就是勤練自己的基本功,他認為,降低程式碼獨立的執行路徑數量 (Cyclomatic Complexity)就是軟體研發的基本功。工程師使用控制令,例如If、Switch Case等,來撰寫程式碼時,一旦沒有精準使用控制令,他表示,將導致程式碼難以閱讀,反而衍生後續更多的問題,像是阻礙Alpha測試、加重維護成本、拖慢人員理解程式碼的時間等,甚至也會影響系統功能與服務的效能還有穩定度。

因此,他要求工程師撰寫程式碼開發功能時,盡可能降低控制令的使用次數,開發如購物車的大功能時,最多只能使用8個控制令,較小功能則不能使用超過4個。他表示,限制過度發散使用控制令,「一方面能鼓勵人員達到成目標,有限制就會想辦法克服,同時也能提升功能的品質。」

不過,劉丕凱更深信制度和規範的訂立,需從建立人員具良好的觀念,還有完善人員的心態做起,才能夠事半功倍。他表示,人員需具備從錯誤中學習的觀念,更要自許在執行下個任務時,不重蹈覆轍,心態方面,他特別鼓勵員工要有利他心態,他表示,團隊合作注重利他,採自己方便的方式行事,團隊合作成效會不佳,他強調,不論利他或利己,都還是要把事情做完,但因初衷不同,結果也會大不相同。

 CTO小檔案 

劉丕凱

聯合智網副總經理

學歷:奧克拉荷馬大學電腦科學研究所碩士

經歷:累計20年電商資歷,曾服務於PChome網路家庭、Yahoo,負責Yahoo超級商城平臺的創始建置,在2014進入GoHappy擔任總監,於2017年5月加入聯合智網前身聯合報電商部,現擔任副總經理一職,負責產品創新與研發,並推動各項改革專案,近期帶領技術團隊完成電商平臺上雲工程

 公司檔案 

聯合智網

● 地址:新北市汐止區大同路1段369號

● 成立時間:2019年

● 主要業務:經營Udn買東西購物中心,還有提供電商品牌代營運服務

● 員工數:250人

● 資本額:2億5千萬元

● 董事長:劉永平

● 總經理:陳杰

● 部門直屬主管:副總

● 部門名稱:資訊研發/系統管理部

● 部門人數:60人

● 部門分工:分為前、後端研發、QE測試、DevOps、MIS等部門

 公司大事記 

● 2011年:Udn買東西購物中心上線

● 2017年:成立大數據中心,利用數據制定策略與行銷

● 2018年:在臺北市成立產品與研發中心;利用AI,實行消費者個人化服務,像是商品推薦

● 2019年:由聯合報電子商務部轉變為集團旗下子公司,正式成立聯合智網;開始推展品牌代營運服務;導入微服務架構;搬遷部分工作負載上雲

● 2021年:完成Udn買東西全面上雲工程


熱門新聞

Advertisement