《互聯網創業的准備》系列文章——http://cnblogs.com/sink_cup/
鳴謝:
小米的哥們:幸福小小明 http://blog.exephp.com/
1、技術練手網站
練手學習技術時一般只購買1台vps,架構簡單如下圖。
這個簡單的圖里面隱含了太多的未知不可控:
用vps還是雲主機?
請看:《互聯網創業的准備——依賴服務》 http://www.cnblogs.com/sink_cup/archive/2012/09/14/vps_cloud_host.html
用apache還是nginx,並發多少?
用數據說話,請看:《互聯網創業的准備——web server》 http://www.cnblogs.com/sink_cup/archive/2012/09/14/web_server.html
mysql並發多少?
用數據說話,請看:《互聯網創業的准備——數據庫》 http://www.cnblogs.com/sink_cup/archive/2012/09/17/ssd_iops_sql_nosql.html
在技術練手時多折騰才能積累技術:IPv6、免費DNS(比如dnspod.cn)、免費試用CDN(比如七牛qiniutek.com)。
由於存在這么多隱患,作為練手網站可以,作為創業網站太危險。
2、創業
如果有個很小很好的創意,盈利不足以全職投入,或者有建站程序可以實現無需開發,一個人或幾個人利用空閑時間就能完成,這種個人網站的架構很簡單,只要注意數據備份即可,免得一夜回到過去……
知名個人網站參考:
內容 | 盈利模式 | 盈利規模 | 程序 | |
cnbeta.com | it新聞 | 自動廣告 | 自行開發 | |
qiushibaike.com糗事百科 | 24小時內最最尷尬的糗事 | 自動廣告 | 2011年6月 10w/月 | 自行開發 |
bookfor.us擺擺書架 | 分享閑書,免費借閱他人分享的書籍 | 未知 | 自行開發 | |
jandan.net煎蛋 | 以譯介方式傳播網絡新鮮資訊 | 自動廣告 | wordpress | |
HDChina.org高清 | PT | 影音器材人工廣告 | Discuz、Nexus Project | |
chinahdtv.org中國高清網 | PT | 自有淘寶店高清硬盤拷貝及器材銷售 | Nexus Project | |
chdtv.com chdbits.org | BT、PT | 同上 | Discuz、Nexus Project |
PV 1k級:
創業剛起步時,或者業余微創意網站,流量低,PV幾百幾K。
數據庫備份:crontab mysqldump scp,請看《互聯網創業的准備——數據備份》 http://www.cnblogs.com/sink_cup/archive/2012/09/14/web_backup.html
文件備份:crontab scp
架構:
PV 1w:
PV 1w時,網站脫離了試驗田,活下來了。如果是PT這種細分網站,可以通過銷售器材盈利了。
這時候可以考慮使用雲數據庫服務,不用擔心備份了。
數據庫備份:雲數據庫自動備份
文件備份:crontab scp
架構:
PV 10w - 50w:
PV 10w時,需要考慮帶寬了,請看:《互聯網創業的准備——帶寬與CDN》 http://www.cnblogs.com/sink_cup/archive/2012/09/14/web_bandwidth.html 。
這時可以考慮使用CDN了,10w/天 * 100K * 31天 = 31G,按流量結算CDN價格低,為¥20/月。根據流量情況,可以考慮開啟防盜鏈。
根據sar的CPU、內存、iowait日志,購買更好的vps。
PV 100w:
靜態服務器使用獨立域名,而不是主站的二級域名,這樣請求靜態資源時不會帶着cookie,節省用戶上傳帶寬,提升速度。
PV 100w時,熱門並發為15個/s。對數據庫壓力很小。web server的壓力也小,但是用戶量這么大了,要考慮單點故障,所以web server使用負載均衡,提高服務可用性。
數據庫備份:雲服務自動備份
靜態文件備份:雲服務自動備份
架構:
以PV來做架構,都是傳統web服務,即使達到數千萬PV,使用雲服務也沒問題。
因為傳統web服務並發量低,對數據庫的壓力小。請看《互聯網創業的准備——數據庫》 http://www.cnblogs.com/sink_cup/archive/2012/09/17/ssd_iops_sql_nosql.html。
比如Instagram使用Amazon雲服務,達到820w UV,假設是5000w PV,並發量才 5000w / (15小時 * 3600) = 900,並發很低。
參考《Instagram 架構分析筆記》:http://www.dbanotes.net/arch/instagram.html
如果要做電商,要做“秒殺”服務,就是另外一種架構了。
淘寶的架構已經演進多年了,可以用來參考:http://www.alidata.org/archives/1789。
第一次做秒殺如何預估並發?
做預約,像小米1S在2012年8月23進行搶購,提前幾天進行開放預約,預約人數大概為160w。
預約可以知道多少人很感興趣,其中又只有一部分人會按時搶購。
如果不做預約,有論壇互動,根據論壇PV UV也可以預估。根據微博轉發獎勵也可獲得一定的數據。
並發10w:
按小米1S在2012年9月6號的搶購來看,假設有50w人開着瀏覽器倒計時。
小米是分批搶購,20w台9分40秒搶購結束,如果是正常的搶購,流程如下:
第1步:倒計時結束,ajax取回購買鏈接,1秒內返回。
ajax是准時的,並發請求50w——web server並發50w,檢查session 並發50w(如果使用memcache session或者mongo session,要測試nosql並發。如果使用無需存儲的加密仿session,需要測試cpu能承受多少並發計算加密對比)。
無cookie時,http request header約250Byte,帶cookie時更大,這里按300Byte計算,需要帶寬:0.3K * 50w = 150 MB/s = 1200 Mbps
http response header約260Byte,服務器返回購買uri約100Byte,需要帶寬:0.36Byte * 50w = 180 MB/s = 1440 Mbps
第2步:根據各人反應時間不同,2秒內全部點擊搶購。
並發請求25w/s——web server並發25w,檢查session並發25w,
mysql方案1:count < 20w ——》 insert,返回id即排名。查詢25w/s,寫入20w/s。
mysql方案2:提前寫入20w數據,user_id為空,update ——》 select查排名。寫入20w/s,查詢20w/s。
2種方案的數據庫並發寫入都要達到20w/s。折合硬盤iops為10w,如果像淘寶一樣采用15K轉速的SAS盤,需要15塊做Raid10,成本為¥2.2k * 15 = ¥33K。如果使用Intel 710 SSD,需要5塊做Raid10,成本為¥2.5 * 5 = ¥12.5K。
架構:
團隊人多了,就需要考慮后勤,請看《互聯網創業的准備——后勤》 http://www.cnblogs.com/sink_cup/archive/2012/09/14/pc_mac_linux.html。
其他todo:溝通工具、bug系統、審核系統、代碼書寫規范
參考資料:
http://www.dbanotes.net/arch/instagram.html
http://www.oschina.net/news/17509/opensource-used-in-facebook
http://zhiyi.us/internet/thinking-twice-before-building-your-site-one.html