Cool3c提案:如何讓柯文哲募款網站不會當機

by atticus
2018.07.25 06:19PM
Web page, Screenshot, Computer program, Online advertising, Multimedia, Advertising, Computer, Font, World Wide Web, Microsoft Azure, web page, text, font, product, web page, line, area, number, screenshot, document, website

台北市長暨候選人柯文哲小額群眾募資網站 teamkp.tw 今天正式上線,經由擴散率超高的柯文哲粉絲專頁貼文後,立即湧入數千位捐款者進到網站,但網站的穩定度擋不住支持者的熱情,許多民眾紛紛遇到當機狀況,頻頻出現 500、502、504 等當機現象,連Cool3c主編也在臉書抱怨此事。

Screenshot, Line, Point, Angle, Web page, World Wide Web, screenshot, text, font, line, area, product, screenshot, number, document, angle, web page

 

我本人也在競選幕僚貼文上,呼籲大家吃完飯再回來捐款,不要把網站擠爆了。李組長眉頭一皺覺得不對,是不是有更好的網站建置方法,才能讓超人氣的科P網站穩穩妥當呢?因為這樣馬上在Cool3c的工程群組上詢問幾位工程師,請大家幫我提出好的網站建置提案,讓夠讓熱情的支持者們能順利完成捐款。

 

從 Cloudflare CDN 服務解

首先從 Whois 資料查詢,發現 teamkp.tw 網站是由一位國立清華大學計量財務金融學系邱同學所申請,網址 ISP 從 GoDaddy 來申請,DNS 則是 Cloudflare。

原來該網站有走 Cloudflare,這是一個許多網站都樂於使用的 CDN(Content distribution network)服務,簡單來說就是網站的緩衝區,使用者連上柯P網站其實是連上 Cloudflare,讓這個巨人幫忙擋一槍,而且 Cloudflare 是單一費率無限流量使用,以Cool3c來說只要每個月付 200 元美金,就可以使用其進階服務,為Cool3c網站每月數百萬瀏覽頁面的流量擋下不少。

如果 teamkp 有用到 Cloudflare,那為何還是被打掛呢?可以調整成直接開 cache everything,或者寫規則讓他強制快取所有頁面,以下是Cool3c工程師們提出解法:

★www.teamkp.tw

Ping www.teamkp.tw [104.20.190.48]

★可行處理

.由於畫面大多是靜態資料,建議做快取 (www.teamkp.tw)

> HTML檔案靜態快取

> CDN快取

> Expires header

 

捐款網站要做Auto-Scale

上面這樣解掉後,只有會變的品項會被快取,直到下次頁面更新例如上一次快取是100個支持者,再到下一次快取前都是100位,其他都可以讓使用者安然上到網站。但後面的捐款頁面金流服務就比較麻煩了,teamkp 使用了 AWS ,可能還會卡上金流(台新銀行金流)部分的伺服器:

★donate.teamkp.tw

Ping kpdonate-alb-1039184351.ap-northeast-1.elb.amazonaws.com [13.112.93.28]

Elastic Load Balancing

提議的解法如下:

.實際募資網站,建議伺服器做 Auto-Scale (donate.teamkp.tw)

> AWS Auto Scaling

> Google Kubernetes Engine

> Azure 自動調整

> 看起來應該有做,那建議上線日提高基本數量

.避免金流塞車,可以採先訂票後付款方式

> 請見 KKTix

> 如果各項目是有上限的話

以上只是拋磚引玉,其他工程界的夥伴們提出更好的解法,如果能變成一個網站乘載流量的SOP就更好,並提供給其他政治候選人作為參考,畢竟到年底競選旺季,各大候選了網站會陸續出爐,讓各個支持者能夠順暢瀏覽並有各樣互動行為,也是好事一樁囉!

80 則回應