支持快速迭代的LAMP解决方案 ——贴吧LAMP解决方案

  • 时间:
  • 浏览:1
  • 来源:幸运飞艇_幸运飞艇官方

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

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

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

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

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

领域:架构

本文转自百度技术51CTO博客,原文链接:http://blog.51cto.com/baidutech/742972,如需转载请自行联系原作者

摘要:天下武功,唯快不破,互联网竞争的利器就说 快!且听贴吧LAMP解决方案咋样全面支持快速迭代。

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

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

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

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

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

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

by zhouren

关键词:LAMP,快速迭代

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