微众银行案例|容器化实践在金融行业落地面临的问题和挑战

本文整理自微众银行容器负责人陈广镇和李焕 在 Techo 开发者大会云原生专题的分享内容——微众容器化实践。本文主要和大家介绍微众的容器化实践,具体分为三个部分:里程碑、实践之路,以及未来的规划

img

微众应用容器化项目始于2018年底,我们的生产环境在私有机房上,由于基础设施的差异,容器管理系统主要走自研路线,基于开源产品定制。

2019年1月,微众上线了第一个版本,主要实现多K8s集群管理、以及适配公司现有的基础架构。

2019年2月,微众系统接入TKE服务,用于快速构建开发测试环境,我们大部分业务都需要独立的测试环境,利用腾讯云强大的伸缩能力可以减少我们很多的环境维护工作。

2019年6月,平台优化了核心的调度逻辑,支持了多业务多DCN共享资源池,提升了私有云资源交付的效率。

2019年12月,微众研发了一套统一的通用的运维服务,这套服务收敛过去各式各样的运维工具,并且增加了金融级的安全管理,优化了K8s执行命令的性能问题。

2020年年初,启动了全量应用容器化项目,现在已经有超过一半的实例跑在了容器上。其中就包括我们的核心金融系统。

2020年年中,平台开始了2.0的迭代,包括定制化Harbor、应用画像、通用Operator API等特性。

未来微众在容器化上小小的积累通过开源的方式贡献给社区。

img

下面部分我们介绍一下容器化实践中遇到的问题和解决方案。

img

首先,我们看看传统虚拟机部署业务的效率问题。容器化之前,在虚拟机和物理机上,应用部署流程非常复杂,新业务上线和扩容慢,交付效率低,资源需要预留。流程无法全自动化。应用缺少统一的规范,平台很难做统一的优化。

img

在容器上,我们要优化VM应用部署的问题。下面是我们对平台的设计。

首先我们对容器平台的定位是公司级的平台服务,要对所有行内业务都通用;

第二,所有功能都要API服务化,为其他工具系统提供接口;

第三,从VM迁移到容器,能实现快速扩容、缩容;

第四,通过合理的调度,资源利用率得到提升;

第五,重新定义我们的基础架构,将IAAS层服务化,和PAAS层融合,提高资源的交付效率和交付体验。

在实施的策略上,主要有两点,一是必须适配现有的基础设施和运维体系,在初期需要保持和VM一致的体验,让应用无感迁移;二是要稳,金融机构有监管的压力,必须杜绝大面积不可用的现象出现,系统保持稳定是最起码的要求。

基于这两点,我们对kubernetes的能力做了很多的限制和定制化,后面会详细讲到。

img

下图是微众的容器生态全景图,最顶层是我们的应用层,包括业务系统、工具系统、中间件和创新应用;

第二层是我们平台的API层,组合下层云原生的服务,对上层提供定制化的协议;第三层是容器编排管理层,我们的K8s、prometheus、harbor、我们核心的云原生应用管理引擎等云原生产品位于这一层。再往下就是我们的iaas层,最底层是机房、网络、腾讯公有云等。

img

容器平台逻辑架构图,左边是我们原有的运维管理系统,包括发布系统、CMDB等,这些系统通过WCS API管理容器;通过运维服务,运维容器,包括登陆、查日志、上传下载文件等。

每个worker节点上都有运行很多的agent,我们提供了统一的agent管理系统进行管理,限制agent的权限和审计其操作。安全在我们行业是一个非常重要的课题。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zywpjp.html