本文整理自微众银行容器负责人陈广镇和李焕 在 Techo 开发者大会云原生专题的分享内容——微众容器化实践。本文主要和大家介绍微众的容器化实践,具体分为三个部分:里程碑、实践之路,以及未来的规划。
微众应用容器化项目始于2018年底,我们的生产环境在私有机房上,由于基础设施的差异,容器管理系统主要走自研路线,基于开源产品定制。
2019年1月,微众上线了第一个版本,主要实现多K8s集群管理、以及适配公司现有的基础架构。
2019年2月,微众系统接入TKE服务,用于快速构建开发测试环境,我们大部分业务都需要独立的测试环境,利用腾讯云强大的伸缩能力可以减少我们很多的环境维护工作。
2019年6月,平台优化了核心的调度逻辑,支持了多业务多DCN共享资源池,提升了私有云资源交付的效率。
2019年12月,微众研发了一套统一的通用的运维服务,这套服务收敛过去各式各样的运维工具,并且增加了金融级的安全管理,优化了K8s执行命令的性能问题。
2020年年初,启动了全量应用容器化项目,现在已经有超过一半的实例跑在了容器上。其中就包括我们的核心金融系统。
2020年年中,平台开始了2.0的迭代,包括定制化Harbor、应用画像、通用Operator API等特性。
未来微众在容器化上小小的积累通过开源的方式贡献给社区。
下面部分我们介绍一下容器化实践中遇到的问题和解决方案。
首先,我们看看传统虚拟机部署业务的效率问题。容器化之前,在虚拟机和物理机上,应用部署流程非常复杂,新业务上线和扩容慢,交付效率低,资源需要预留。流程无法全自动化。应用缺少统一的规范,平台很难做统一的优化。
在容器上,我们要优化VM应用部署的问题。下面是我们对平台的设计。
首先我们对容器平台的定位是公司级的平台服务,要对所有行内业务都通用;
第二,所有功能都要API服务化,为其他工具系统提供接口;
第三,从VM迁移到容器,能实现快速扩容、缩容;
第四,通过合理的调度,资源利用率得到提升;
第五,重新定义我们的基础架构,将IAAS层服务化,和PAAS层融合,提高资源的交付效率和交付体验。
在实施的策略上,主要有两点,一是必须适配现有的基础设施和运维体系,在初期需要保持和VM一致的体验,让应用无感迁移;二是要稳,