[心得] 買票的時候看了一下運作方式

作者: cornguo (T__T)   2014-12-28 11:46:49
因為職業病所以昨晚就稍稍做了一些功課,
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
作者: PTTOnline (PTT非官方帳號)   2014-12-28 11:48:00
怎麼沒人推!!
作者: linda1217   2014-12-28 11:49:00
專業 推
作者: yeanla (微笑的魚)   2014-12-28 11:49:00
因為看不懂XDD
作者: AAU (24)   2014-12-28 11:49:00
看不懂
作者: etjames07g (moo)   2014-12-28 11:49:00
你好強 !!
作者: alang1231 (ALang)   2014-12-28 11:50:00
我媽問我為啥跪著用電腦
作者: MuscleHunk (肌肉)   2014-12-28 11:50:00
版大你好強啊!
作者: XDDDD555 (happy summer)   2014-12-28 11:50:00
看不懂 但是給你推XDDDDD
作者: ipien (也許有一天)   2014-12-28 11:50:00
專業推!
作者: nbyanzi (Nancy)   2014-12-28 11:51:00
專業推
作者: ilikemay (沒有後路退)   2014-12-28 11:51:00
純愛遊戲對話我笑了XD (重點錯#
作者: a20246 ( )   2014-12-28 11:51:00
好專業
作者: superching (ching)   2014-12-28 11:51:00
你好棒!雖然還是不太理解,但祝你清票後買到票
作者: yelmido (yelmido)   2014-12-28 11:51:00
感謝分析,推一個
作者: Yelnats28 (live)   2014-12-28 11:51:00
XD
作者: iPodtouch (蘋果迷)   2014-12-28 11:51:00
專業推
作者: sunny1993521 (taka我的)   2014-12-28 11:51:00
還是ibon系統好阿說實在
作者: bawbaw7 (寶寶)   2014-12-28 11:52:00
好專業!
作者: anngo0220 (吱吱)   2014-12-28 11:52:00
專業推~~~XDDD純愛遊戲對話好好笑~~~很生動
作者: chiaamay (STAYREAL)   2014-12-28 11:52:00
.XDDD
作者: z75383 (Jerry)   2014-12-28 11:52:00
幫推XD
作者: Svock (Svock)   2014-12-28 11:53:00
不懂 但是對話超Q XDD
作者: lovemi7813 (qusdygksdhQk)   2014-12-28 11:53:00
對話笑了XD
作者: s155352 (Sydney T)   2014-12-28 11:54:00
推~
作者: LEGO (568410102)   2014-12-28 11:54:00
專頁推
作者: yunimath (我不是數學系的啦><)   2014-12-28 11:55:00
作者: zoepeng (:!)   2014-12-28 11:56:00
專業!竟然看得懂耶
作者: a611486 (鍾仔)   2014-12-28 11:56:00
推!
作者: bsook (沒有好好休過假日)   2014-12-28 11:56:00
推~太專業了。
作者: xgdbf (pipi)   2014-12-28 11:56:00
有讓我買到票就是好系統 況且也才崩潰一小時又不用排隊等
作者: cornguo (T__T)   2014-12-28 11:57:00
補充說明一下,多開幾個視窗成功率可能會比較高的原因
作者: ceeer (MadeInTaiwan)   2014-12-28 11:57:00
專業推推~特別推純愛遊戲那段XDDDD
作者: Mez (你奈人生何~)   2014-12-28 11:58:00
吼~~co君~~您怎麼這麼專業 但是你可以早點說嗎XD
作者: joyyan   2014-12-28 11:58:00
作者: LUCKLIN (冰)   2014-12-28 11:58:00
好生動的比喻,哈哈哈!專業給個讚~
作者: ceeer (MadeInTaiwan)   2014-12-28 12:00:00
這篇要收一下XDD
作者: staramit (矢大)   2014-12-28 12:00:00
專業推!!另外板主勒!?可以整理一下板面嗎
作者: cornguo (T__T)   2014-12-28 12:01:00
早知道我也加入 F5 狂刷軍團了 QQ
作者: bignoob (有我嫩嗎)   2014-12-28 12:02:00
請問 按付款卻導到節目列表 是因為在PHP中限制了某些POST參數的關係嗎
作者: cornguo (T__T)   2014-12-28 12:02:00
@bignoob 我覺得可能只是 session 爆掉了..唉唷剛剛發現我轉帳部分時間寫錯,是一天不是一小時
作者: josietao (揪西)   2014-12-28 12:06:00
專業推!!

Links booklink

Contact Us: admin [ a t ] ucptt.com