因为职业病所以昨晚就稍稍做了一些功课,
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