阅读更多

10顶
5踩

企业架构

转载新闻 百度贴吧10亿量级LAMP架构分享

2011-12-02 15:34 by 资深编辑 luiang1018 评论(17) 有13259人浏览
导读:天下武功,唯快不破。对日益激烈的互联网竞争你所拥有的利器就是快!本文来自百度贴吧的LAMP解决方案介绍,摘录至此旨在研究分享,看看其是如何全面支持快速迭代的。

贴吧是功能性产品,唯快不破是永恒的准则,这一特点决定了快速迭代是需要解决的关键性问题。快速迭代,分解开来有如下部分:开发阶段,快速开发;测试阶段,包含了环境快速搭建、自动化测试工具;运维阶段,包含了集群管理技术、自动化运维工具;同时,这三方面的工作需要一个整体性的解决方案衔接起来。

早期的贴吧,作为一个高性能社区,功能相对单一,全部采用C语言开发,系统可重用程度低,开发、测试效率低,运维方面的积累也很少。为了提高效率,开始尝试LAMP架构,经过几年的发展,贴吧已全部迁移到了LAMP。随着产品规模急剧膨胀,30+子系统,150+模块,500+机器,10亿+流量,在LAMP架构方面积累了很多经验,逐渐形成了快速迭代的一体化方案。如下图所示:


该解决方案由开发阶段、测试阶段、运维阶段组成。开发阶段又分成接入层、业务逻辑层、存储层。该解决方案支撑大规模的线上应用,同时保持了快速迭代的特性。基于该解决方案,开发人员能专注于业务逻辑开发,测试人员能专注于持续集成,运维成本能大大降低。

开发

开发方面分为接入层、业务逻辑层、存储层。

接入层处于浏览器和后端服务之间,用来解析http协议并组织成相应的协议格式,完成客户端和服务器之间的通信,还包括攻击防范、页面缓存、负载均衡等多种功能。Web server是其核心组成部分。接入层的目标是通过统一的方案提供简单可依赖的接入层架构,经过全面调研nginx具有通用性强、效率高、功能全面、配置灵活等特点,是webserver未来发展的主力军,确定采用nginx统一接入层。

业务逻辑层包含了PHP框架、业务逻辑、LIB库、交互层。业务逻辑层常常包含一些开发规范,这些规范就像法律一样,我们不仅要有法可依,还要有法必依。在我们的解决方案中,PHP框架=规范+库,规范比如目录部署规范、URL规范、配置规范等,这些规范通过相应的库实现,以达到有法必依的目的。LIB库封装常用的功能。基于这个解决方案,开发者开发应用,只需完成业务逻辑部分。

中间层,如下图所示,包含在业务逻辑层中,对于业务逻辑层的快速迭代非常重要。中间层对下做交互抽象,支持各种协议屏蔽协议细节;通过资源定位屏蔽部署细节;通过负载均衡提高系统稳定性。中间层对上做接口抽象,支持服务整合、接口适配、公共逻辑。中间层首先建立系统–子系统–模块的体系,进行服务整合,图中的API-LIB就是根据子系统划分,将各模块的接口(MIDL: Module IDL)转化为子系统接口(SIDL: Service IDL);接口适配,SERVICE的接口通过SIDL描述,让接口描述、接口文档、线上代码等自动同步,可维护性大大提高,同时通过元数据规范保证全系统的接口一致,易用性大大提高;收敛公共逻辑,对于公共逻辑,比如权限逻辑,收敛起来可维护性大大提高。


存储层,提供各种通用服务、组件。其中的通用数据存储框架提供通用的数据存储和访问解决方案,以一种统一的设计模式来支持大多数数据存储模块的设计和实现;统一数据访问接口,对外部屏蔽数据拆分和存储的细节;做到数据存储的良好扩展性,通过通用的数据拆分模式来应对数据增长;将具有共性的需求抽象成通用服务或通用库,以简化设计和开发。

基于该解决方案,开发一个应用只需要:在接入层配置相应的分流,在业务逻辑层开发业务逻辑,使用存储层合适的服务或基于框架完成数据模块开发。能大大的提高开发效率,支持快速迭代。

测试

测试方面,为了支持快速迭代,必须提高自动化程度。而影响自动化的首要因素就是环境自动构建,常见的问题有:环境复杂,比如关联关系复杂;环境搭建代价过大;环境功能不完整等。采用基准环境能解决这一问题,项目上线后自动从scmpf更新到基准环境;测试环境/开发环境从基准环境同步。基于基准环境,系统级别的持续集成也成为可能,同时可以集中大量测试工具。


运维

运维方面面临着很多问题:服务迁移成本高,环境不一致带来各种回滚,机器利用率不均衡,运维自动化程度低。为了解决这些问题,提出PHP系统运维方案。环境同步方面,主要是代码同步的问题,采用运维规范+监控的方案;性能监控方面,基于交互层完成请求状态、交互性能监控,基于调度中心获取机器状态;机器调度方面,通过调度中心完成动态/半自动机器调度。如下图所示:


展望

通过该LAMP解决方案,在开发、测试、运维方面都能极大的提高效率。未来在LAMP架构方面,需要更多的在规范化、平台化上下功夫。规范之后才能开展这种自动化的工作提高效率;平台化可以把各种规范固化下来,提供自动化的支持。

  • 大小: 38.7 KB
  • 大小: 32.8 KB
  • 大小: 9.2 KB
  • 大小: 12.8 KB
来自: baidu-tech
10
5
评论 共 17 条 请登录后发表评论
17 楼 kurier 2011-12-18 21:37
没看到什么关键点,泛泛而谈
16 楼 advantech 2011-12-05 13:58
泛泛而谈,对一线开发人员没太大的实际价值。
15 楼 wuxi7227 2011-12-05 11:09
贴吧没用过,进去看过几次。感觉这篇文章没说到重点上,不愿意透露技术还是作者不了解说不出重点呢。看完了还是不知道大流量系统怎么设计架构,采用何种技术来性能调优的。
14 楼 jansel 2011-12-05 10:53
贴吧的逻辑还是比较简单,而且比较独立,性能解决方案还比较容易想到。难的是那种,逻辑复杂,依赖强,但是还要求性能的。
13 楼 lonelybug 2011-12-04 23:25
流量大,就买好点的卫生巾。这种如何搭建系统的文章太没有可指导性了,没一个网站都有自己的侧重点和性能平静。
12 楼 red_devils 2011-12-04 22:37
http://stblog.baidu-tech.com/?cat=20这里有原文,有些人别那么酸,贴吧的量级很多人做一辈子技术都接触不到.
11 楼 wangfy1685 2011-12-04 11:34
没怎么用,估计是快被淘汰出局的产品了。
10 楼 awol2005ex 2011-12-03 16:29
贴吧很快很稳定 ,反而是百科经常很卡
9 楼 ruby_tei 2011-12-03 11:12
javaeye还是有不少这样的人.嫉妒,小心眼.记得刚来时发个帖子.问一些就业问题,一通贬低.最关键的是不帮我回答问题,只是贬低.怪不得,程序员有好多找不到女朋友.就这样谁跟,谁sb.
8 楼 _j_ 2011-12-03 09:20
百度贴吧不太用

