中间业务云平台的探索与使用

2023-04-15 02:52:48赵彦博
科技风 2023年8期
关键词:中间业务镜像容器

赵彦博

华夏银行股份有限公司长春分行 吉林长春 130000

一、背景

随着金融科技的不断发展,银行业面临的挑战越来越多,拓展新业务、新市场是银行业重要的发力点。当新业务的需求愈发旺盛,传统的开发模式过于低效,已经无法满足日益增多的业务需求。我行急需找到一种快捷高效的开发模式,能够短时间、高质量完成系统的开发与部署。2019年,总行上线了分行中间业务云平台,为分行的快速开发找到了一种新的可能。

二、现状

依据分行所在地域不同,分行会有和当地政府、企业等进行共同合作的特色业务需求,需要分行自行完成业务的需求设计与系统开发及部署的工作。由于分行技术人员储备不够充足,大量开发工作由外包人员完成,导致分行人员无法自主掌握系统。另外,不同的外包人员使用的框架不同,还会存在系统架构不统一,维护困难的情况。新业务需要购置的硬件资源也会极大地提高系统的成本。

总行基于上述情况,搭建了分行中间业务云平台,为分行的需求实现加油助力。该平台主要由业务开发平台、通信前置平台、管理端及容器平台组成。

三、中间业务云平台架构

(一)业务开发平台

基于Java打造的低代码开发平台,可以大大降低开发应用的学习成本。该平台内置了多种常用功能组件,仅需要托拉拽的方式就可完成程序开发。该平台主要完成分行的特定业务逻辑的实现,基于该平台实现的系统可以实现开发框架的统一,方便以后的代码维护工作。

该平台主要由流程引擎、平台组件模块、日志模块、日志脱敏模块、配置加密模块、MyBatis模块、MVC模块、Socket模块、Redis模块组成。

(1)流程引擎:开发平台核心引擎模块。

(2)平台组件模块:提供基础平台组件,为数据库操作、文件操作、通信、加密解密、异步调用等常用功能提供支撑。

(3)日志模块:提供流程引擎日志和通过配置管理改动日志级别功能。

(4)日志脱敏模块:提供流程引擎日志和通过配置管理改动日志级别功能。

(5)配置加密模块:提供配置加密功能,确保部分敏感配置项以密文形式保存,需要在配置项中配置要加密的配置项。

(6)MyBatis模块:平台提供开箱即用的MyBatis支撑包,无须额外配置即可在流程图或代码中直接使用。

(7)MVC模块:由平台提供开箱即用的已经集成好的MVC模块,为流程引擎提供HTTP入口。

(8)Socket模块:由平台提供开箱即用的Socket监听,为流程引擎提供TCP入口。

(9)Redis模块:平台提供开箱即用的Redis整合包,可以在流程和代码中使用。

(二)通信前置平台

用于和合作方对接的平台。不同的合作方对接的报文格式都不一样,为了能够使业务开发平台正确处理合作方发送和接收的数据,将格式转换的工作从开发平台分离,可以更好地解耦代码,开发平台可以专注于业务逻辑的开发,不需要关系数据格式的问题。这个平台专门用来处理数据格式,可以将合作方的格式转换成开发平台需要的格式,也可以将开发平台发送出去的报文格式转换成三方需要的格式。

该平台支持多种通信协议,包括基于TCP/IP的同步、异步长链接、短链接,常用的中间件Tuxedo、CICS、MQ等,还支持HTTP、HTTPS等传输协议。支持常用报文格式解析,包括ISO 8583、XML、SOAP、ICXP等。

该平台有着安全可靠性、智能交易路由、提供统一数据总线、提供流程控制机制、提供异常处理机制。

(三)用户管理平台

是为了前端用户使用设计的一套Web界面,可以减少前端开发的学习成本。该平台是基于Vue框架搭建的一套平台,开发人员可以通过简单的配置参数生成个性化的用户前端交互页面。

(四)容器平台

容器平台:是使用Docker实现流水线构建、应用部署,是一种实现构建、打包、部署任意应用的容器解决方案,其主要包括两方面的技术:

容器技术:有效分配与管理计算资源、系统资源并实现资源隔离。

镜像技术:从系统环境开始至代码层实现自下而上应用打包,可以实现随处迁移,随处运行。

Docker的使用流程:

(1)镜像构建:通过Dockerfile构建成镜像,将镜像推送至镜像仓库。

(2)容器运行:从镜像仓库拉取镜像至本地镜像仓库,启动并运行本地镜像仓库的镜像,对容器的生命周期管理(启动、停止、重启),镜像的备份和加载。

Kubernetes:Docker在大规模部署和应用时,还有着诸多问题:当需要跨多个主机管理大量的Docker应用时,集群环境下的Docker宿主机面对的问题有网络延时高、负载均衡不好管理、如何发现新加入的服务和高可用等方面,这些都与传统模式有着较大的区别。

当运用Docker技术时,调度和编排是集群管理的重要责成部分。应用跨多台服务器时,服务器与每个容器服务的管理将变得更为复杂。

