肯驛將出國漫遊的租借服務漫遊吧和全球的禮賓服務U.First,將EC2轉移到ECS除了部署時間的考量之外,還能節省成本。

圖片來源: 

肯驛國際

「花了我們將近4小時才修復完成!」肯驛國際技術開發維運處數據與服務研發部課長工程師林旭星分享了今年發生的慘痛經驗,肯驛的私有機房,在一次的電力壓力測試之下,硬體防火牆因此燒掉,經過檢討才發現,那套設備是許久之前工程師人工設定的,也因為是人為設定,導致細節記綠不清楚,才花了這麼久的時間修復。

肯驛目前為臺灣最大的VIP服務公司,在臺灣銀行業權益服務的市占率超過90%,主要提供國內超過20家銀行、電信和壽險業的VIP服務,像是VIP機場接送、出國租借上網漫遊機、訂飯店等服務,以機場接送為例,市場上一年大約有60萬的兌換趟次,肯驛就包含了40萬個趟次。

這樣慘痛的經驗不是只有發生在今年,林旭星坦言,其實在去年,由於肯驛目前累積承攬的專案有近千個,且提供的專案服務相當多元,涵蓋前端的網站、App開發以及第三方API的串接,兩年前肯驛就已經發現,私有的機房沒辦法滿足現在的需求,當時找來一家國內雲端廠商,先將部分的服務搬上雲端。

不過,一開啟均衡負載器(Load Balance),服務就此中斷,花了大約3天的時間才修復,讓肯驛十分失望,決定尋找另外一家廠商。

這些經驗加上提供的服務多元,肯驛決定找尋的雲端服務平臺訴求就是能夠恢復一套系統快速又準確,「選擇彈性又穩定、安全低風險的環境是考量的因素」,林旭星表示,除此之外,還希望可以透過雲端平臺可降低人工維護的成本。後來,肯驛決定採用AWS,希望能藉助AWS全球機房提供更多跨國服務。

企業內部系統採用雲端平臺服務顧及3大層面

因此,肯驛將目前採用雲端平臺服務分為3大層面,分別是安全性、降低風險及靈活調配和減少維運成本。首先,安全性的部分,肯驛用Amazon VPC建立私有雲,透過簡易的設定建置內網,再利用IAM控管企業員工的使用權限。

林旭星表示,若內部人員有異動,就能夠快速地改變設定,而對抗DDoS攻擊的策略,則是使用AWS Shield免費的方案,可以初步抵擋網路層和傳輸層的攻擊。

接下來,降低風險及靈活調配的層面,肯驛在資料的儲存上,主要是用S3,不過,若是不常用的服務肯驛則有較聰明的作法,就是將不常使用的服務轉為用Amazon的雲端儲存服務Glacier,這個專門提供長期備份的儲存服務,可以大幅降低成本。

另外,系統容錯能力則是採用去年才推出的負載均衡器Application Load Balance(ALB)加上Multi-AZ,林旭星說明,一般企業可能會使用ELB,但是由於部署時效和方便性的考量,肯驛將兩項服務,從一開始的EC2轉移到ECS容器服務,可將部署的時間從分降至秒,同時也改用針對ECS的新負載均衡器ALB。

將EC2轉移到ECS除了部署時間的考量之外,還能節省成本,原本出國漫遊的租借服務漫遊吧和全球的禮賓服務U.First需各別部署在EC2各自獨立VM上,但是改部署到ECS後,因為採Container架構,就能將兩項服務整合放在同一個ECS實例上來執行,可以節省下原本要負擔底層Guest作業系統,而省下的維運費用。

另一個改為容器架構的好處是,可以解決舊版本OS無法升級的需求,舉例來說,肯驛的系統後臺是用Go語言撰寫而成的,並且建置在Ubuntu 14.04的環境,但是,當系統需要升級到16.04的版本時,就無法運行,因此,肯驛採用Container架構的ECS,就能直接將環境封裝,帶到其他環境下執行。

以往系統維運都需要耗費許多人力和時間成本,為了減少龐大的維運成本,肯驛採取建置系統設定時,用程式碼取代人工的策略,使用了AWS的CloudFormation,可以避免因人為設定,無法快速且精確恢復系統的情形。

此外,維運成本還包含系統部署的工程,肯驛在自動部署服務的流程,則是透過CodePipeline和CodeBuild兩項工具,這兩項工具主要搭配ECS,可以協助持續整合(Continuous integration, CI)的工作,解決軟體系統整合時,面臨的各項問題。

最後,也使用了CloudWatch和SNS,來監控和通知服務運行狀況,林旭星表示,採用這樣的方法後,可以不用像以前一樣,每周固定派人到機房巡視,若系統偵測到異常情形就會主動通知,可以在系統出狀況前提前處理。

導入Serverless架構,將部署時間提升至毫秒級

除了採用Container來加速部署時間和節省成本之外,肯驛甚至在機場接送叫車平臺叫車吧導入了Serverless的架構,叫車吧是類似Uber的平臺,可以讓客戶在手機上直接叫車,這個平臺使用的架構也是放在ECS上,比較不一樣的是,肯驛導入Serverless的架構,將部分的服務透過API Gateway連到Lambda,林旭星表示,ECS部署所需要的時間會從秒級提升到毫秒級,因為部署過程中若有API需要調整,可以直接改此API的程式碼,修改過程就不需要包含前端整個服務。

肯驛在機場接送叫車平臺叫車吧導入了Serverless的架構,將部分的服務透過API Gateway連到Lambda,原因是因為部分的API,利用Serverless的架構,可以將部署所需要的時間提升至毫秒級。(圖片來源/肯驛國際)

資料庫搬上雲端解決停機升級困擾

林旭星更進一步分享資料庫轉移的實戰經驗,肯驛將原有SQL Server轉移到AWS的雲端資料庫服務Aurora,他解釋,雲端資料庫可以在不關機的情況下自動更新,在主從式架構下,系統同時有Master和Slave在運作,升級時Aurora會將DNS由Master轉到Slave,原本的Master就會變Slave,更新到新的版本。

轉換資料庫則使用了兩項工具,分別是Schema Conversion Tool(SCT)和Database Migration Service(DMS),SCT是Schema轉換的工具,DMS則是提供企業在不需要中斷資料庫的情況下,將原本的資料無縫轉移到另一個資料庫上,林旭星表示,使用這兩個工具,可以完成大約7成的工作,另外3成則是需要透過人工的方式來調整。

不過,當程式碼片段無法自動轉換時,SCT報告會清楚地記錄,需要開發人員手動輸入的位置,像是資料庫轉移的檢視(View)。

肯驛將企業內部的系統和資料搬上雲端之後,林旭星表示,不僅解決了原本的痛點,還創造出新的產品和平臺,舉例來說,近期即將推出的客服Chatbot和機場接送叫車的服務平臺。甚至,隨著肯驛企業IT團隊要負責的業務越來越多元,也決定另外獨立成立一家軟體公司來提供委外開發服務。

熱門新聞

Advertisement