中大型移动互联网公司技术架构选择(转载)

时间:2014-08-08 20:53:16   收藏:0   阅读:548

原文地址:http://2014.54chen.com/blog/2014/03/05/ihaveadream/

 

总体思考

总结这些年经验,进行构架演进的方向选择时,大致要做到下面的目标:

bubuko.com,布布扣

上图纯手绘花了些时间,本文以此图从上到下的顺序进行描述。

用户

在移动互联网环境下,用户会被分为好网络的用户和坏网络的用户,我们要为坏网络的用户尽一切可能提供合适的链路和可靠的DNS。

接入层

在接入层的代码层面,需要准备client-server套件,这意味着,需要一个同时了解android\ios..等客户端和服务器端开发的团队,专门打造网络套件。

业务接入层

这一层的目标是灵通机动调配流量,往往大家的方案都是LVS,或者是F5等。更高大上一点,再上一些流量分析设备,在有突增的时候好用来找问题。

业务层

在统一的业务框架下,去完成各个灵活组织的BIZ逻辑,这里就涉及到异构系统对一个大型公司的影响。

RPC框架与队列

二者一起完成数据在IDC的传递,不同在于,一个是同步,一个是异步。

配置管理

zookeeper当选最佳角色,上点规模的服务里基本都会有zk的身影。

日志系统

统一的日志系统,对未来发展中所需要的各种数据更加容易得到。日志系统的特点要求:快,容网络错误,部署简单,进程稳定,可水平扩展。

监控报警系统

ganglia与nagios仍旧是最好用的开源管理软件。

跟踪系统

当系统出现bug的时候,用来快速debug,当服务越来越多的时候,跟踪系统是个必不可少的工具。

PAAS Agent Daemon

整体统一的运维平台的客户端程序,此程序负责:向监控系统汇报硬件及网络数据,启动和停止应用程序,向监控系统和PAAS平台传递应用程序的运行状态。

存储平台

此层包括所有重状态的hosting service。

PAAS 资源控制层

目标是实时反馈整个或多个IDC内部的内存还有多少、CPU是否够用、下次采购还需要多少机器。

PAAS用户界面层

这一层主要面向运维和开发人员,比如用来上线服务、添加删除机器。

自动部署层

一般都以hudson的CI(持续构建)完成之后进行,但可自动化的部署一定需要测试框架非常靠谱,以及测试代码靠谱,否则就是个悲剧。

测试框架

借用一些高级框架,让代码写少一点,比如jmockit、spring-test等等。

编译工具

java的maven为不二选择。编译好的包仓库,推荐nexus。

代码生成

开发人员不需要重复进行操作,只要框架是固定的,所有的代码应该都是可以生成的。只需要花精力去修改核心逻辑。

代码质量

在工程师的代码完成之后,跑一遍静态分析,可以提前发现一些问题,可以做成定期的模式,与持续集成放在一起。

代码及常规系统

PAAS for DEV & TEST

 

中大型移动互联网公司技术架构选择(转载),布布扣,bubuko.com

原文:http://www.cnblogs.com/tommyli/p/3899841.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!