写点什么

如何进行平台型网站架构设计?

  • 2009-10-26
  • 本文字数:1272 字

    阅读完需:约 4 分钟

在欧拉的“平台网站架构设计之我所见”的博客中,他从选择技术方案和物理架构、平台研发和架构优化等方面阐述了他在多年的平台型网站架构设计过程中的经验心得。

欧拉先是分析了在选择技术方案和物理架构中的几个常见问题,以来解决如何提高开发效率,使平台具有高性能、高负载性的问题:

开发语言和数据库:我个人觉的最关键是你和你的团队最擅长的开发语言和数据库是哪个,古语有云:“工欲善其事, 必先利其器!”,趁手的开发语言和数据库有助于事半功倍。试想如果你选择了一个并不很熟悉的语言,也许这个语言和数据库在基础性能上的确比你掌握的语言好,但是在研发过程中学习曲线肯定长。成熟框架还是自己实现:我个人的一些经验是,尽量使用开源的成熟框架,因为平台研发初期使用成熟的开源框架,能提高开发效率,并且在质量上有保证。我曾经接手过一个平台的改版,框架是前面开发人员自己写的,里面的一些设计思想不是很成熟,导致平台在负载增高后性能很差,整改起来很麻烦。

除此之外,Web Server/DB Server/Cache Server 的选择也是很重要的一点,欧拉认为这一部分一定要使用具有前瞻性、易配置、能监控和维护的产品,并提出几个选型的标准:丰富和深入的配置选项、基于高并发模型、支持负载均衡和请求分发、高效的缓存机制、实时的状态监控机制等。而对于操作系统的选择,则要稳定安全、易管理和维护、易监控等。对于物理架构,即服务器的搭建方式,欧拉同样认为前瞻性是非常重要的:

平台初期的话,我想大部分访问量都不高,Web Server/DB server/Cache Server 放在一台服务器上都没问题。但是自己心里最好能预估一下这个平台会发展到什么样的规模,在做架构设计的时候,按照事先预估的来决定怎么做物理架构,并为以后的架构升级做准备。说到这里,想到前百度架构师雷鸣说过的一句话,当你的会员数达到目前的 5 倍或 10 倍的时候,架构就要升级。

在实质性的研发过程中,需要注意的是平台网站研发的模式和传统 IT 项目研发的不同,以前是开发过程中要和客户、需求人员等打交道,而现在关注的是产品设计。对于平台网站研发项目的管理,欧拉推荐使用敏捷开发方法,通过设立短的发布周期进行迭代开发,并使用 JIRA 等成熟的项目管理系统进行管理等。对于团队研发需要注意的地方,欧拉总结如下:

  • 合适的开发工具;
  • 如何控制代码质量;
  • (根据)需要引入新框架;
  • 知识总结和培训。

对网站研发过程中的架构优化、存储和搜索等关键点,欧拉也分享了自己的经验,比如对于网站速度慢,而却又不知如何下手的问题,欧拉提出的解决方案是:

我的经验是从数据开始,从最外围开始画圈,找到源头。先从外围开始收集日志,比如 access_log 访问日志或 sql_log 数据库操作日志,找出访问最多的 10 条日志和执行时间最长的 10 条日志,然后根据日志去反查到底是什么引起的操作,然后一条条的解决。如果解决不了,那么就考虑重构。

在文章的最后,欧拉来分享了一些他认为有价值的资料,比如新型的大型BBS 架构(Squid+Nginx) Nginx 图片服务器的架构方案校内相册发展过程及核心技术分析爆料架构设计贵在务实大型网站架构不得不考虑的 10 个问题等。

2009-10-26 20:569100

评论

发布
暂无评论
发现更多内容

架构师第 9 课作业及学习总结

小诗

「架构师训练营第 1 期」

第 12 周作业

Steven

架构师第 13 课作业及学习总结

小诗

「架构师训练营第 1 期」

DAPP智能合约APP开发|DAPP智能合约软件系统开发

系统开发

架构师训练营第 1 期 - 第 13 周 - 学习总结

wgl

「架构师训练营第 1 期」

架构师训练营第 1 期 - 第 13 周 - 命题作业

wgl

「架构师训练营第 1 期」

大数据计算引擎Spark

积极&丧

架构师训练营大作业

Cheer

架构师第 5 课作业及学习总结

小诗

「架构师训练营第 1 期」

数字货币合约交易系统软件APP开发

系统开发

Python 100 天从新手到大师

GitHub指北

架构师第 7 课作业及学习总结

小诗

「架构师训练营第 1 期」

大作业一

饭桶

大作业二

饭桶

「架构师训练营 4 期」 第二周 - 0201

凯迪

大作业:知识点图谱

paul

重学JS | this的指向问题

梁龙先森

大前端 编程语言 28天写作

架构师第 11 课作业及学习总结

小诗

「架构师训练营第 1 期」

架构师第 8 课作业及学习总结

小诗

「架构师训练营第 1 期」

架构师第 10 课作业及学习总结

小诗

接私活必备的 6 个开源项目

GitHub指北

软件架构知识树

Andy

Prometheus官方文档【查询篇-运算符】

卓丁

Prometheus Monitor 监控告警 普罗米修斯 PromQL

依赖倒置与接口隔离原则

玄月

JVM 垃圾回收机制分析

Andy

大作业二

「架构师训练营第 1 期」

Windows安装Mysql

千泷

Dubbo微服务调用时序图

Andy

作业-第12周

arcyao

软件架构设计实战

Andy

架构师第 12 课作业及学习总结

小诗

如何进行平台型网站架构设计?_Web框架_霍太稳@极客邦科技_InfoQ精选文章