ArchSummit 深圳站日程上线,80+国内外技术团队现场分享,点击查看 了解详情
写点什么

微众银行正式开源容器平台 Dockin

2021 年 1 月 18 日

微众银行正式开源容器平台Dockin

近年来,云原生(Cloud Native)可谓是 IT 界最火的概念之一,且随着云计算普及进程的不断加深,有愈演愈烈的趋势。云原生已经不是少数几个大企业的专属,越来越多的企业正在拥抱它,享受它带来的红利。


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


Dockin 着力于生产级、高可用、安全性、云原生一体化、可定制,适用于传统 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 变化

  • 用户在容器里执行大内存命令导致容器挂掉

  • 用户主动修改容器里系统文件导致不可预期的错误

  • 应用做日志归档导致母机 IP 过高


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



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



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

Dockin 能带来什么?


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



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


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

 

已开源组件


1、Dockin-CNI,一款支持固定 IP 的网络插件

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


2、Dockin-Ops,一套安全的运维编排服务

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


3、Dockin-Installer,一套离线 Kubernetes 集群安装器

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


4、Dockin-RM,一款应用资源管理系统

Dockin 容器项目资源管理器,是应用定义和容器实例管理的核心模块,提供容器分配、回收、查询等功能。(具体安装流程请访问仓库地址获取 )

 

更详细的实践我们会在未来的文章中为大家带来,欢迎各位持续关注!


项目仓库


https://github.com/WeBankFinTech/Dockin


https://gitee.com/WeBankFinTech/Dockin


社区联络


项目负责人 Townchen  WeChatID:wxid_cgz


未来还有更多...


  • 静态应用管理方案

  • 镜像管理系统

  • 平台管理台

  • 高可用监控服务

  • 统一 API 网关

  • 智能调度系统

  • 通用 Operator 套件

 

写在最后


Dockin 是微众银行云生产的基础设施,我们会长期的维护更新,并希望为大家的私有云服务提供一个更稳妥的选择。


因此,诚邀关注云原生,容器开发的你一同参与到 Dockin  开源项目中来,我们欢迎任何形式的贡献,有各种建议或意见可在 GitHub/ gitee / 微信群中提 issue。同时,Dockin 团队也在扩招中,感兴趣的同学尽情来聊吧。

2021 年 1 月 18 日 10:371672
用户头像
陈思 InfoQ编辑

发布了 576 篇内容, 共 213.0 次阅读, 收获喜欢 1213 次。

关注

评论 1 条评论

发布
用户头像
2021 年 01 月 18 日 12:04
回复
没有更多了
发现更多内容

使用 Prometheus-Operator 监控 Calico

米开朗基杨

Prometheus calico

拿着锤子的人,哪里都是钉子

Neco.W

思维方式 思考力

HTTP 的15个常见知识点复习

pingan8787

Java 前端 Web HTTP

深入浅出Shiro系列

程序员的时光

架构师训练营第四章作业

饶军

week04 学习总结 互联网面临挑战和架构模式

Z冰红茶

架构师训练营第4周作业

时来运转

GO语言泛型编程实践

老胡爱分享

go 泛型

架构师训练营 - 学习笔记 - 第四周

心在飞

极客大学架构师训练营

项目域名配置流程

打鱼小王子

为什么美国程序员工作比中国程序员工作轻松、加班少?

程序员生活志

程序员 加班

大型互联网应用技术方案

石刻掌纹

Linux系统查询端口命令

打鱼小王子

架构师训练营 - 第四周命题作业

牛牛

极客大学架构师训练营 作业

计算机操作系统基础(六)---作业管理之进程调度

书旅

Java php 多线程 操作系统 进程

架构师训练营第四章总结

叮叮董董

总结 架构师 训练营

安畅迁移平台的云原生之路

雪雷

Kubernetes DevOps 云原生 CI/CD 迁移

围绕 Office 365 的那些 CLI

手艺人杨柳

Office 365

万字长文,让 Java 程序员入门小众语言 Ruby

Phoenix

Java ruby 个人成长 编程语言

重学 Java 设计模式:实战备忘录模式「模拟互联网系统上线过程中,配置文件回滚场景」

小傅哥

Java 设计模式 小傅哥 重构 备忘录模式

架构5班3-4组优秀作业

tracy

架构师训练营第四章作业

叮叮董董

架构 技术方案 解决手段 互联网架构

Prometheus 存储层的演进

伴鱼技术团队

性能优化 系统架构 Prometheus 存储 时序数据库

《机器学习理论导引》阅读攻略

华章IT

学习 周志华

程序员不得不知的十大职场误区

陆陆通通

程序员 职场 架构师 工资 误区

“信息茧房”里的人

架构精进之路

自我思考 程序员成长

自由职业的前半年,我是如何度过的?

王磊

Java 程序员 程序员人生 程序员成长

第四周作业

南宫煌

极客大学架构师训练营

一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述。

Carlos

设计模式

Jeff

漫画通信:惊呆了,手机登录还可以这么玩!

阿里云Edge Plus

云通信 通信 通信云

MySQL 核心特性与优化

MySQL 核心特性与优化

微众银行正式开源容器平台Dockin-InfoQ