BSS/OSS的私有云PaaS平台探索

发布时间:2015-03-01 作者:何晓军(中兴软创)

        BSS/OSS支撑系统,目前基本上采用IOE(小型机+商业数据库+磁阵)的架构,系统采用烟囱方式建设,运维基本是手工模式,每个系统也是分散运维。目前的方式,系统建设周期长,运维低效而且复杂。

  随着云计算、大数据、移动互联网的兴起,在国内,各运营商也在大力推广云计算技术,在BSS/OSS支撑系统部分,也在探讨如何云化。开源PaaS技术目前发展迅速,本文探讨如何利用PaaS技术来搭建企业私有云PaaS平台,解决BSS/OSS云化的问题。

 

开源PaaS平台分析


  现在言必称云计算,云计算一般可以分为3个层次:基础设施即服务(IaaS),平台即服务(PaaS)和软件即服务(SaaS)。若按照服务对象可以分为公有云、私有云和混合云。满足运营商BSS/OSS的云化和云化的运维管理需求下,运营商的BSS/OSS私有云PaaS应该包含哪些关键技术和内容?


  国内运营商都在探索和推动利用PaaS技术构建对应的BSS/OSS的云平台。中国联通在OSS域推UCloud模式,BSS域进行阿里云架构的技术可行性探索;中国电信在2013年正式提出了“平台+应用”的架构模式,其中平台主要关键技术就是PaaS的范畴。


  我们先看看主流的开源PaaS产品,如表1。


  对比分析这几个主流的开源PaaS平台,主要包含以下能力。


  ●   应用的自动化运维能力:提供应用的自动化部署、健康监控。


  ●   技术服务池:为应用系统提供消息中间件、数据库、缓存等技术服务。这些服务基本上是单机模式部署,集群功能需要扩展。


  ●   应用容器管理:可以提供开源的Web容器,如tomcat、Jetty。


  ●   应用负载均衡能力:提供软负载能力,如LB、Nginx、HAProxy等开源软负载。


  那能否直接拿开源的PaaS平台来搭建运营商的BSS/OSS支撑系统的私有云PaaS平台?


  答案是否定的。开源PaaS平台设计上是面向公有云,应用集群、技术服务群都是小集群,只能满足中小系统,完全无法满足运营商BSS/OSS发达省份的技术要求,更无法满足区域集中或者全国集群模式的技术要求。

 

BSS/OSS的私有云PaaS设计分析


  开源PaaS平台基本上面向公有云,目前又处于快速发展期,架构更新很快。公有云主要是管理小型应用,对于企业应用,尤其企业大型应用还需要做深度定制化开发才能支持。运营商的BSS/OSS支撑系统,对于一些发达省份而言,大部分系统都规模较大,若是考虑区域集中和全国集中模式,多数系统都属于大规模系统。直接用开源PaaS平台,只能满足小省份BSS/OSS的非核心系统要求,对于核心系统和大省份完全无法满足。


  运营商对BSS/OSS支撑系统云化要求采用去IOE技术、系统要满足横向扩展的分布式架构、云化具备自动运维能力、应用具备服务化能力。


  结合这些要求,BSS/OSS私有云PaaS平台需要提供如下能力。


  ●   大集群的自动运维能力:抽象管理应用集群、技术服务集群,能提供这些集群的自动化部署、升级和伸缩管理。


  ●   开源应用容器:广义去IOE实际上是去商业化,原先的Web中间件主要是商业产品,平台也需要提供开源Web中间件容器。


  ●   分布式技术服务:应用从单机向分布式架构演进中,原先的单机技术服务需要向分布式演进,原先单机内部通信需要向跨机通信演进。单机的MDB(内存数据库)、流程引擎、缓存、关系数据库需要向分布式演进,需要提供分布式关系数据库、分布式MDB、分布式流程引擎、分布式缓存技术。


  ●   应用服务化管理能力:目前系统划小是主要趋势,原先大粒度的服务会划分为更多的小粒度服务。平台在服务化小后,能提供相关服务治理和服务管理的技术手段。


  中兴软创搭建的私有云PaaS平台主要是面向企业私有云,架构上也向PaaS靠近,主要目标是解决大型应用云化和大集群的自动运维,引入很多去IOE的分布式技术服务解决大型应用问题,采用自主研发的通用集群管理技术解决自动运维问题。


  BSS/OSS私有云PaaS平台的逻辑功能架构如图1所示。


  ●   自动运维能力设计


  自动运维能力主要依赖应用管理平台模块实现,主要包含应用集群的部署、升级、伸缩管理,以及技术服务集群的部署、升级管理。


  实现思路是基于开源部署工具,自主抽象统一集群管理,研发集群配方配置管理,集群配方自动化部署。


  通过分析Web应用集群、MySQL集群、消息中间件集群、分布式缓存集群、分布式MDB集群等集群节点构成和节点运维要求后,抽象出集群模型来管理上述集群。


  集群模型主要包含集群层、集群角色层,一个集群可以由多个角色组成,不同角色的节点数目至少1个,每个角色上可以定义不同的动作,这些动作是一个配方脚本,内容可以是部署、升级、伸缩等操作。集群层面也可以配置对应的动作,这些动作也可以是跨越角色的动作。


  发布管理根据集群实例的发布计划执行对应的动作。技术服务集群、应用集群的自动运维依赖于发布管理来实现,相关模型配置好后,通过自动运维管理后端执行对应的发布计划就可以实现对应集群的部署或升级。