Kubernetes是Google开源的大规模容器集群管理系统,由Google多年大规模管理技术BORG演化而来并赠给云原生计算基金会(CNCF),主要功能包括:

(1)基于容器的应用部署、维护和滚动升级。

(2)负载均衡和服务发现。

(3)跨机器和跨集群的服务调度。

(4)自动伸缩。

(5)无状态服务和有状态服务。

(6)广泛的存储支持。

(7)插件机制保证扩展性。

Kubernetes的发展非常迅速,已经成为容器编排领域的领导者。主要有以下优点:

(1)提供高可用、高冗余的群集化管理模式。

(2)为容器组件提供高效的弹性伸缩。

(3)提供一整套易于对接的Restfull API。

(4)能与企业级微服务架构无缝结合。

(5)实现零停机的灰度发布。

容器平台:基于Docker、Kubernetes标准研发的一套平台,主要功能包括:

(1)负责应用全生命安全周期管理,从应用的包括应用发布、升级、回滚及应用版本管理等。

(2)应用交付件管理,设计了应用交付件仓库用来保存应用交付件,并进行交付件的版本管理。

(3)企业云平台功能,负责异构主机、存储、网络资源的编排,多租户管理,租户权限控制,平台运维功能及安全审计功能。

(4)应用持续交付,包括自动化流水线,应用持续发布,可扩展的流程设计,兼顾容器化和非容器化的应用。

(5)企业协作,支持多租户环境,可以进行团队协作并进行权限控制,流程审批功能,能效管理面板。

(五)微服务治理平台

微服务:一种构建应用的架构方案,不需要像普通服务那样成为需要独立的资源需求,是一种松散耦合的分布式架构。优点:修改个别服务不会影响整个应用的对外服务,只会有局部的服务受到影响,每个服务都是独立部署。采用微服务架构的系统可以把系统拆分成多个核心功能,每个核心功能对应一个微服务,各自独立,互相不影响。

采用微服务架构的应用可以通过分布式部署大幅提升开发效率,可以并行开发多个微服务,这意味着大型应用的开发可以由总行与多个分行协同开发完成,进而缩短开发所需的时间。

微服务架构的主要优势:

(1)由于开发周期的缩短,微服务架构可以实现更加敏捷的部署与更新。

(2)高度的可扩展性:由于是基于分布式部署的架构,可以很方便地跨多个服务器和基础架构进行部署,可以根据自身的硬件情况进行灵活调整。

(3)强大的健壮性:应用的各种微服务彼此独立,一个服务出现故障并不会影响其他服务的正常运行,相比传统应用,任何一个功能出问题整个应用都无法访问无疑要健壮稳定许多。

(4)部署方便:相比于传统应用,微服务架构应用可以单个服务独立部署,不必一次性将所有功能全都发布。微服务架构更加模块化,更加小巧。

(5)大型应用被拆分成了多个小型服务,彼此独立,开发人员可以更轻松、更容易地理解这些服务,不论是将来要更新服务功能还是增加新的服务都比传统应用要更容易驾驭,进而提高开发效率、缩短开发周期。

(6)更加自由:每个服务彼此独立,开发人员可以自行选择自己擅长的开发语言及技术实现需求功能,只需要暴露的调用接口规范统一即可。

微服务治理平台:主要有微服务网关、配置中心、服务监控及用户权限管理。

微服务网关:通过网关实现服务的对外访问时还可以实现限流、认证、监控等功能,此步骤实现了如何将一个服务暴露到网关上,确保外部用户可以访问。

配置中心:负责注册微服务的实例,查看在线的实例,确认实例是否注册成功。

服务监控:负责监控各个微服务的状态,请求数量,平均吞吐量、平均响应时间、运行时常、更新时间。

四、中间业务云平台应用部署流程

我行统一使用GitLab平台对源码进行统一管理,开发人员在部署应用时需要将代码上传到GitLab上面。

使用DCS平台对接GitLab,DCS平台拉取GitLab上的源码,创建DCS平台项目,并创建该项目的流水线。通过流水线构建项目的镜像文件,并将镜像推送到DCE平台。

在DCE平台主要通过YAML编排模板的方式进行部署。通过YAML编排文件可以实现服务存储、镜像及版本等内容的定义。定义模板完成后就可以通过从DCS平台推送过来的镜像来进行部署了。

部署完成后利用微服务管理平台的API网关功能暴露服务接口后便可以正常对外服务了。

如此,完整的应用从源代码阶段到对外服务阶段已经全部结束,开发人员可以完全不用考虑服务器的搭建和开发环境的部署、兼容性等一些环境准备工作,以前这些工作会占用开发人员很大的精力,云平台完全可以提供基础的运行环境。

五、中间业务云平台特点

分行中间业务云平台是一个强大的、功能齐全的平台。从与合作方对接数据、业务逻辑实现,用户使用界面的配置、程序的部署发布维护等多方面都有了很好的解决方案,大大降低了分行人员的开发难度,分行可以大力推动分行特色业务提高竞争力。使用云平台进行交易业务需求实现主要有如下优点:

