互聯(lián)網(wǎng)創(chuàng)業(yè)的準(zhǔn)備:架構(gòu)
鳴謝:
小米的哥們:幸福小小明 http://blog.exephp.com/
1、技術(shù)練手網(wǎng)站
練手學(xué)習(xí)技術(shù)時(shí)一般只購買1臺(tái)vps,架構(gòu)簡(jiǎn)單如下圖。
這個(gè)簡(jiǎn)單的圖里面隱含了太多的未知不可控:
用vps還是云主機(jī)?
請(qǐng)看:《互聯(lián)網(wǎng)創(chuàng)業(yè)的準(zhǔn)備——依賴服務(wù)》 http://www.cnblogs.com/sink_cup/archive/2012/09/14/vps_cloud_host.html
用apache還是nginx,并發(fā)多少?
用數(shù)據(jù)說話,請(qǐng)看:《互聯(lián)網(wǎng)創(chuàng)業(yè)的準(zhǔn)備——web server》 http://www.cnblogs.com/sink_cup/archive/2012/09/14/web_server.html
mysql并發(fā)多少?
用數(shù)據(jù)說話,請(qǐng)看:《互聯(lián)網(wǎng)創(chuàng)業(yè)的準(zhǔn)備——數(shù)據(jù)庫》 http://www.cnblogs.com/sink_cup/archive/2012/09/14/ssd_iops_sql_nosql.html
由于存在這么多隱患,作為練手網(wǎng)站可以,作為創(chuàng)業(yè)網(wǎng)站太危險(xiǎn)。
2、創(chuàng)業(yè)
如果有個(gè)很小很好的創(chuàng)意,盈利不足以全職投入,或者有建站程序可以實(shí)現(xiàn)無需開發(fā),一個(gè)人或幾個(gè)人利用空閑時(shí)間就能完成,這種個(gè)人網(wǎng)站的架構(gòu)很簡(jiǎn)單,只要注意數(shù)據(jù)備份即可,免得一夜回到過去……
知名個(gè)人網(wǎng)站參考:
內(nèi)容 | 盈利模式 | 盈利規(guī)模 | 程序 | |
cnbeta.com | it新聞 | 自動(dòng)廣告 | 自行開發(fā) | |
qiushibaike.com糗事百科 | 24小時(shí)內(nèi)最最尷尬的糗事 | 自動(dòng)廣告 | 2011年6月 10w/月 | 自行開發(fā) |
bookfor.us擺擺書架 | 分享閑書,免費(fèi)借閱他人分享的書籍 | 未知 | 自行開發(fā) | |
jandan.net煎蛋 | 以譯介方式傳播網(wǎng)絡(luò)新鮮資訊 | 自動(dòng)廣告 | wordpress | |
HDChina.org高清 | PT | 影音器材人工廣告 | Discuz、Nexus Project | |
chinahdtv.org中國(guó)高清網(wǎng) | PT | 自有淘寶店高清硬盤拷貝及器材銷售 | Nexus Project | |
chdtv.com chdbits.org | BT、PT | 同上 | Discuz、Nexus Project |
#p#
PV 1k級(jí):
創(chuàng)業(yè)剛起步時(shí),或者業(yè)余微創(chuàng)意網(wǎng)站,流量低,PV幾百幾K。
數(shù)據(jù)庫備份:crontab mysqldump scp,請(qǐng)看《互聯(lián)網(wǎng)創(chuàng)業(yè)的準(zhǔn)備——數(shù)據(jù)備份》 http://www.cnblogs.com/sink_cup/archive/2012/09/14/web_backup.html
文件備份:crontab scp
架構(gòu):
PV 1w:
PV 1w時(shí),網(wǎng)站脫離了試驗(yàn)田,活下來了。如果是PT這種細(xì)分網(wǎng)站,可以通過銷售器材盈利了。
這時(shí)候可以考慮使用云數(shù)據(jù)庫服務(wù),不用擔(dān)心備份了。
數(shù)據(jù)庫備份:云數(shù)據(jù)庫自動(dòng)備份
文件備份:crontab scp
架構(gòu):
PV 10w - 50w:
PV 10w時(shí),需要考慮帶寬了,請(qǐng)看:《互聯(lián)網(wǎng)創(chuàng)業(yè)的準(zhǔn)備——帶寬與CDN》 http://www.cnblogs.com/sink_cup/archive/2012/09/14/web_bandwidth.html 。
這時(shí)可以考慮使用CDN了,10w/天 * 100K * 31天 = 31G,按流量結(jié)算CDN價(jià)格低,為¥20/月。根據(jù)流量情況,可以考慮開啟防盜鏈。
根據(jù)sar的CPU、內(nèi)存、iowait日志,購買更好的vps。
PV 100w:
靜態(tài)服務(wù)器使用獨(dú)立域名,而不是主站的二級(jí)域名,這樣請(qǐng)求靜態(tài)資源時(shí)不會(huì)帶著cookie,節(jié)省用戶上傳帶寬,提升速度。
在國(guó)外購買域名,所有權(quán)有保障(有transfer code),一個(gè)域名的價(jià)格為$1至$10/年。然后使用國(guó)內(nèi)DNS即可,比如DNSpod。
PV 100w時(shí),熱門并發(fā)為15個(gè)/s。對(duì)數(shù)據(jù)庫壓力很小。web server的壓力也小,但是用戶量這么大了,要考慮單點(diǎn)故障,所以web server使用負(fù)載均衡,提高服務(wù)可用性。
數(shù)據(jù)庫備份:云服務(wù)自動(dòng)備份
靜態(tài)文件備份:云服務(wù)自動(dòng)備份
架構(gòu):
以PV來做架構(gòu),都是傳統(tǒng)web服務(wù),即使達(dá)到數(shù)千萬PV,使用云服務(wù)也沒問題。
因?yàn)閭鹘y(tǒng)web服務(wù)并發(fā)量低,對(duì)數(shù)據(jù)庫的壓力小。請(qǐng)看《互聯(lián)網(wǎng)創(chuàng)業(yè)的準(zhǔn)備——數(shù)據(jù)庫》 http://www.cnblogs.com/sink_cup/archive/2012/09/14/ssd_iops_sql_nosql.html。
比如Instagram使用Amazon云服務(wù),達(dá)到820w UV,假設(shè)是5000w PV,并發(fā)量才 5000w / (15小時(shí) * 3600) = 900,并發(fā)很低。
參考《Instagram 架構(gòu)分析筆記》:http://www.dbanotes.net/arch/instagram.html
如果要做電商,要做“秒殺”服務(wù),就是另外一種架構(gòu)了。
淘寶的架構(gòu)已經(jīng)演進(jìn)多年了,可以用來參考:http://www.alidata.org/archives/1789。
第一次做秒殺如何預(yù)估并發(fā)?
做預(yù)約,像小米1S在2012年8月23進(jìn)行搶購,提前幾天進(jìn)行開放預(yù)約,預(yù)約人數(shù)大概為160w。
預(yù)約可以知道多少人很感興趣,其中又只有一部分人會(huì)按時(shí)搶購。
如果不做預(yù)約,有論壇互動(dòng),根據(jù)論壇PV UV也可以預(yù)估。根據(jù)微博轉(zhuǎn)發(fā)獎(jiǎng)勵(lì)也可獲得一定的數(shù)據(jù)。
#p#
并發(fā)10w:
按小米1S在2012年9月6號(hào)的搶購來看,假設(shè)有50w人開著瀏覽器倒計(jì)時(shí)。
小米是分批搶購,20w臺(tái)9分40秒搶購結(jié)束,如果是正常的搶購,流程如下:
第1步:倒計(jì)時(shí)結(jié)束,ajax取回購買鏈接,1秒內(nèi)返回。
ajax是準(zhǔn)時(shí)的,并發(fā)請(qǐng)求50w——web server并發(fā)50w,檢查session 并發(fā)50w(如果使用memcache session或者mongo session,要測(cè)試nosql并發(fā)。如果使用無需存儲(chǔ)的加密仿session,需要測(cè)試cpu能承受多少并發(fā)計(jì)算加密對(duì)比)。
第2步:根據(jù)各人反應(yīng)時(shí)間不同,2秒內(nèi)全部點(diǎn)擊搶購。
并發(fā)請(qǐng)求25w/s——web server并發(fā)25w,檢查session并發(fā)25w,
mysql方案1:count < 20w ——》 insert,返回id即排名。查詢25w/s,寫入20w/s。
mysql方案2:提前寫入20w數(shù)據(jù),user_id為空,update ——》 select查排名。寫入20w/s,查詢20w/s。
2種方案的數(shù)據(jù)庫并發(fā)寫入都要達(dá)到20w/s。折合硬盤iops為10w,如果像淘寶一樣采用15K轉(zhuǎn)速的SAS盤,需要15塊做Raid10,成本為¥2.2k * 15 = ¥33K。如果使用Intel 710 SSD,需要5塊做Raid10,成本為¥2.5 * 5 = ¥12.5K。
架構(gòu):
團(tuán)隊(duì)人多了,就需要考慮后勤,請(qǐng)看《互聯(lián)網(wǎng)創(chuàng)業(yè)的準(zhǔn)備——后勤》 http://www.cnblogs.com/sink_cup/archive/2012/09/14/pc_mac_linux.html。
其他todo:溝通工具、代碼庫、bug系統(tǒng)、域名注冊(cè)與管理、審核系統(tǒng)、代碼書寫規(guī)范
參考資料:
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
原文鏈接:http://www.cnblogs.com/sink_cup/archive/2012/09/14/web_arch.html