刘沛强
(1.华为技术有限公司,广东 广州 510627;2.广州梦海信息技术有限公司,广东 广州 510665)
近十年来,随着各种开源项目的蓬勃发展,IT业界出现了越来越多成熟可用的开源软件。而互联网厂商,特别是电商井喷式地发展,普遍要求高可用、高并发、大容量的系统架构。互联网厂商与开源项目的结合日益加深,谷歌和亚马逊等巨头甚至自研开源软件以支撑业务的发展。一系列互联网龙头企业的成功,为上述系统架构的推广提供了最好的范例。与互联网企业不断进行技术创新和颠覆相反,移动运营商由于转型较慢,系统架构相对保守,但运营商也存在系统架构更新换代的迫切需求。一方面,由于用户需求从语音、短信逐渐过渡到面向网际互联协议(IP)的长期演进语音承载(Voice over Long-Term Evolution,VoLTE)、规模化的物联网(Internet of Things,IoT)、低时延的车联网、VR 等业务,需要支持网络切片;另一方面,需要降低运营成本,特别是需要降低服务器成本和日常运维的成本,高昂的成本严重影响了运营商的利润。因此,互联网企业催化成熟的众多开源软件,为移动运营商的系统架构提供了很好的范例。
目前中国移动集团公司客户关系管理(Customer Relationship Management,CRM)采用的是集团公司CRM+省公司CRM 的二级架构[1],各省份的CRM系统独立进行建设,它们由不同的厂家进行研发,只要满足与集团公司的接口协议即可,但各厂家采用的是不同的系统架构。由于运营商对系统架构的高可用和高并发有极高的要求、对接的子系统繁多、数据量庞大而复杂,因此普遍采用相对保守的技术架构,对开源软件持审慎的态度。总的来说,目前移动运营商的CRM 架构有以下特点:
单体式服务的优点在于编译、发布方便,结构简单清晰,只需要访问单台的数据库,因此容易进行网络规划,数据备份恢复也相对容易。但模块之间耦合度很高,扩容比较麻烦,并且数据库访问压力较大,因而对系统稳定性要求极高,服务器一般采用小型机。分布式服务克服了单体服务的上述缺点,由于关键的模块分开部署,分担了系统的压力,服务器可以采用小型机或X86 结构的PC server。
单体服务的系统结构,在存储方面通常采用集中式的存储,主要采用Oracle 数据库和易安信(EMC)公司的存储服务器,以满足超大规模的存储容量和超高的处理速度。同时,采用光纤通道与服务器进行传输,以满足大容量的数据交换的要求。也有的省份采用分布式存储结构,即将不同功能模块的数据分开存储,以减轻数据库压力。
CRM 的某些业务需要进行跨地市交互,例如省内家庭网、异地补卡等业务。有的省份数据量不大,可以使用同一个实例进行处理,能确保在一个事务中进行提交。而有的省份数据量非常大,不同的地市的服务和数据分布在不同的实例上,需要进行跨区服务调用进行业务处理。这种架构一般采用异步方式处理跨地市业务,因此需要一定的纠错机制,例如业务回退或者数据一致性稽核,来保证不同地市的数据一致性。此外,不同省份的地市之间,只能使用跨区接口进行业务交互。
目前集团CRM 与省CRM 之间采用一级BOSS规范进行交互。集团公司对省公司的主套餐和重点业务有统一的规范和要求,集团CRM 通过一级BOSS 协议对省CRM 进行验收和常规考核,如4G/5G 主套餐、WLAN、梦网业务、家庭宽带等业务。
在互联网时代,移动运营商除了传统的营业厅、电子渠道、网站、移动商城等渠道之外,还需要通过互联网厂商进行引流。能力开放平台[2]为移动运营商提供核心业务能力输出,支撑移动运营商与外部合作伙伴进行增值业务合作,通过提供统一、安全的输出接口,实现“对外能力开放,对内服务集成”,助力CRM 系统在互联网领域进行业务拓展。
这几年来,各省份的移动运营商的架构升级持续进行中:海南移动向“云+平台+应用”的互联网架构转型[3];山东移动使用华为产品成功完成了CRM 核心系统的软硬件替换升级,引入面向服务的架构(Service-Oriented Architecture,SOA)、云计算、大数据等新架构建设了全新的CRM 系统;2020 年12 月,青海移动省级CRM/BOSS 系统华南节点割接上线……总的来说,移动运营商架构演进体现出以下特点和趋势。
随着国内云化建设进程的加快,越来越多的硬件和软件部署到云端。中国移动正在启动全球最大规模的网络云化变革,并计划在2025 年达到100&的云化。作为5G 网络的运营支撑系统,CRM 必然深受影响[4]。新一代的CRM 架构,总体思路是云化部署,包括硬件系统的云化和分布式的应用架构[5]。云化有以下3 个优势。
(1)可以根据业务发展需要进行快速、弹性部署[6]。由于对业务增长难以准确预估,通过云化,可以对资源进行集约化管理,方便快速地进行资源调配,做到即开即用。
(2)管理简单。CRM 业务需要维护人员每日巡检软硬件设施以保证7×24 小时不间断服务,这对运营商来说是一笔很大的成本,而使用云服务器可以大幅度降低运维成本。
(3)价格相对低廉。云服务器可以使用X86服务器承载基础应用,通过云平台的自动化安装部署,极大的节省搭建基础网络设施的成本。
移动运营商CRM 系统建设,走了一条各地市分别建设到全省规划建设的道路。各省根据自身业务发展的规律自行独立建设,开展了许多具有当地特色的业务。然而,这也导致各省的CRM 系统不仅在系统架构方面设计迥异,而且在业务规划上也千差万别。这就使得同一个相似的业务,各省的业务流程和功能各不相同,甚至在业务功能上相去甚远,因此在集团顶层上难以进行统一。这样,在硬件设施云化的基础上,CRM 系统进行区域集中化建设的统一规划就成为一个趋势:地域相近的若干个省份,集中共建一套CRM 系统,如图1 所示。目前有的省份正在进行区域集中建设。例如,西部某省份在全球第二的业务支撑系统(Business Support System,BSS)厂商亚信的帮助下,正在开展CRM 集中化项目;吉林移动在国内知名CRM 厂商思特奇的支持下,也于2021 年3 月上线了全网集中化项目。
图1 CRM 区域集中化云
区域集中化建设需要有一个统一的基础平台对各省的用户和业务进行统一地集中管理。如图2 所示,系统架构可以采用1 个基础平台+N个省份的定制模块的方式,硬件设施的云化为统一的基础平台提供了保证。在此基础上,允许区域内各省对服务接口进行定制化,可以优先调用定制接口。如果不存在定制,则使用公共的服务。这样既能最大程度的减少基础平台和服务的重复开发和运维,又能保留各省份业务的特色。
图2 一种统一集成平台的区域集中化CRM 系统
区域化统一运营,需要将不同省份的用户数据云化存放,在统一的系统架构下对不同的省份进行数据隔离,这就要使用到多租户模式,将每个省作为一个租户。多租户隔离模式主要有以下3 种。
(1)每个租户独立创建数据库,这种模式安全性最好,隔离级别也最高。其优点是每个租户都可以使用不同的扩展方案以满足不同省份的独特需求,如果系统出现的故障只影响一个省,恢复也相对容易;缺点是采购和维护成本比较高,一旦修改公共部分的数据和结构就要把所有数据库都修改 一次。
(2)所有租户共享数据库,但每个租户使用不同的schema。它也可以为租户采用个性化的扩展方案,租户数据也能实现一定程度的隔离。因为会涉及到其他租户的数据,所以数据恢复比较麻烦。这是一种平衡型的模式。
(3)所有租户共享数据库,共享 Schema 和数据表,仅在每一个表中增加租户标识以区分不同省份的数据。这是共享程度最高的模式,数据并不进行物理隔离,仅在逻辑上区分。该模式的配置成本最低,每个数据库的租户数量最多;缺点是数据安全性和隔离性最差,数据的备份和恢复最麻烦,每个表都需要针对不同租户进行不同处理。
上述3 种方案,除了考虑隔离性和成本外,还需要对其他因素进行综合考虑,例如各租户数据量大小是否合适,如果单个租户的数据量已经非常巨大,则倾向于隔离;反之,如果单个租户数据量不大但租户数量比较多,则倾向于共享。
随着用户量的剧增,移动运营商的CRM 承受的压力越来越大,传统的单体式服务已经越来越难以满足高并发访问的要求,继续横向扩展也难以为继。有的省份甚至已经考虑从热点城市、繁忙时段和服务接口等几个维度对用户访问进行“限流”,即按照一定比例随机性的限制访问。而微服务架构在诞生之初就携带着扩展成本低、高可靠性、高并发性的基因,因而在互联网厂商中早已得到普遍的应用。在CRM 系统中引入微服务架构,不仅能以较小的成本在X86 架构的PC Server 中进行部署,而且便于横向扩展,对热点服务部署多套,由负载均衡器对请求进行动态分配。由于每个服务都存在若干个“无状态”的实例,如果个别服务器出现拥塞甚至故障,用户请求就会被动态分配到其他服务器,并且对用户无感知,这样就兼顾了服务的低成本和高可用性,同时还有利于去IOE(IBM 小型机、Oracle 数据库、EMC 存储设备)。
在微服务架构中,各服务之间的调用非常繁杂,一旦出现问题就需要根据服务日志一层一层的定位。解决问题的办法,是将这个请求经过的每一个节点都记录下来,形成一个完整的链条,这就是服务调用链,如图3 所示。显然,通过服务调用链技术,可以快速定位问题,全盘理解和监控整个系统。
图3 微服务调用链
服务调用链还可以用来分析用户行为。在大数据时代,用户数据越来越受到重视。与业务日志只能在用户结果层面呈现用户需求不同的是,服务调用链技术不仅可以看到用户提交的操作,还可以从用户点击浏览器的行为过程为用户进行精准画像,以便更加有针对性地对用户开展营销活动。
由于容器化部署具有持续集成部署、跨云平台支持、环境标准化、隔离性和安全性等优点,目前已经得到广泛的应用。将CRM 程序运行在容器内部,显著的好处就是互相隔离、互不影响,并且可以快速部署多套镜像而不需要考虑基础环境的差异。这种优点显而易见,由于服务器内可以部署多个容器,每个容器内运行着一套独立完整的程序,一个容器内的服务出现故障,并不影响其他容器内程序的运行。目前最为广泛流行的容器是Docker 和CoreOS Rocket,常用的容器编排工具有Kubernetes、Docker Swarm 等。
由于复杂的数据关系和庞杂的功能,中国移动各省CRM 架构改造进展缓慢[7]。但是,随着互联网许多先进技术的出现,多种成熟的技术正在往传统的CRM 领域进行渗透,并深刻影响着下一代CRM 系统的发展。特别是硬件系统云化、多租户、微服务、服务调用链等技术在CRM 系统的应用,不但能显著降低后者的建设和运营成本,并且能提升后者高并发、高可靠性和高可用性的能力,助力运营商进行数字化转型。
目前,各地的5G 网络正在大规模进行建设,移动运营商需要对CRM 系统进行升级改造,提升用户的使用体验,占据更大的市场份额。