5.4 健壮Paas

       对于健壮的paas则有更多的要求,还是秉承前面一个章节阐述的业务系统的架构要求,看看对于paas平台有那些要求:

1、应用托管和自动部署

  • IaaS 层是应用到物理服务器的解耦,而在 PaaS 层是应用和中间件资源池的解耦。要进行自动部署则开发的应用必须符合 PaaS
  •   对于虚拟化有两个层面:服务器虚拟化提供的是虚拟机裸机和应用虚拟化提供的是包含了中间件 +
  • weblogic , jboss , was , tomcat
  • +
  •   对于自动部署过程,一般为上传符合 paas 规划的应用部署包,选择中间件容器,选择计算单元的数量,即可以进行自动部署工作。自动部署一般针对应用服务器层,涉及到数据库层面的一般来说只能做些相应的初始化工作。  


3、路由和软集群模块

       这个类似于CloudFoundry里面的router模块功能。主要是实现一种软集群,对进入的request请求进行路由分发。对于CloudFoundry的Router组件,目前版本是对nginx的一个简单封装(http和反向代理服务器)。Router组件是外部request请求进入的唯一入口。

       因此前面谈到的调度决策完成后,需要对新增的计算单元挂接到Router组件上,即Router组件上能够进行负载均衡和路由分发的节点增加一个。实际在Router组件在进行路由分发的时候仍然类似传统的负载均衡方式进行。传统的负载均衡本身可以支持多种策略,包括数据量均衡策略,request请求的均衡策略,基于session层面保存的均衡策略。一个Router组件要实现各种均衡策略不是一件容易的事情。

 

5.4.1架构和组件


5.4.2业务流程

 

5.4.3实现方式

       和之前的paas平台不同的是对apps池和service池的管理,程序员在部署业务系统的时候,不需要关注具体的vm的信息和os的规格,地址和id由cc控制,程序员只需要管理到服务的id即可。我们为将来众多的业务应用,构建了硕大的资源池,在为这些系统支撑的同时,池自身需要是可支持分布式应用和可水平扩展的系统,所以在这里各个组件都是可拆开可复制,统一通过消息机制来传递指令。

 

 


 

图54-01 部署图

 

       从总体架构来说,分为前端架构和后端架构,前端架构特指手机客户端应用,解决终端用户通过ipad,智能手机上网的方式,核心思想是架构在webkit容器之上,利用html5在各个智能手机,掌上电脑,不同手机操作系统之上统一展现形式。后端架构是基于云端部署的服务平台,为用户提供各种类型各种风格的文化项目的生命周期的管理,为此云计算服务平台提供多种语言环境,包括php,ruby,以及java语言环境,并提供良好用户界面,提供部署和测试和打包的能力,后端架构分为2大层,paas层和iaas层,期中paas层来控制项目的生命周期,以及提供缺省的平台服务,包括mysql,tomcat等,iaas层提供资源的管理,为上层应用提供vm的生命周期的管理。

 

       后端架构因为内容丰富,简单的分为2层无法清晰的表达功能,所以采取分域的模式进行阐述,后端架构从领域的视图分类,可分为:

  1. nginx
  2.   移动计算 -Paas
  1. paas 平台的核心,提供了部署语言的执行能力,夸 iaas
  2. war/zip 的上传管理,部署管理(单一 war/ 多个 war
  3. 发布订阅:把分域模块通过异步处理又关联起来,各个域模块都允许扩展,只需要在“发布订阅”模块中声明。
  4. apps 管理来的指令,来启动 1~m 个服务实例,并对外提供 id ,由“ apps 管理”进行服务和 apps
  1.   应用池域:是装载终端用户上传的项目场地,提供包括 java , php
  2. mysql , tomcat , mq , node.js , php
  3. 移动互联网服务域:为手机上网用户提供的特定服务,包括手机用户鉴权,统一接口接入,终端应用打包以及终端应用调测等服务。
  4. 核心服务域:为用户上传的项目提供通用服务能力,包括定时调度,应用认证,全文检索,缓存服务,消息服务,配置服务等。
  5. bigData 域:针对大数据应用服务提供,大数据处理方式和通用处理模式不一样,采用的是分布式文件系统以及 mapreduce 的处理机制,采取了 hadoop+hdfs+hbase+zookeeper ,处理后的数据被存储在关系数据库或者 nosql
  6. HA
  7. 监控域:获取各个模块的当前参数信息,反馈给管理者,并与特定的自动处理脚本关联,提供了自动处理的方式。
  8. devops
  9. iaas 层构筑的抽象层,通过 jclouds ,提供了对 openstack,cloudstack 等 iaas 控制能力,管理 vm

 

上一篇 从项目开发到云端架构(18)  :http://timeson.iteye.com/blog/1717288

下一篇 从项目开发到云端架构(20)  :  http://timeson.iteye.com/blog/1797055