你是否曾在搶演唱會門票、登記五倍券、預約新冠肺炎(COVID-19)疫苗,或在 1111 購物節網購時,遇到網站頁面空白、跑不動的掛點現象呢?
此時,主辦單位的標準回覆常是「瞬間流量過大,網站無法負荷而癱瘓」。不禁令人疑惑:網站流量爆炸的問題為何不斷發生呢?該怎麼做才能避免網站當機呢?萬一發生無可避免的當機狀況,該怎麼做才能平息民怨呢?
本文專訪承辦五月天演唱會售票,創下 23 萬張門票 5 分鐘完售紀錄的拓元公司、Ticketmaster Taiwan 執行長邱光宗,以及雲端應用服務公司伊雲谷的雲端維運服務處副理劉學謙,為大家解答。
壓力測試都做了,為何網站還是當機?
劉學謙表示,網站好比是銀行的服務窗口,當辦卡人數比往常增加數倍以上,原先窗口的數量一定難以應對,連帶影響後端的資料傳送及資料庫讀寫的速度。因此廠商在辦理大型數位活動前,通常會做壓力測試,判斷網站負載流量,以利採取增設伺服器、修改網站架構等措施,來應付龐大的流量。
邱光宗以拓元販售五月天門票為例,售票前會調出先前系統乘載的流量紀錄,搭配自己的流量預估的公式,在演場會開賣前先做「超過預估」流量的測試,且測試腳本愈符合現實愈好。如果原先是預估 50 萬人次流量,網站測試就以 100 萬人次瞬間湧入來做,遇到問題再考慮調整系統架構,或增加伺服器的資源。
然而,網站壓力測試未必能模擬現實情境。 劉學謙表示,一是廠商不想為了測試花錢租賃或添購伺服器,所以壓力測試的上限值通常是現有伺服器能承受的範圍值,但可能與實際活動產生的流量相去甚遠。
二是 許多網站會串接其他公司的系統,像消費者在網購平台消費後,會接信用卡的支付平台,但支付平台或銀行的負荷流量不是網購公司能確保的。
第三個難題是 消費者行為很多元,廠商未必能完全掌握,例如預期消費者會依按 ABC 流程進入網站,但它們為了增加購票機會,他們可能採取 BC、CB、AC 等方式來搶票,不照既有的設定規範進入網站。邱光宗表示,預估消費者行為需要經驗累積,廠商透過一次次地學習、調整應對腳本,壓力測試會愈來愈準。
第四個是 突發狀況發生,邱光宗回憶,拓元曾發生門票開賣不到 10 分鐘,網站就運作困難,為此還暫時關閉網站、延後兩小時賣票,一查才發現是雲端伺服器數量和類型匹配錯誤,等於是選錯兵種來打仗,以致於網站出現錯誤。今年台北市開放民眾用台北通 App 登記「台北熊好券」振興券,雖有做壓力測試但 App 系統當機,事後台北市資訊局表示,台北通與熊好券分屬不同系統,個別系統的壓力測試有做,但兩系統的整合測試卻漏掉了,結果出了問題。
避免當機的解方 1:網站架構上雲端,節省當機後的處理時間
劉學謙認為,壓力測試雖不是萬能,但做得確實還是能掌握系統的問題,提前採取有效的解決方案。
若要減輕壓力測試的成本,劉學謙建議,在資訊安全無虞、當地法規許可的情況下,將網站架構、資料庫設在雲端是好方法。 廠商「用多少,付多少」,平時向雲端公司租用維持網站運作的伺服器使用費,測試或應付超大流量時,再付費增加使用設備,通常會以使用時間與傳輸量來計算費用,不必永久擁有伺服器,可以節省添購硬體設備的成本。
架在雲端的第二個好處是「省時間」,劉學謙解釋,如果把伺服器想成線上服務民眾的工作人員,伺服器上工前需熟讀工作指令,如同工作訓練守則,但傳統實體(地端)的伺服器萬一因為流量不足,臨時找新伺服器接應,必須耗費「伺服器學習工作指令」的時間,無法立即處理網站當機的問題。
相較之下,雲端服務有提供 「自動擴容」(auto scaling) 的機制,能為客戶預備一群熟悉工作指令的伺服器,當網站流量爆炸時,新伺服器可即時上工、消化線上人流,加快處理效率。
避免當機的解方 2: 設計分流群眾機制,降低網站流量負荷
除了提升網站對流量的應對能力之外,主辦方還可以從制度設計著手,設計有效分流群眾的機制,解決網站承載流量因故上不去的問題。
邱光宗表示,廠商未必要採用演唱會的搶票模式,拓元設計搶票機制是因爲台灣民眾認為搶票制度比較公平,客戶也認為「23 萬張票 5 分鐘完售」的數據有宣傳賣點,才提供這個服務。為此拓元也投入不少成本,拓元在售票業務運營前,耗費一年將售票系統架構大改版 7 次,才敢在 2014 年承接張惠妹演唱會的票務服務。
「應付高流量是需要長期測試、調整,不是一次專案做完就能成功。」邱光宗說,與其增設伺服器來應付超過 50 萬人次的瞬間流量,可用抽籤機制取代先搶先贏機制、依年齡層分批登記、卡友客戶優先預購,抑或將活動時間拉長,這些做法都能有效控制上線人數,而且「它是最省錢、不動網站架構」的方式。
網站流量暴增也會影響不同功能系統串接的效能,常見的狀況是消費者購物完成後,轉至金流支付系統時,出現訂單交易失敗的情形。劉學謙表示,近幾年售票系統常採用「虛擬銀行帳戶」形式,發給每位消費者不同的帳戶,請他們在限定時間匯款完成交易,期間內廠商會保留訂單。這個做法讓不同功能的系統不必互相等待回應,解決等待時間過長而導致當機的問題。
另一種方法是 「提升數位服務體驗」,邱光宗提到,網站可以導入排隊軟體,像丹麥新創開發的 Queue-it,讓客戶知道排隊進官網的人流有多少、評估自己何時才能排到,類似去郵局寄信抽號碼牌的概念,客戶可以把網站頁面開著等,等待中能做其他的事情,這會比讓客戶面對空白頁面或「網站負載過量,請稍候再試」的說明更好。
當機後的客服:與其解釋為何當機,不如告知何時能再上線
萬一網站在活動當下掛點了,邱光宗認為,好的客訴處理不是告訴大家「為什麼會當機」,而是說明 「什麼時候可以解決、如何保障消費者權益」。
他舉例,拓元曾發生網站出現錯誤,需要暫時關閉網站來處理問題,當時部分顧客在當機前已完成訂票了,聲明稿內容提到:保留完成訂票者的訂單,幾點幾分會重開一次售票系統,敬請見諒。與其讓民眾晾在頁面上不斷地更新測試,不如誠實告訴他們公司需要多久時間處理,比較不會引起民怨。
在販售票務前,拓元也會針對各種突發狀況,擬定處理的 SOP,像是網站出現異狀,IT 人員優先檢查哪些可能的出錯點、客服人員該回覆哪些內容,如何跟主辦單位解釋狀況等。做好完全的準備,才能維持公司信譽,提供消費者更好的數位服務體驗。
本文轉載自《經理人》