(一)容易入手

相比于传统开发模式,基于中间业务云平台的开发可以直接入手业务逻辑,功能都是由组件的拖拉拽实现,没有很好的开发语言基础也很容易进行开发。中间业务云平台也无须考虑系统的部署架构,中间业务云平台使用同一的设计架构,无须开发人员考虑。中间业务云平台提供了统一的持续不断更新的公共服务接口服务,可以调用行内系统的公共功能。如果有特殊的功能未能实现只需要对接公共服务的负责人即可,不再需要单独寻找对应功能的提供者进行对接。这样,复杂的业务如果涉及多个系统,就不必像从前一样需要和每一个系统的负责人分别讲需求和提要求了,节省了大量的沟通成本。

(二)良好的灵活性

分行中间业务云平台采用的是微服务架构,应用可以由多个微服务组成。当运行的业务系统有新的业务需求时,只需要单独再开发一个微服务部署到当前应用即可,大大降低了代码耦合性,也增强了系统的稳定性。

(三)强大的安全性

网络安全方面:分行中间业务云平台是分行的特色业务数据内外网交互的唯一出口,分行不设互联网出口,分行的开发人员不再需要考虑受到互联网攻击方面的防御措施,降低了开发应用的难度。

(四)良好的复用性

分行中间业务云平台采用了统一的架构,统一的开发环境,复用很方便。常用的功能可以封装成自定义组件,为后续调用提供良好的实用性。相对复杂的全行通用的功能可以提交到公共服务的负责人,由对方增加公共服务接口功能,服务全行使用中间业务云平台的开发人员。常用的全国统一的需要对接合作方的业务系统可以由云平台负责人统一进行开发,包装成产品上线,分行只需要对接合作方,将交互的数据按照产品的要求格式进行发送到对应云平台产品即可。

(五)经济性

使用中间业务云平台可以快速、高效地完成需求的开发及部署。

(1)分行不再需要购置服务器等硬件设施。

(2)使用云平台可以降低开发难度,分行可以自主开发业务需求,分行能够实际参与项目建设,可以为分行培养懂技术、懂业务、懂客户的信息科技人员,节省了人才培养的成本。

(3)分行可以自行建设业务系统,不再需要聘请专业开发公司人员做定制开发,节省了支付专业开发公司开发项目的费用。

(六)便捷的部署

中间业务云平台是容器化部署,只要将代码推送到代码仓库上,容器平台会获取代码生成应用镜像并自动部署并发布服务,后续迭代只需要修改代码,推送代码仓库,后续发布工作由容器平台自动进行,无须用户干预。

(七)易于维护

相比于传统虚拟机,容器与宿主机共享操作系统,运行环境直接内核调度,性能几乎无额外损失。容器的镜像很小,只需分配1~2G的空间,相比于虚拟机庞大的空间,不论备份还是打包移植部署都要迅速很多。在运维工作方面只需要专注于面向业务应用的问题,不需要关注内存、CPU、硬盘等系统硬件层面的运维工作。

六、取得的成效

自云平台在2019年上线后,总行大力推广,分行积极探索,目前已经取得了部分成效。现在分行的新业务全部通过分行业务云平台进行开发部署。老旧系统做系统重构的计划,2023年全部完成改造,统一使用云平台的架构进行服务,从而达到全面自主的掌控与管理,也为分行的系统运行维护工作减轻大量的负担。

截至2021年12月末,分行已经通过该平台上线了微信供暖缴费业务、预售房资金监管系统、社保费代缴系统、汽车供应链线上化系统。上述系统都是由总行和分行人员共同开发完成,拥有独立自主的产权和完整的掌控能力。分行由曾经的项目管理人员角色切换到管理+开发人员,可以参与到系统的需求规划,编码设计,系统部署,业务发布的全流程中,充分掌握了从立项到上线的全部流程。

结语

随着金融科技的不断发展,平台化建设是银行未来的主要目标。业务的不断发展,不仅要使用好中间业务云平台,也要积极探索人工智能平台、数据挖掘平台、网络管理平台、运维管理平台、监控平台、安全管控平台等、要学好、用好,做到技术多领域的全面发展。分行紧跟时代变化,积极探索新技术,使用新技术大力推广信息系统平台化建设,做到全行统一架构、统一技术,提高工作效率。

猜你喜欢
中间业务镜像容器
Different Containers不同的容器
镜像
当代党员(2020年20期)2020-11-06 04:17:52
难以置信的事情
镜像
小康(2018年23期)2018-08-23 06:18:52
取米
镜像
小康(2015年4期)2015-03-31 14:57:40
镜像
小康(2015年6期)2015-03-26 14:44:27
保定银行股份有限公司中间业务收入情况表
中国农业发展银行河北省分行中间业务收入情况表
河北省各城市商业银行中间业务收入情况表