微众银行开源私有云容器平台 Dockin

来源: 投稿
作者: 微众开源
2021-01-21

近日,微众银行开源了生产级私有云容器平台项目 Dockin。

Dockin 是微众银行开源的生产级容器平台,提供了一整套私有云容器化的落地方案。涵盖 Kubernetes 集群管理、应用管理、网络、运维工具、开放 API 等组件,用户可以自由搭配使用,定制自己的容器平台。Dockin 着力于生产级、高可用、安全性、云原生一体化、可定制,适用于传统 IT 向云原生转型。

云原生下容器化的价值

在传统的 IT 流程、软件架构和运维模式里,资源的申请流程很长,交付很慢,已经无法满足业务发展的需要。金融应用的典型特点为体量大、部署慢、难升级、难扩展,如何及时响应业务的需求、如何快速支持新业务上线是基础架构的优化方向。

容器作为一种新兴的虚拟化技术,跟传统的虚拟化方式相比具有众多的优势。其核心价值在于三点:

敏捷性

据业界统计,使用容器技术可以实现 3~10 倍的交付效率提升,大大加速新产品迭代的效率,并降低试错成本。

弹性

通过容器技术可以充分发挥云的弹性,优化计算成本。一般情况下,通过容器技术可以降低 50% 的计算成本。

可移植性

容器已经成为了应用分发和交付的标准,可以应用于底层运行环境的结构。实现一次构建处处部署。

 

Dockin 的诞生 —— 微众银行私有云容器化的探索

Kubernetes 是让容器应用进入大规模工业生产环境的开源系统,也是集群调度领域的事实标准,目前已被业界广泛接受并得到了大规模的应用。

微众银行的生产业务大多跑在私有机房上,无法使用腾讯云、阿里云等公有云提供的容器服务。而且有完善的基础运维工具,要在私有云上落地一套 Kubernetes 不是一件简单的事情,离线安装和升级、与未容器化的 VM 应用实例网络打通、稳定运营等都是非常复杂的,而且有很多潜藏的隐患如 Docker 安全漏洞、内核 BUG 等。

Dockin 实现了 Kubernetes 在微众银行私有云落地,同时收敛了 kubernetes 粗放的管理模式,定位是公司级的容器平台服务,所有功能都提供 API,供上下游管理工具和基础软件接入,在应用管理上保持了和 VM 一致的用户体现。容器化与基础设施环境相关,对整个运维体系改变很大,关乎到应用的稳定性,原生的 Kubernetes 不能满足我们的要求。容器团队研发的 Dockin,用了两年多的时间,经过一系列探索与实践现阶段现已实现应用的全面容器化,当然这个过程也遇到过很多问题,如:

  • 内网环境在线安装和升级 kubernetes 失败
  • 开发测试人员不懂 kubernetes 的 yaml 编写
  • 云原生产品的管理流程和公司内部运维系统不适配
  • kubernetes 证书过期
  • master 节点扩缩容问题
  • 内核内存暴涨导致容器 OOM Killed
  • 容器重启后 IP 变化
  • 用户在容器里执行大内存命令导致容器挂掉
  • 用户主动修改容器里系统文件导致不可预期的错误
  • 应用做日志归档导致母机 IO 过高

类似上面的问题还有很多,相信其他公司的容器团队也会深有感触,后面可以做成一个专题给大家分享。通过团队的专研,解决了很多操作系统底层适配的问题,同时通过研发一系列的 Kubernetes 之上的管理系统,解决容器应用资源管理、运维编排的问题。在实践中,容器团队将传统 IT 向容器云原生转型的坑基本都踩了一遍,最终形成了一整套完整的企业容器平台。

目前,微众银行内部的生产环境容器平台已承载了超过 50% 的应用实例,其中包括核心的金融交易系统,能实现核心系统容器化在业界都是少数。Dockin 支持业务系统容器化,提高资源池弹性,提高应用交付效率,将各式各样的系统通过容器的方式进行标准化,实现统一的监控、统一的调度、自动化和智能化运维。平台所有系统基于开源产品自研,到目前为止,从应用管理、运行监控、到运维自动化都研发了对应的解决方案和系统。随着业务对平台的要求越来越高,Dockin 还将不断的迭代,也通过开源的方式让有共同兴趣的开发者一起参与,共同完善。

根据微众银行技术团队的实践,Dockin 解决了应用容器化的问题,优化了资源的使用效率,降低了硬件成本。同时还提升了应用的交付效率,推动了 IaaS 层的服务化,新业务上线周期更短。全量容器化后,未来 Dockin 会支持更多的云原生产品,实现智能化的调度,优化镜像和应用 SDK,向 Serverless 方向发展。

Dockin 能为开发者带来什么?

Dockin 容器平台从微众银行内部的生产环境中剥离出来,经过了金融级生产环境的严格验证,是私有化部署的较好方案。现在团队将 Dockin 开源贡献给社区,希望为大家带来帮助,也希望得到更多的检验。

Dockin 旨在打造一站式,可拓展的容器应用云原生管理平台。在首期开源的组件中,提供 kubernetes、docker、os 版本组合建议,同时实现了 etcd、kubernetes 的高可用部署;支持容器内命令执行过滤,网络支持了固定 IP 和多网卡。

对于企业用户而言,Dockin 可以支持快速搭建生产级的 kubernetes,提供将应用从VM平滑迁移到容器管理系统;提供经典网络下的 IP 固定的方案和网络插件;提供更加稳定性的、安全的容器运维功能。

已开源组件:

一款支持固定IP的网络插件(Dockin-CNI)

基于 kubernetes 的 CNI 网络插件,支持固定 IP,支持多网卡

 

一套安全的运维编排服务(Dockin-Ops)

Dockin 运维管理系统是安全的运维管理服务,优化 exec 执行性能,支持命令权限管理。

 

一套离线Kubernetes集群安装器(Dockin-Installer)

Dockin 平台安装器,快速部署Docker、高可用 kubernetes 集群、ETCD 集群,生产级参数调优。全离线安装,不需要连外网,支持十年的证书续订、ETCD 备份恢复

 

一款应用资源管理系统(Dockin-RM)

Dockin 容器项目资源管理器,是应用定义和容器实例管理的核心模块,提供容器分配、回收、查询等功能。

 

Dockin 的安装流程详见:

https://github.com/WeBankFinTech/Dockin-Installer

GitHub 项目仓库

https://github.com/WeBankFinTech/Dockin

Gitee 项目仓库

https://gitee.com/WeBank/Dockin

未来还有更多

  • 静态应用管理方案
  • 镜像管理系统
  • 平台管理台
  • 高可用监控服务
  • 统一API网关
  • 智能调度系统
  • 通用Operator套件

写在最后

Dockin 是微众银行云生产的基础设施,项目团队会长期维护更新,并希望为大家的私有云服务提供一个更稳妥的选择。因此,诚邀关注云原生、容器技术的开发者一同参与到 Dockin 开源项目中来,欢迎任何形式的贡献,有各种建议或意见可在 GitHub/ gitee / 微信群中提 issue。

展开阅读全文
30 收藏
分享
加载中
精彩评论
tx特色
2021-01-21 10:37
1
举报
最新评论 (14)
持续维护不?
2021-01-21 16:26
0
回复
举报
会持续维护的
2021-01-21 17:10
0
回复
举报
[root@master-108 dockin-etcd]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
[root@master-108 dockin-etcd]#
[root@master-108 dockin-etcd]#
[root@master-108 dockin-etcd]# pwd
/opt/Dockin-Installer/dockin-etcd
[root@master-108 dockin-etcd]#
[root@master-108 dockin-etcd]#
[root@master-108 dockin-etcd]# ls
bin build.properties build.sh conf generate_conf.sh install.sh readme.txt
[root@master-108 dockin-etcd]#
[root@master-108 dockin-etcd]#
[root@master-108 dockin-etcd]# ./install.sh
head: cannot open ‘.name’ for reading: No such file or directory
2021-01-21 15:20
0
回复
举报
测试都不测试一下,就把产品放出来吸引眼球。。一堆报错
2021-01-21 15:28
0
回复
举报
你好,installer需要build后,才能执行install.sh,另外源码中不带有可执行包,离线安装需要使用我们的release包,这方面我们会完善文档说明。
2021-01-21 17:08
0
回复
举报
release页面在哪里?看到dockin-installer里面文档说先到release页面下载离线包,请问在哪里下载呢?
2021-01-21 13:38
0
回复
举报
gitee上暂时未上去,请稍等。如果现在需要用的话,可以先使用github的版本。 https://github.com/WeBankFinTech/Dockin-Installer/releases/tag/v0.1.0
2021-01-21 17:12
0
回复
举报
github上的下载不了,请问gitee什么时候上传一份呢?
2021-01-25 11:10
0
回复
举报
开到java ,我就放弃了
2021-01-21 12:51
0
回复
举报
基于xxx 但强于xxx
2021-01-21 12:18
0
回复
举报
這玩意 真的不是 K8S整合?說開源 不如好好 寫K8S的 教程
2021-01-21 10:38
0
回复
举报
文档稀碎,强烈建议补补文档
2021-01-21 09:14
0
回复
举报
微众开源深圳前海微众银行股份有限公司
目前项目包含四个组件仓库,具体文档都放在各个项目,并且文档还在持续完善中。
另外,也欢迎加入社区进行交流,常见问题也有相关文档说明。
https://github.com/WeBankFinTech/Dockin/blob/main/No.1%20FAQ.md
2021-01-21 09:55
0
回复
举报
tx特色
2021-01-21 10:37
1
回复
举报
更多评论
14 评论
30 收藏
分享
返回顶部
顶部