技术技术服务管理是对于ZDaaS(分布式MySQL集群)、分布式MDB、分布式缓存、消息中间件、流程引擎等技术服务集群实例提供管理,提供相关的集群配置、部署、升级管理。可以把相关服务开放给应用侧。应用可以共享也可以独享相关技术集群,具体依赖应用侧隔离策略。


  应用管理提供应用的全生命周期管理,从应用集群的定义、部署、升级、伸缩管理、下线管理。应用可以定义自己的隔离策略、资源模板,技术服务申请时可以根据隔离策略获取到对应的技术服务访问入口。


  监控管理部分提供报表框架或仪表盘框架,提供对应用、技术服务和资源池的健康度管理。


  资源池管理除了提供集群实例与主机的管理,还提供平台与IaaS统一接口,通过云驱动调用底层资源池API获取对应的资源。


  ●   应用容器能力设计


  为Web应用提供相关开源运行容器,主要是支持相关容器的部署、集群管理。


  ●   数据库扩展能力设计


  ZDaaS提供基于MySQL集群的关系数据库扩展能力,是基于开源数据库代理中间件扩展研发的产品,ZDaaS可以把多个MySQL实例映射一个逻辑实例,应用通过ZDaaS看到的是一个逻辑库,主要扩展了结果集合并、GID、分布式事务、运维管理功能。


  MDB是单机版的自主研发的内存数据库,具备SQL、ACID、数据持久化、镜像等功能。分布式MDB是单机版的延伸,主要增加了集群功能、分布式事务的功能。


  分布式缓存主要是基于开源分布式缓存产品,延伸研发相关的监控管理,主要是缓存高频度的数据,减少对关系数据库的压力。


  ●   分布式技术服务设计


  分布式消息中间件主要以开源产品为基础,延伸相关配置、监控功能。消息中间件提供分布式的消息通信能力,支持消息分类、消息持久化。


  分布式流程引擎属于自主研发的产品,提供分布式部署模式下的流程引擎服务,底层是基于ZDaaS存储流程实例数据。


  ●   服务管理能力设计


  轻服务总线提供服务目录、服务治理和服务跟踪能力,也是基于开源产品基础延伸研发相关的服务跟踪功能和服务路由策略功能。

 

  BSS/OSS的私有云PaaS平台中的ZDaaS组件已经应用于广西电信、安徽电信、河北电信;自动运维模块2015年将在江苏电信落地,解决OSS域系统云化的应用系统和技术服务的自动部署、自动升级问题;分布式流程引擎的分布式版本已经发布;分布式MDB将在2015年6月发布分布式的版本;轻服务总线正在研发服务跟踪治理能力,将在2015年发布。中兴软创BSS/OSS私有云PaaS平台将助力运营商解决BSS/OSS云化过程中的各种实际问题,实现能力提升。