CRM系统第三代架构云化方案解析
2015-11-18刘俊杉郑培伟
段 莉,刘俊杉,郑培伟
(中国移动通信集团设计院有限公司黑龙江分公司 哈尔滨150080)
1 引言
随着移动E 联网时代到来,客户接触渠道多样化,客户接触数据、客户描述信息等数据大量增多,CRM(Customer Relationship Management,客户关系管理) 处理业务量和数据量的增长速率远大于用量的增长速率,相应突发大规模访问的需求增多,瞬时高流量并发处理是即将面临的问题,如淘宝“双十一”瞬时交易量增长10 多倍,对系统响应的实时性要求不断提高,对系统性能提出新的挑战。
为助力公司构建移动E 联网时代的竞争优势,推进两级支撑系统的云化、E 联网化和共享化的同时,针对突出的痛点问题,集团公司启动2014年CRM 系统云化架构改造试点工作,提升服务标准化,实现分布式数据部署和加强安全管控。
CRM的转型要求从传统的CS/BS 计算模式(Server-Centric)逐步向SMAC 计算模式转型,实现全云化CRM(Service-Centric),具备大数据实时驱动、动态高弹性架构、能力集成与外延等特征。CRM架构转型示意如图1 所示。
遵循支撑系统持续演进规律,充分考虑现有系统的痛点诉求,采用“先紧急后普通、先易后难、从外围到核心”的方式,逐步实现运营支撑系统的x86 化。以关键应用分布式/小型化改造为基础,搭建开放化、标准化的软硬件架构,支撑动态能力扩展,控制运维成本。CRM 体系架构概念图如图2 所示。
2 应用架构和技术架构的x86 化
省级CRM 系统技术架构应逐步支持x86 平台,并向低成本的x86 云化基础设施部署或迁移。通过应用接入分通道,对资源进行集群化,全面均衡各通道的系统压力,提高系统资源的整体利用率。当硬件资源实施池化后,即可支撑CRM 应用的弹性伸缩,实现硬件的按需分配,充分提高资源利用率。
(1)接入层
接入层主要承载负载均衡软件,如F5、Radware,直接负责用户Web 请求接入层,可以实现在x86 上的部署。
建议方案:接入层全部实现刀片化,实现x86化迁移和处理。
(2)应用层
应用层基本由Tuxedo 中间件及Web 中间件承载,应逐步向x86 体系转移。
建议方案:应用层为非Java 中间件的,支持系统向x86 主机迁移;应用层为Java 中间件的,支持将应用层迁移至x86 刀片机。
3 数据架构的x86 化
数据层目前主要承载在Oralce 数据库上,逐步向MySQL/NoSQL 数据库做尝试性迁移。
建议方案:数据层应逐步在某些非核心业务模块试用MySQL 等开源数据库,逐步探索和尝试;逐步引入分布式数据库,管理非核心数据及查询类数据。
4 虚拟池化方案
构建业务支撑系统IT 资源池,包括Power 资源池和x86 资源池,云平台通过Wincenter 实现对Power 刀片服务器和x86 架构服务器的管理。WCE是Wincenter的重要功能模块,底层硬件支持x86架构服务器,支持Xen 虚拟化技术,实现对x86 架构服务器的管理。IBM PowerVM 和IBM System Director 是Power 资源池的管理组件,Wincenter 通过SCE 组件,实现对Power 刀片服务器的管理。具体如图3 所示。
除CRM 核心数据库外,CRM 云化架构中的服务器均部署在IT 资源池上。其中,内部服务总线服务器部署在Power 资源池上,采用Power Linux 系统;接入展现层服务器和后台应用服务器均部署在x86 资源池上,采用Redhat Linux Enterprise 系统。
通过资源池,实现对虚拟化资源的集中管理;通过人性化的操作界面、集中化的管理,屏蔽Xen/PowerVM 这些不同的虚拟化平台操作模式。
5 资源调度与控制方案
在云架构中,管理软件通过在虚拟化管理层部署资源生命周期管理组件、资源配置部署组件、资源调度组件、资源模板管理组件等,对资源池中的各种资源对象进行调度和控制。
资源部署通过预定的自助服务申请流程实现快速业务上线,主要过程如图4 所示。
在业务上线后的运行期,承载关键应用的物理资源的单点故障需要在云化架构中进行有效防范,云化架构的资源控制在物理机意外宕机时,通过HA 故障迁移,根据策略机制或手动迁移将虚拟机切换到集群中的正常物理机上,过程如图5所示。
CRM 应用的负载随不同业务期、不同时段而变化,云化架构平台通过支持动态弹性集群实现弹性计算,应对突并发流量和负载的增长,实现对资源的动态调度和控制,过程如图6 所示。
6 J2EE 架构关键方案
J2EE 架构引入的关键技术方案主要有两种。
①J2EE 技术架构:包含了前端界面展现框架、端到端流程打通、上下文管理、交互协议、日志管理、异常管理、缓存管理、加解密等通用的技术组件等。
②分布式服务框架(DSF):DSF 在参考互联网框架Dubbo、Facebook的基础上,做了大量的优化,使其更加轻量和灵活。
6.1 J2EE 技术架构
前台J2EE 架构使用USL(User Interface Specific Language,用户界面语言) 实现界面开发,USL特性通过一套成体系的Web UI(UserInterface,用户界面)组件来承载,设计为面向声明式的开发,支持元数据的描述;封装了AJAX 技术,从而支持声明式的页面区域数据提交、后台服务执行、页面区域刷新(页面元素的增减、数据的变化)。整个系统采用J2EE 架构,分为Web 层、服务层、数据层,如图7 所示。
(1)Web 层
界面开发基于USL,其核心是抽象一组特定的UI 组件,并基于UI 组件约束一套开发语法。
(2)服务层
服务层通过高速的分布式服务框架,实现业务的快速开发和组装,主要功能有以下几种。
①内部高速通信:DSF 用于系统内各模块之间的服务调用,使用基于Socket的内部二进制通信协议(参考淘宝Dubbo 和C++中的BSBUS),服务提供者和使用者使用基于契约的调用方式,之间不需要像eBUS 那样进行数据和接口转换。
②远程和本地智能路由:内部进行智能路由,支持服务提供者和使用者部署在一起时,智能转换为内部API 调用;分离部署时,自动发送到远端服务提供者的服务器上。
③动态服务接口:除了提供基于Interface的服务调用方式,同时提供动态服务的接口调用能力,基于这种方式,服务提供者不需要提供Interface Class 文件给使用者,使用者根据约定拼装服务参数,运行时会自动根据服务规格进行校验。
④多种实现方式:服务支持Micro Flow、POJO、Groovy 脚本等多种实现方式。
⑤服务流控:提供服务静态过负荷和动态过负荷能力。
(3)数据层
在数据层重点提供了分布式数据访问组件,实现异构数据库的透明访问以及数据库连接数的收敛。
6.2 分布式服务框架
分布式服务框架作为整个下一代CRM 系统的分布式服务框架,承载着平台和业务向互联网转型的重任,架构上除了满足典型的CT 场景外,也具备典型的互联网架构特性。
①提供面向互联网/分布式环境下应用后台服务开发和运行框架;
②支持云化服务弹性伸缩;
③提供服务统一开发框架,服务实现支持多种开发方式;
④一切皆服务的理念,支持服务的无状态路由和调度,支持服务的自发现、自管理;
⑤支持服务的异步调用和传统的RPC 阻塞式调用两种方式。
7 结束语
相比于传统客户机服务器架构,分布式云化架构因其服务化、高弹性等技术特征,更适应E 网时代的要求。2014年集团公司启动CRM 云化架构改造试点工作,并且尝试特定功能域的服务中心化,为向云化架构的全面演进打下基础。