到是在google里搜到百度知道的很多内容,但每次点进去都很慢
7 楼 achun 2011-12-03 07:50
百度还是有很多好产品的,但是贴吧这种垂直搜索的产品应该可以有多种可行的技术实现
而这篇新闻的内容给的不像技术方案,到像是部门组织结构,至于那些层,呵呵,只要有多台服务器的都有这样的架构,没啥新鲜的。
ITEYE和厂商合作是好事儿,这是个大环境,需要沟通合作。不过如果这样操作内容的话。
ITEYE就变成新闻BD站了。
如果给我下任务写百度贴吧,我宁愿写一篇贴吧的管理流程,而不谈技术。
6 楼 dieslrae 2011-12-03 01:43
百度贴吧还行吧,流量蛮大的
5 楼 foohsinglong 2011-12-03 01:12
怎么看,怎么象软广告.
4 楼 aa87963014 2011-12-02 21:31
楼上这2位。。。人家一个贴吧的帖子数可能是你们应用记录数好几倍。。。
3 楼 groovyzhou 2011-12-02 21:30
百度贴吧一到晚上慢得一塌糊涂
2 楼 shaomeng95 2011-12-02 20:18
狗屎,还有脸上新闻?
1 楼 fjjiaboming 2011-12-02 15:57
快个屁.
便宜倒是.

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 转载 - 百度贴吧10亿量级LAMP架构分享

    本文来自百度贴吧的LAMP解决方案介绍,摘录至此旨在研究分享,看看其是如何全面支持快速迭代的。 文章内容如下: 贴吧是功能性产品,唯快不破是永恒的准则,这一特点决定了快速迭代是需要解决的关键性问题。快速迭代...

  • 百度贴吧10亿量级LAMP架构

    本文来自百度贴吧的LAMP解决方案介绍,摘录至此旨在研究分享,看看其是如何全面支持快速迭代的。 贴吧是功能性产品,唯快不破是永恒的准则,这一特点决定了快速迭代是需要解决的关键性问题。快速迭代,分解开来...

  • Bookmarks

    CSDN.NET - 全球最大中文IT社区,为IT专业技术人员提供最全面的信息传播和服务平台博客园 - 程序员的网上家园OPEN开源文档,技术文档分享平台Java开源大全IBM 网站 - 您访问的页面无法显示。中国知识资源总库——...

  • 利用matlab对am,dsb,ssb,ask,fsk,bpsk信号进行正交调制解调仿真

    利用matlab对am,dsb,ssb,ask,fsk,bpsk信号进行正交调制解调仿真,并在不同信噪比条件下对其数字信号进行了误码率的计算。.rar

  • 任务悬赏活动,带分销返佣

    任务悬赏活动,带分销返佣

  • 2024年互联网平台行业分析报告.pptx

    行业分析报告

  • 2024年中国控制膨胀合金箔行业研究报告.docx

    2024年中国控制膨胀合金箔行业研究报告

  • 基于Java的Servlet和JSP的404错误处理设计源码

    本项目是基于Java的Servlet和JSP的404错误处理设计源码,包含46个文件,其中主要包含18个jsp页面文件,12个xml配置文件等。系统采用了Java编程语言,实现了基于Servlet和JSP的404错误处理功能。项目结构清晰,代码可读性强,易于理解和维护。

  • java练习题25.txt

    java练习题

  • 2024年摄影灯箱行业分析报告.pptx

    行业分析报告

  • GTM模式在华为产品营销中的应用glz.pptx

    GTM模式在华为产品营销中的应用glz.pptx

  • Java-GUI介绍和使用

    GUI API包含的类分为三个部分:组件类(component class) 容器类(container class),和辅助类(helper class) 1. 组件类是用来创建用户图形界面的,例如JButton,JLabel,JTextField. 2. 容器类是用来包含其他组件的,例如JFrame,JPanel 3. 辅助类是用来支持GUI组件的,例如Color,Font

  • 物联网嵌入式ESP32开发例程04-FreeRTOS操作系统之列表项的插入与删除C程序代码.rar

    1、嵌入式物联网ESP32项目实战开发。例程经过精心编写,简单好用。 2、代码使用Visual Studio Code + ESP-IDF开发,C语言编程。例程在ESP32-S3上运行。若在其他型号上运行,请自行调整。 3、如果接入其他传感器,请查看发布的其他资料。 4、ESP32与模块的接线,在代码当中均有定义,请自行对照。 5、若硬件差异,请根据自身情况适当调整代码,程序仅供参考。 6、代码有注释说明,请耐心阅读。 7、技术v:349014857;

  • 六数码问题解决方法 可类比到八数码 一个小小的六数码问题求

    六数码问题解决方法 可类比到八数码 一个小小的六数码问题求

  • 工作汇报 年终总结27.pptx

    引言 年度工作回顾 系统进展与亮点 技术创新与应用 市场反馈与用户评价 存在问题与挑战 未来展望与计划 结束语与感谢 一、引言 简要介绍智能家居系统的重要性和发展趋势 回顾本年度的工作目标和重点 二、年度工作回顾 系统建设与维护 完成的项目与里程碑 系统稳定性与可靠性提升 团队建设与培训 团队成员构成与职责 培训与技能提升活动 合作伙伴与资源整合 与供应商、合作伙伴的合作情况 资源整合与利用 三、系统进展与亮点 功能扩展与优化 新增功能介绍与效果评估 现有功能的优化与改进 用户体验提升 界面设计与交互优化 用户反馈与改进措施 四、技术创新与应用 物联网技术的应用 传感器与通信技术的升级 大数据分析与应用 智能家居的智能化管理 自动化控制与节能策略 安全防护与预警系统 五、市场反馈与用户评价 市场反馈分析 市场需求与竞争态势 市场占有率与增长趋势 用户评价总结 用户满意度调查结果

  • Youtube Video Player+Youtube API Unity播放YouTube视频插件包unitypackage

    Youtube Video Player+Youtube API Unity播放YouTube视频插件包unitypackage 支持Unity版本2019.4.40或更高 在您的游戏或项目中播放 YouTube 视频。适用于台式机、控制台和移动设备。您可以在任意位置播放 YouTube 视频。 描述 9 年提供在 Unity 项目中播放 YouTube 视频的解决方案。 现在支持字幕您可以搜索视频、频道、获取视频缩略图和有关视频的信息。您可以从YouTube API获取所有视频数据。 (需要添加自己的api,包含教程)。 使用 Unity 视频播放器或自定义播放器播放 YouTube 视频。 我们支持直播视频,但此功能不适用于 Unity 视频播放器,您需要一个支持 HLS 的视频播放器。

  • 2024年太阳能吸光板用硅胶行业分析.pptx

    行业分析报告

  • 通信原理通信课后答案02.doc

    通信原理通信课后答案02.doc

  • 基于JavaScript的小区物业管理系统设计源码

    本项目是基于JavaScript的小区物业管理系统设计源码,包含319个文件,其中主要包含81个js脚本文件,71个jsp页面文件,66个java源代码文件等。系统采用了JavaScript、Java和CSS技术,实现了简单的小区物业管理系统。项目结构清晰,代码可读性强,易于理解和维护。

Global site tag (gtag.js) - Google Analytics