中華電信數據通信分公司總經理鍾福貴表示,今年元旦連假火車訂票服務,首度取消了流量限制,改嘗試用雲端資源來解決民眾搶票的爆量需求。

過往臺灣最常見的網站爆量事件,就是長假返鄉期的台鐵網路訂票作業,尤其是春節返鄉或是元旦連假,往往開賣後的1小時內,就會賣出超過10萬張車票。這在過去也是每每引起民眾抱怨,但今年卻有點不一樣了。

根據臺鐵官方公布的資料,今年春節訂票的第一天先開放東部幹線訂票,開放後第1分鐘就瞬間就湧入了45萬4千多筆連線,最高甚至達到55萬9千多筆,是歷年最高量的4~5倍,也是今年元旦連假訂票量的2倍,換句話說,元旦連假時也有20多萬筆連線量。

東部幹線開放網路訂票後的第1個小時,臺鐵就完成了19萬筆交易,賣出了41萬張車票。僅訂票前20分鐘發生網站塞車情形,但系統運作正常。

臺鐵網路訂票系統向來是由中華電信數據通信分公司負責承包和維運。過去鐵路訂票系統就像其他網站服務一樣,得靠實體設備的擴充或升級,來增加承載服務的容量。

中華電信旗下負責雲端業務的數據通信分公司,去年開始用雲端服務來解決網站爆量需求。中華電信數據通信分公司總經理鍾福貴表示,第一次的經驗是內政部房地產實價登錄查詢系統,用雲端架構取代傳統的實體設備,解決房地產實價登錄後來用量大增的需求,第二次經驗則是設計臺鐵的元旦訂票系統。

臺鐵從民國84年開始推出線上訂票,過去,鐵路訂票系統為了避免瞬間暴增的網路流量,會用防火牆來管制可以進入系統的流量,避免造成所有人都無法購票的結果。

最近幾年,臺鐵開始以能夠讓民眾在15分鐘內完成訂票為目標,擴充系統的硬體架構。但是,火車訂票系統在平日的同時連線數可能不到1千個,周休2日連假可能到達1萬個連線數的等級,但是一到元旦或春節等長期連續假日,訂票系統的連線數就會高達10萬個。若為了達到15分鐘完成訂票的服務水準,得以最大尖峰用量來預備硬體資源才行,但是這樣實體擴充的方式對平日的用量來說,就顯得成本過高。

為了嘗試雲端運算的能耐,鍾福貴表示,去年12月元旦連假火車票的訂票作業,首度取消了前端防火牆的流量限制,想試看看可以承載到多大的流量,後端則增加了多一倍的伺服器來處理,目標設定要能容納50萬個同時連線數,後來實際情況達到25萬個同時連線數。

網站爆量2大難題

鍾福貴表示,網站爆量時有2個難題,第一是系統要能承載所有同時上線的連線數,第二則是要避免後端資料庫讀寫成為瓶頸。

尤其針對這種特定節日的爆量需求,鍾福貴表示,採用雲端運算遠比用實體伺服器擴充來得容易,可以解決網頁層和AP應用程式層的連線數暴增問題。臺鐵元旦訂票系統的網頁層和AP層,正是用虛擬化環境來提高擴充性,但在DB層則是因為所用的商用資料庫還未支援虛擬化環境,所以還是採用實體伺服器。

在元旦開放訂票當天,中華電信不只預備了足以容量50萬人次的雲端運算資源,而且第一次就啟用了能承載至少過半容量的資源,而不是動態隨著使用者流量的增加速度,逐漸增加虛擬機器的數量。

鐵路訂票和iPhone預購雖然都會造成用戶爆量的現象,但有一個不同的是,火車票的數量有限,民眾想要的時段也有限,來晚了就會買不到,因此更容易發生搶票行為,甚至是秒殺。所以,鐵路訂票的網站爆量現象更嚴重,開放訂票的第一個小時,是系統運作的關鍵。

