`
txf2004
  • 浏览: 7068292 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

[转]小规模低性能低流量网站设计原则

阅读更多

到处都是什么大规模啊,高流量啊,高性能之类的网站架构设计,这类文章一是满足人们好奇心,但看过之后也就看过了,实际收益可能并不大;另外一个副作用是容易让人心潮澎湃,没学走先学跑,在很多条件仍不具备的情况下,过度设计、过度扩展(高德纳大爷也说过,"过早优化是万恶之源"),所以,这里反弹琵琶,讨论一下小规模低性能低流量的网站该如何搞法。

如果站点起步阶段可能就是一台机器(或是一台虚拟机,比如 JobsDigg.com ),这个时候,去关注什么数据拆分啊,负载均衡啊,都是没影子的事情。很多大站点的经验绝不能照搬,辩证的参考才是硬道理。

拥抱熟知的技术

动手构建站点的时候,不要到处去问别人该用什么,什么熟悉用什么,如果用自己不擅长的技术手段来写网站,等你写完,黄花菜可能都凉了。所以,有现成的软件组件可用,就不要自己重新发明轮子。人家说 Python 牛,但自己只懂 PHP ,那就 PHP 好了,如果熟悉 .net ?,那也不错。用烂技术不是丢人的事情,把好技术用烂才丢人。

架构层次清晰化

起步的阶段应该清楚的确定下来架构的层次。如果都搅和在一起,业务一旦扩增开来,如果原有的一堆东西拆不开就是非常痛苦的事情。

Web Server <--> (AppServer)<-->Cache(eg. Memcached)<-->DB

层次清晰化的一个体现是(以 LAMP 架构为例):即使只有一台机器,也应该起个 Memcached 的实例,效果的确非常好--一般人儿我不告诉他...不要把什么都压到 DB 上,DB 一旦 I/O 压力走到磁盘上,问题要暴露出来是很快的。没错,DB 本身也会利用自己的 Cache,但 DB 的Cache 和 Memcached 设计出发点毕竟不一样。

数据冗余? 有必要

很多人并不是数据库设计专家,如果应用要自己设计表结构什么的,基本都是临时抱佛脚,但三个范式很多人倒是记得牢,这是大多数小型 Web 站点遇到的一个头疼事儿,一个小小的应用搞了几十个表... 忘掉范式这个玩意儿! 记住,尽可能的冗余数据,你在数据层陷入的时间越多,你在产品上投入的就会越少。用户更关心的是产品的设计。

前端优化很重要

因为流量低,访客可能也不多,这时候值得注意的是页面不要太大,多数流量低的站点吃亏就在于一个页面动辄几兆(我前两天看到一个Startup的首页有4M之大,可谓惊人),用户看个页面半分钟都打不开,你说咋发展? 先把基本的条件满足,再去研究前端优化

功能增加要谨慎

不是有个 80/20 原则么? 把最重要的精力放在最能给你带来商业价值的地方。有些花里胡哨的功能带来很大的开销,反而收效甚微。记住,小站点,最有价值的是业务模式,而不是你的技术有多牛。技术是为业务服务的,不要炫技。

有些网站不停的添加功能,恰恰是把这些新功能变成了压死自己的稻草。

从开始考虑性能

这一点是可选的,但也重要。设计应用的时候在开始就应考虑 Profile 这件事情。一套应用能否在后期进行有效优化和扩展,很大的程度限制在是否有比较合适的 Profile 机制上。需要补充的是,对性能的考虑必然要把有关的历史数据考虑进来。另请参见网站运维之道的容量规划以及其它小帖子。

好架构不是设计出来的

这是最后要补充的一点。好的架构和最初的设计有关系,但最重要的是发展中的演化:

发展-->发现问题-->反馈-->解决问题(执行力)--> 改进->进化到下一阶段--新问题出现(循环)

有些站点到了某个阶段停足不前,可能卡在执行力这个地方,来自用户的反馈意见上来了之后,没有驱动力去做改进。最后也是死猪不怕开水烫了。最怕听到的就是"业务不允许"的托词,试想如果不改进业务都没了,那业务还允许么? 其实就是一层心理障碍。

这篇文章有浓重的山寨风格,所以,你不要太认真。如果在用短、平、快的方式构建某些山寨网站的话,可参考其中对你有益的点,不赞同的地方可以直接忽视掉,就没必要费力留言进行争论了。

--EOF--

  • 好的业务模式(产品) + 很好的技术 = 大赚钱
  • 好的业务模式(产品) + 能用的技术 = 也赚钱
  • 差的业务模式(产品) + 好的技术 = 赚吆喝(现在的SNS就差不多这样了)
  • 差的业务模式(产品) + 差的技术 = 自己浪费资源
分享到:
评论

相关推荐

    eBay架构设计原则、策略、模式

    在构建大型电子商务网站如eBay时,架构设计是至关重要的,因为它需要应对大规模的数据、流量、用户以及持续增长的需求。eBay的架构设计原则、策略和模式为其他类似规模的平台提供了宝贵的指导。 首先,我们要关注的...

    架构真经-互联网技术架构的设计原则

    该书籍详细阐述了构建高效、可扩展、高可用性互联网系统的关键设计原则,帮助读者理解和掌握如何构建大规模、复杂的应用程序。 首先,书中强调了“模块化”的重要性。模块化设计能够将大型系统拆分为小而独立的部分...

    消防给水和消火栓系统技术设计规范方案图示15S909.doc

    5. 民用建筑室外消火栓设计流量的确定:民用建筑室外消火栓设计流量的确定是指根据建筑的用途、规模和其他因素来确定消防给水系统的设计流量。 6. 单座建筑界定原则示意:单座建筑界定原则示意是指根据建筑的规模和...

    植草沟设计指南.doc

    在这些条件下,植草沟能够以较低的成本和较小的空间占用实现雨水的有效管理。 设计植草沟的过程中,功能分类是重要的一环。转输型植草沟侧重于收集和传输雨水,而渗透型植草沟则在转输功能的基础上,更加注重雨水的...

    中小型风冷冷水机组的设计.pdf

    - 涡旋式压缩机:在中小型系统中,涡旋式压缩机通常优于往复式和螺杆式压缩机,因为它们没有吸气/排气阀,降低了液击风险,且更适合小到中等规模的制冷需求。涡旋式压缩机的成本效益随排量增加而提高,适合半封闭...

    锐捷网络——网络规划与设计

    1. **理解网络层次化设计的优势**:通过分析层次化网络设计的原理与优点,使学员能够认识到这种设计方式如何提高网络的整体性能和可管理性。 2. **熟悉各层次的功能及特性**:详细介绍核心层、汇聚层和接入层各自的...

    企业内部局域网改造设计方案书(1).doc

    目前的系统是简单的对等网,适合小规模用户,但无法满足大规模数据交换和复杂权限管理的需求。对等网的优点是成本低、配置简单,但性能和安全方面存在局限。 设计思路分为系统需求分析、概要规划设计和详细规划设计...

    广场铺装设计要点PPT学习教案.pptx

    路面砌块的大小需与广场的规模相适应,过大或过小都可能影响到整体效果。 4. **质感**:质感的选取应与周围环境相协调,可以增强空间的氛围。粗糙的质感可能增加防滑性,但也可能带来清洁难度;光滑的质感虽然易于...

    计算机网络课程设计之组建小型企业局域网.doc

    尽管前一种方案成本较低,但性能可能不足,因此选择了性能更优的路由器加交换机方案。 在设计过程中,需求分析是关键,它决定了网络的规模和功能。设计原则应兼顾成本效益和稳定性。拓扑结构图描绘了网络设备的物理...

    通信网络设计的性价比科学网—构建全球华人科学社区.pptx

    2. **问题与目标**:网络设计是否合理,需要考虑传输容量、设计代价、可扩展性和端到端性能。目标是以较低的成本实现高传输容量和高可扩展性,同时保证良好的网络性能。 3. **流量模型**:模型假设每个节点都能发送...

    某冷库氨制冷工艺设计施工图纸.zip

    - 氨的密度小,传热性能好,适合大规模制冷系统。 2. **制冷系统构成**: - **压缩机**:氨制冷系统通常使用螺杆式或活塞式压缩机,负责将低温低压的氨气压缩成高温高压的氨蒸气。 - **冷凝器**:压缩后的氨蒸气...

    中央空调设计参数重点中的重点.doc

    铜管保温设计则选用难燃B1级的橡塑保温材料,要求具有低热传导系数、耐高温性能,并确保保温接口严密。保温材料的选择应根据实际环境条件调整,以防止结露。 综上所述,中央空调设计参数的重点在于准确计算冷负荷,...

    3G核心网规划原则

    - 这种结构能够有效地支持大规模的数据流量,并确保数据传输的稳定性和安全性。 3. **R99核心网电路域本地网网络结构**: - 涵盖了电路域本地网的基本组网方式,包括省Billing(计费中心)、省OMC(操作维护中心...

    大型网站分布式架构的研究和应用.pdf

    这通常通过负载均衡技术实现,确保流量均匀分布到多个服务器,避免单点故障,提高系统的整体性能和容错能力。 此外,文章还提及了建设网站系统的两种主流方式:自建机房和租用云服务。自建机房初期投资高,但可按需...

    分布式系统的架构设计

    在现代互联网技术中,随着用户量和数据量的急速增长,传统的单体架构已经难以满足高效处理大规模流量和数据的需求。因此,分布式系统的设计与实现成为了当今软件开发的重要议题。本文将基于日语资料“分散アプリケー...

    软件设计方案

    - **方案设计思想**:阐述了设计的核心理念和原则。 - **设计方案及设备配置概述**:列出了具体的设备选型和配置。 3. **EIB系统基本技术参数**: - **系统参数**:包括系统的各项技术指标。 - **系统组网规模*...

    计算机水平考试-网络规划设计师分类模拟题通信规范分析、逻辑网络设计二.doc

    - 大区分公司间:由于流量需求较低,600Kbps至1.3Mbps,可以选用基础的DSL或以太网服务,同时配置负载均衡和备份链路。 - 地区分公司与其大区分公司:300Kbps至1.2Mbps的流量,适合使用ISDN或低成本DSL。 - ...

    大规模web服务开发技术

    设计大规模Web服务时应遵循的原则包括: - **模块化**:将系统划分为多个独立的功能模块,便于维护和扩展。 - **层次化**:按照功能划分不同层次,明确各层之间的职责边界。 - **松耦合**:减少各组件之间的依赖...

    计算机网络设计课后答案.doc

    - **方法**:将复杂的大问题分解成多个规模适中的小问题逐一解决。 - **策略**:采用系统论的方法,从整体出发,综合考虑各个组成部分之间的关系。 #### 六、网络工程师的专业知识结构 - **初期**:建议采取广度...

Global site tag (gtag.js) - Google Analytics