APP下载

电信业务支撑系统的容器化实践

2019-06-27蔡志强中国联通软件研究院北京100176

邮电设计技术 2019年6期
关键词:配置文件中间件容器

蔡志强,陈 浩,江 浪(中国联通软件研究院,北京100176)

0 前言

近年来,随着3G、4G的迅速发展,传统电信运营商的语音业务更多地转变为数据业务,逐渐被数据业务替代。在移动互联网时代,行业内外的竞争愈发激烈,新业务应用上线需分秒必争抢占先机,在业务支撑、架构能力、平台扩展性等方面对现有的烟囱式建设的业务支撑系统提出了巨大的挑战。传统的运营体系已趋于乏力,需重构、重建运营体系。

目前,以Docker为代表的容器技术发展迅速,作为极其轻量级的虚拟化技术,大大提高IT资源的利用率,其标准化的打包、封装、搬运机制,有效地简化了开发版本管理,提高了开发运维效率,降低了成本。此外,Docker容器秒级启动的特点,也能有效保障业务的稳定性与高可用性。因此,对现有业务支撑系统进行容器化改造,将成为电信运营商一个最优的选择。

1 现状

电信行业业务支撑系统目前大部分都采用传统架构,使用小型机、Oracle数据库及一系列中间件产品。系统庞大、耦合度高、投资多、扩展难是传统架构很显著的问题。

cBSS1.0系统一直以来采用单体架构作为业务系统实现的架构风格,作为成熟的架构风格,单体应用有着易于开发、易于测试、易于部署等诸多优势。

以中国联通集中业务支撑系统(cBSS系统)为例,其CRM系统在2014年初上线,采用传统的IOE架构,数据库及后台应用均使用小型机,后台应用使用Tuxedo中间件,Web前台应用和接口前台应用使用Weblogic中间件(见图1)。

图1 CRM子系统传统架构

2 容器化改造原则及思路

考虑到原业务支撑系统以中间件为主,其中80%的CRM应用基于Weblogic和Tuxedo 2类中间件,改造范围大、周期长、投资多,如不采用容器化技术,除非重建系统,否则很难一步实现目标云化架构。

此外,现有系统中使用了Weblogic和Tuxedo部分产品特性能力,如WTC服务调用、Weblogic集群复制、Weblogic的T3协议调用、Tuxedo服务路由等,更换中间产品会带来大量应用改造。

对于传统业务支撑系统的容器化改造,应遵循以下几点原则。

a)减少核心应用的改造、减少周边系统的改造、降低整体实施难度。

b)保障生产稳定运营。

c)向云化架构演进。

基于以上原则和现状,对传统遗留系统进行分析,符合微服务迁移条件的传统应用,尽量采用微服务模式重构业务;对于不具备微服务条件的传统应用,可采用中间件容器化的方式进行架构升级,迁移至云化平台。

3 Weblogic中间件应用改造

Weblogic中间件应用主要从以下几方面进行设计和改造。

a)应用去状态化:在Web服务入口增加filter过滤器,将session信息的操作由Weblogic集群转为redis缓存集群。

b)配置模板仓库:利用统一配置管理工具confd管理配置文件,将配置文件模板和数据分离实现单独管理,存放预先定义的模板文件,包含Tuxedo模板、Weblogic模板。

c)配置信息中心:使用KV存储服务ETCD存放配置信息,应用启动时获得并配合confd生成运行所需的配置文件。

d)服务发现和负载均衡:基于Marathon-LB组件实现容器服务发现,并承担负载均衡能力对外提供统一的服务地址。

e)健康检查及自愈:在Web应用中增加健康检查页面,用于容器启动后的健康判断,结合Marathon实现故障容器的自愈恢复。

图2示出的是Weblogic容器化方案。

4 Tuxedo中间件应用改造

Tuxedo中间件应用主要从以下几方面进行设计和改造。

a)WTC调度适配:解决Marathon调度WTC服务的问题,负责Tuxedo、Weblogic服务的注册和发现;根据业务定义,进行Tuxedo和Weblogic的配对注册;WTC服务的联动启动/停止;调度服务异常时的容错处理和主备切换等。

