因為職業病所以昨晚就稍稍做了一些功課,
http://www.slideshare.net/ktchiu1972/ss-33943559
第一次用拓元的系統,想說看看架構大概是怎樣,
就用了已知的知識去翻了一下。
1. 先講講新聞打很大的伺服器
所謂的亞馬遜伺服器,就是 Amazon 的 EC2,
拓元使用的系統放在 us-west-2 這個 data center
售價很公開透明 http://aws.amazon.com/cn/ec2/pricing/
400 萬台幣大概是 125,988 美元
昨天晚上查了 DNS,看網址指到了幾台機器,
共查到 12 個 IP,列表如下
50.112.251.26, 50.112.98.227, 54.214.0.211
54.214.22.1, 54.214.249.167, 54.214.26.191
54.214.41.66, 54.214.9.190, 54.244.120.227
54.244.127.243, 54.244.92.200, 54.244.95.181
所以猜測網頁端是開了 12 個 instances,
假設提到的金額只是拿來買前端網頁的伺服器,
那麼一台大概花了 10,499 美元.. 大家可以對照一下那張表。
至於圖片甚麼的則是放在 Amazon CloudFront 上,
售價也很透明 http://aws.amazon.com/cn/cloudfront/pricing/
這部分就不多贅述。
2. 網頁技術的部分
本來以為會看到很先進的系統,
看 response header 知道是 nginx,但不確定是哪種語言寫的,
在看了 cookies 之後,發現有 YII_CSRF_TOKEN 和 SID,
其中 YII_CSRF_TOKEN 就透露了他們使用的是 Yii Framework
網址 http://www.yiiframework.com/
網頁的話是傳統的 jQuery + AJAX,
然後系統有個 minifier 去壓縮 javascript 跟 CSS (簡單說是減少流量)
登入的部分使用的是 oAuth,
比較讓人擔心的是登入時沒有使用安全連線,
如果在不安全的網路下操作可能會有個資被竊取的疑慮
欸不過也不用太擔心啦,因為要做到這件事很費工,囧
一個牽涉到個資和金流的網站居然沒有安全連線,擔憂啊
3. 資料庫部分
因為看不到所以只能用猜的,
如果是前面投影片提到的 Oracle solution 理論上不會有大問題
4. 購票部分
今天在買票的時候無聊開了開發者工具在看,
在選區頁面按下送出,瀏覽器才開始送 request 去問伺服器剩多少位子
接著就會看到轉轉轉動畫的頁面
大家都覺得轉轉轉好像做了很多事,
但實際上瀏覽器是每隔一小段時間問伺服器有沒有空位
如果用很純愛遊戲 (?) 的方式寫,大概是這樣:
(按下送出)
瀏覽器:欸欸伺服器君,你可以幫我問問資料庫剩幾個位子嗎 (羞)
(等待一段時間)
[GOOD ENDING] 伺服器:瀏覽器君,有的,我把資料傳給你,記得去繳錢嘿
[BAD ENDING A] 瀏覽器:伺服器君,你為什麼不說話 (然後再問一次)
(這個結局前端不會有任何顯示,畫面繼續轉圈圈)
[BAD ENDING B] 伺服器:瀏覽器君,感謝你的耐心等候,但我這邊沒有位子了
(接著使用者就被導回場次頁面,要重點一次)
[BAD ENDING C] (伺服器君已讀不回)
== EDIT ==
這邊補充說明一下,前面有提到 12 台伺服器,
所以瀏覽器君每次都是向其中一台機器問..
也就是說,如果你今天開了很多瀏覽器君,
他就有機會問到一台有回應的..
可是瑞凡我照著說明只開了一個視窗等了半天卻是 BAD ENDING Q__Q
== /EDIT ==
然後我今天一直在重複 BAD ENDING,所以不知道之後進到付款會如何 Orz
不過有趣的是信用卡有 15 分鐘限制,
如果接上去的金流系統擋不住大量交易請求,最後也是 GG
反而是 ATM 轉帳部分有一整天,所以只要交易紀錄還在,
理論上轉帳帳號生得出來是可以購票成功的..
這大概說明了為什麼使用 ATM 的人在一開始好像比較容易成功 (?)
然後就是.. 可能開一堆視窗狂按 F5 重刷會比乖乖等待更容易買到票
通常最弱的一環會是壓爆系統的那根稻草,
今天開售票網頁都開得出來,猜測前端沒太大問題,
後面的資料查詢和金流可能是這個系統未來需要加強的部分..
說了這麼多,最後還是要哀號一下我沒買到票啊啊啊啊啊啊
四百萬可以做很多事情,
下次可以選一個安全性和技術好一點的售票網嗎拜託 Q___Q