現在12306的網站表面主要有下面功能,用戶註冊及登錄、購票預約、退票、餘票查詢等。概括起來就3大功能,第一用戶註冊及登錄、第二查詢、第三購票及支付。根據它的功能和業務特點估算一個大概價格。
一:總體架構方面,終端 + 集羣應用服務器 + 集羣中間件(可選) + 分佈式集羣數據庫。
二:業務部分分爲3部分功能,開發爲3個標準的服務組件,各組件獨立部署,以標準接口連接,有利於軟件重用和擴展。軟件架構以Struct + Spring + Hibernate 爲主。
三:3個功能部分,用戶註冊及登錄以讀寫爲主,讀應該大於寫;查詢完全讀操作;購票及支付主要以寫操作爲主,根據這個特點合理的進行應用及數據分佈,以異步功能實現讀寫最大化。
四:3個功能分別對應3個分佈式數據庫,以集羣實現負載均衡,各分佈式數據庫之間用某種機制來同步數據(數據同步的頻率和時間是個關鍵)。
現在來估算價格:
1. 根據網站表面的業務邏輯爲主,成本加利潤,1000萬應該可以了吧。
2. 服務器方面,面向中國幾個億人使用,假設以每秒1000萬的併發訪問,單臺機器最大支持500個併發量,應不能少於20000臺集羣(一次到位可能不太現實,先實現5000臺機器),以惠普4核 6GB內存,價格1.2萬左右的刀片服務器來算(或者IBM類似的機器),需要6000萬元。
3. 數據庫部分,註冊登錄部分配置爲8節點的集羣以PC爲主, 查詢部分和購票分別配置10個節點的集羣,以IBM570小型機100萬的配置爲主,總價格在2000萬左右,再加3臺IBM DS5300存儲總估計500萬,再加配套設施,最後數據庫部分總估價3000萬(如果使用Oracle再加上保護費,估計也要1000萬)。
4. 網絡設備、集成費用、安裝施工費用、其它配套費用再估計2000萬。
5. 每秒1000萬併發,至少需要3臺F5,估計300萬。
綜上所述:總估價 1000+6000+4000+2000+300=1.33億元,再加10%的誤差,估計總價1.5億左右。
一些建議:
1. 前端顯示以文字爲主,顯示具體的車票數量,沒有了就不用進行後面的操作,少用圖片等沒用的東西。
2. 應用服務器應增加數據緩存功能,減少後端數據庫的壓力。
3. 增加線下支付功能,一手交錢一手交票。
上面的僅是系統運行的外因,不是根本的因素,根本是人的問題、體制的問題,人的問題不解決,別說3個億,就是30億也建不出好系統。以上僅是個人拙見,祝各位早點搞到票。