b)配置模板仓库:利用统一配置管理工具confd管理配置文件,将配置文件模板和数据分离实现单独管理,存放预先定义的模板文件,包含Tuxedo模板、Weblogic模板。

c)配置信息中心:使用KV存储服务ETCD存放配置信息,应用启动时获得并配合confd生成运行所需的配置文件。

d)状态中心:存放Tuxedo运行状态信息,包含服务状态、注册状态等。

e)虚拟网络:使用基于Macvlan技术的虚拟网络,使每个容器可配置固定的IP地址,方便原系统割接。

图3示出的是Tuxedo容器化方案。

图2 Weblogic容器化方案

5 配套接口UIP应用容器化方案

配套的应用主要从以下几方面进行设计和改造。

a)Tomcat移植瘦身:基于原有Weblogic版本,移植至Tomcat上运行。

b)服务发现:基于状态中心发现可调用的Tuxedo应用,采用最小连接数算法选择可用的Tuxedo服务进行连接。

c)WSDL静态文件服务:将UIP接口使用的WSDL文件抽离,建立独立的静态文件服务器用于调用。

d)状态中心:存放UIP运行状态信息,包含服务状态、注册状态等。

图4示出的是配套接口UIP容器化方案。

6 中间件应用容器化创新点

在业界都在尝试容器化技术时,本课题首次将Weblogic和Tuxedo中间件产品与容器化技术相结合,其中Tuxedo部分的容器化实践在国内电信行业里为首次生产投产,前期无相似案例。

图3 Tuxedo容器化方案

图4 配套接口UIP容器化方案

a)全部采用开源组件,自主设计开发完成,实现Weblogic、Tuxedo中间件及其上应用的容器化改造。

b)应用状态中心化存储,与应用进程剥离,实现基于Redis的前台Web应用去状态化改造。

c)设计并实现了Tuxedo中间调度适配层,基于ETCD的后台应用状态注册,解决了Marathon调度WTC服务的问题。

d)业务配置信息中心化管理,应用启动时获得配置参数,基于抽象的业务配置模板生成实时的配置文件。

图5 中间件容器化方案

e)采用Macvlan等虚拟网络技术,无需改变服务的对外访问地址和协议,外部调用方无需进行改造调整,实现服务的平滑割接。

f)移植部分应用到Tomcat,并抽离静态WSDL文件,建立静态WSDL服务。

图5示出的是中间件容器化方案。

7 中间件应用容器化实践成果

中间件应用容器化平台在生产上线投产后,服务运行状态良好,无重大生产故障。目前已上线有CRM前台Web服务18类容器应用;CRM后台Tux服务、竣工BPM服务、接口后台Tux服务6类Tuxedo容器应用,前台接口及BPS竣工7类Weblogic和3类Tomcat容器应用;外围UIF接口10类Tomcat容器应用,外围UIP接口6类Tomcat容器应用,GTM、盘古缓存、预热等5类C程序容器,共计运行1 000+个容器,已涵盖9个域全部CRM核心业务。

将容器化技术应用于运营商核心业务支撑系统,打破专机专用的限制,物理计算资源池化管理,灵活调度计算资源;灵活扩缩业务能力,实现秒级的业务能力增补,及时应对业务突发的峰值压力;节点快速部署,实现分钟级的应用部署;统一的容器调度界面,简化维护,降低成本;提高了IT研发、运维的生产力,产生了一定的经济效益。

8 结束语

中间件容器化方案着力解决传统应用系统的架构升级问题,使遗留系统可以平滑过渡到互联网云化模式,具有推广应用到各行业、各系统的潜力,势必会解决传统系统的业务应用在开发、运维中遇到的种种问题,从而推动敏捷开发、持续交付等理念落地。

猜你喜欢

配置文件中间件容器
提示用户配置文件错误 这样解决
Different Containers不同的容器
搭建简单的Kubernetes集群
难以置信的事情
互不干涉混用Chromium Edge
忘记ESXi主机root密码怎么办
RFID中间件技术及其应用研究
基于VanConnect中间件的设计与开发
取米
中间件在高速公路领域的应用