鍾福貴表示,一般雲端資源動態調整會依據一段時間的變化,例如持續20~30秒發生處理器使用率超過60%,或是連線數暴增時,才動態增加虛擬機器。但是火車訂票是搶秒的行為,晚20秒已經來不及了。若是將動態調整的判斷時間縮短到以秒為單位,1秒之間流量增加就擴充伺服器,下1秒流量下跌再減量,這樣的效益也不大。正是因為火車購票要搶時間,晚了就買不到,而且事先就可以預估有這麼大量的規模,所以,可以一次備妥需要的容量,而不是用透過偵測機制臨時動態調整。

用不到也要先備齊最大容量

中華電信數據通信分公司政府網路處處長鍾鳴表示:「解決爆量問題時,事先預估用量很重要,即使不需要開啟最大容量,但一定要準備到足夠的容量。」

他解釋,如果沒有備妥足夠的容量,就要可以自動動態擴充,如此得倚賴虛擬機器的複製擴充速度。但是一般虛擬化平臺的映象檔通常只預載了基本的作業系統,而沒有應用伺服器和應用程式,像中華電信使用的開發平臺是Java應用伺服器Weblogic,一個標準版的虛擬映象檔不會內建Weblogic,也不會預先完成網路組態的設定如IP,遇到臨時要擴充新的虛擬機器時,還是得花時間安裝應用系統。所以,虛擬機器雖然可以按需調整,但若沒有事先準備,很難臨時擴充。

就算是直接複製一個已經內建了Weblogic環境的虛擬機器映象檔,還是無法立刻執行,至少需要重新開機讓網路組態調整為適當的設定,來避免組態衝突。尤其當服務因爆量而繁忙時,資訊部門也很難處理這些複製虛擬機器和安裝軟體的需求。

另外,鍾鳴表示,採用套裝軟體,還需考量授權成本和序號安裝的問題。企業得先備妥足夠的軟體授權,動態擴充時才能在虛擬機器上使用,臨時才要增購授權也來不及。而且一般安裝在單一伺服器上的套裝軟體,會記錄購買的軟體序號所安裝的設備,例如鎖住IP,直接複製虛擬機器來擴充,可能會導致序號衝突而讓系統失效。

用免費應用伺服器,動態擴充更容易

不過,鍾鳴倒是提出了另一種規畫應用系統的策略,他建議,想要動態擴充的企業,可以改用免費軟體取代商用軟體,來解決軟體授權的問題,例如採用開源的Apache伺服器來執行應用程式。

早年中華電信選擇應用程式的開發平臺時,因為當時Apache可以承載的同時連線用戶數太低──一個Apache伺服器只能承載120個用戶同時上線,應用系統若要能承載1千的人同時連線使用,得用10臺實體伺服器部署10臺Apache伺服器才夠用,所以,後來中華電信選擇了承載能力較大的套裝軟體Weblogic。

因為現在可以用雲端的虛擬機器取代實體伺服器,來部署Apache伺服器,就算現在Apache伺服器的最大同時連線數比不上商用軟體,但是,鍾鳴表示,可以用更多的虛擬機器搭配免費的Apache軟體,來滿足最大同時連線數的需求。商用軟體授權會影響虛擬機器擴充的彈性,改用免費的應用伺服器,更容易動態擴充雲端資源。

從中華電信實際運用雲端解決爆量需求的經驗來看,相較於傳統實體伺服器,透過虛擬化技術可以提供更快的運算資源擴充速度,但是,動態擴充的速度有限,受限於虛擬機器網路組態設定和商用軟體授權安裝的需要,仍舊無法隨時擴充運算資源,尤其遇到像連假火車訂票這種搶秒式的爆量需求,更是來不及,所以,還是得事先預估出最大用量,事先備妥足夠虛擬機器,才能解決爆量問題。以中華電信這個經驗來看,雲端運算仍舊只能處理用量可期的需求,而難以因應不可預期的擴充需求。

中華電信數據通信分公司政府網路處處長鍾鳴表示,商用軟體授權會影響虛擬機器擴充的彈性,改用免費的應用伺服器,更容易動態擴充。


Advertisement

更多 iThome相關內容