互联网创业的准备——架构

《互联网创业的准备》系列文章——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

posted @ 2012-09-14 18:10  sink_cup  阅读(4782)  评论(7编辑  收藏  举报
Creative Commons License

本站原创作品采用知识共享署名 3.0许可协议进行许可。