新闻资讯  快讯  焦点  财经  政策  社会
互 联 网   电商  金融  数据  计算  技巧
生活百科  科技  职场  健康  法律  汽车
手机百科  知识  软件  修理  测评  微信
软件技术  应用  系统  图像  视频  经验
硬件技术  知识  技术  测评  选购  维修
网络技术  硬件  软件  设置  安全  技术
程序开发  语言  移动  数据  开源  百科
安全防护  资讯  黑客  木马  病毒  移动
站长技术  搜索  SEO  推广  媒体  移动
财经百科  股票  知识  理财  财务  金融
教育考试  育儿  小学  高考  考研  留学
您当前的位置:首页 > IT百科 > 程序开发 > 架构

百度贴吧10亿量级LAMP架构分享

时间:2019-12-02 11:45:09  来源:  作者:

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

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

百度贴吧10亿量级LAMP架构分享

 

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

开发

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

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

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

LIB 库封装常用的功能。基于这个解决方案,开发者开发应用,只需完成业务逻辑部分。

中间层,如下图所示,包含在业务逻辑层中,对于业务逻辑层的快速迭代非常重要。中间层对下做交互抽象,支持各种协议屏蔽协议细节;通过资源定位屏蔽部署细节;通过负载均衡提高系统稳定性。中间层对上做接口抽象,支持服务整合、接口适配、公共逻辑。

中间层首先建立系统–子系统–模块的体系,进行服务整合,图中的 API-LIB 就是根据子系统划分,将各模块的接口(MIDL: Module IDL)转化为子系统接口(SIDL: Service IDL);接口适配,SERVICE 的接口通过 SIDL 描述,让接口描述、接口文档、线上代码等自动同步,可维护性大大提高,同时通过元数据规范保证全系统的接口一致,易用性大大提高;收敛公共逻辑,对于公共逻辑,比如权限逻辑,收敛起来可维护性大大提高。

百度贴吧10亿量级LAMP架构分享

 

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

 

百度贴吧10亿量级LAMP架构分享

 

 

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

测试

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

百度贴吧10亿量级LAMP架构分享

 

运维

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

百度贴吧10亿量级LAMP架构分享

 

展望

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



Tags:百度贴吧   点击:()  评论:()
声明:本站部分内容来自互联网,内容观点仅代表作者本人,如有任何版权侵犯请与我们联系,我们将立即删除。
▌相关评论
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
▌相关推荐
贴吧是功能性产品,唯快不破是永恒的准则,这一特点决定了快速迭代是需要解决的关键性问题。快速迭代,分解开来有如下部分:开发阶段,快速开发;测试阶段,包含了环境快速搭建、自动化测...【详细内容】
2019-12-02   百度贴吧  点击:(0)  评论:(0)  加入收藏
百度贴吧作为亚文化聚集地之一,其影响力,不言而喻。同样是贴吧引流,有的人粉丝源源不断,有的人却只能看其帖子下沉,究其原因,就在于是否狠抓每个细节。从贴吧帐号、帖子标题、帖子...【详细内容】
2019-08-19   百度贴吧  点击:(34)  评论:(0)  加入收藏
网站建设好后,很多企业最关心两个问题,一个是网站排名,一个是流量增长。在做SEO优化的时候应该注意,百度这样的搜索引擎,对自己旗下的产品,比如百度贴吧,百度知道等,是有权重倾斜的,...【详细内容】
2019-07-19   百度贴吧  点击:(47)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条