互聯網創業的准備——架構


《互聯網創業的准備》系列文章——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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM