写点什么

微众银行正式开源容器平台 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:371504
用户头像
陈思 InfoQ编辑

发布了 575 篇内容, 共 203.4 次阅读, 收获喜欢 1179 次。

关注

评论 1 条评论

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

sql执行顺序优化

大数据技术指南

sql 4月日更

架构实战营 模块一:课后作业

👈

架构实战营

如何做决策?

石云升

决策 28天写作 职场经验 管理经验 4月日更

JavaScript 图片转文字,文字转语音

空城机

JavaScript 前端 4月日更 tesseract 图片转文字

第13周课后练习-数据应用(二)

潘涛

架构师训练营 4 期

【LeetCode】森林中的兔子Java题解

HQ数字卡

算法 LeetCode 4月日更

与JVM做朋友系列(2)再见类加载器

李浩宇/Alex

JVM ClassLoader 类加载器

与JVM做朋友系列(3)又见Class字节码

李浩宇/Alex

JVM X86 stack register

架构实战营 模块 1 课后作业

eoeoeo

架构实战营

博客主题用腻了?来试试赛博朋克 2077 主题吧!

清秋

CMS Hexo 博客 4月日更

架构实战营-模块一作业

俞立夫

架构实战营

华仔训练营第一次作业

方堃

【极客大学】模块一作业

冬天的树

Martian 3.3.3 发布,最低支持 JDK11

贝克街的天才

Java 开源 开源项目 开源社区 开源框架

Hadoop 3.x 版本相对于 Hadoop 2.x的新特性

五分钟学大数据

hadoop 4月日更

大数据计算生态之数据计算(二)

小舰

4月日更

如何在Deno中使用 Node 模块?

Sakura

4月日更

架构师实战营 模块一作业(微信业务架构和学生管理系统架构备选方案)

Geek_0669f7

架构实战营

没有lrzsz,怎么传文件到服务器?

运维研习社

运维 工具

去面试,公司问我生辰八字。

yes的练级攻略

面试

区块链:颠覆其外,守旧其中

CECBC区块链专委会

互联网

回归本我还是追逐名利,技术人在中年危机下的抉择?

刘华Kenneth

管理 职场 中年危机

架构实战营 模块一:学习总结

👈

架构实战营

区块链开发主流语言和核心优势

CECBC区块链专委会

区块链

外网访问Ubuntu下的Tomcat

U+2647

tomcat ubuntu 4月日更

「Android渲染」为什么alpha渲染性能低?

李小四

Android渲染 Alpha 渲染

「架构师训练营 4 期」 第十三周 - 001&2

凯迪

架构师训练营 4 期

华仔架构实战营 - 作业 - 模块1

曲元洪

架构实战营

3.4 Go语言从入门到精通:包管理工具之Go module

xcbeyond

golang go语言 go modules Go语言从入门到精通 4月日更

Vue3源码 | 读懂keep-alive组件以及缓存机制

梁龙先森

源码分析 Vue3 前端进阶

区块链走红 江苏多行业应用迈入"可信时代"

CECBC区块链专委会

农产品

编译系统设计赛(华为毕昇杯)技术报告会|5月1日

编译系统设计赛(华为毕昇杯)技术报告会|5月1日

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