写点什么

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

  • 2021-01-18
  • 本文字数:2550 字

    阅读完需:约 8 分钟

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

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

关注

评论 1 条评论

发布
没有更多了
发现更多内容

应用模型开发指南上新介绍

HarmonyOS开发者

HarmonyOS

从零手写react-router

helloworld1024fd

JavaScript 前端

基于开源IM即时通讯框架MobileIMSDK:RainbowChat-iOS端v6.2版已发布

JackJiang

网络编程 即时通讯 IM

从react源码看hooks的原理

flyzz177

React

适合开发团队的文档管理系统盘点

爱吃小舅的鱼

文档管理软件 团队协作管理

自动化测试工具加入黑科技带来新纪元

石臻臻的杂货铺

人工智能

TSBS 是什么?为什么时序数据库 TDengine 会选择它作为性能对比测试平台?

TDengine

性能测试 时序数据库 ​TDengine

BNB Chain 2023年40佳DAPP评选,Zebec赫然在列

鳄鱼视界

从源码角度看React-Hydrate原理

flyzz177

React

走进RocketMQ(三)消息存储与消费

白裤

Java RocketMQ RocketMQ消息存储 RocketMQ消息消费

深度分析React源码中的合成事件

goClient1992

React

如何使用C LinkSDK(4.x)快速接入阿里云物联网平台?——实践类

阿里云AIoT

阿里云 物联网 IoT

【明晚直播】KunlunBase 1.1 版本发布:完善MySQL 兼容性,OLAP性能提升

KunlunBase昆仑数据库

MySQL 数据库 PgSQL 线上直播

滴滴前端一面常考手写面试题整理

helloworld1024fd

JavaScript 前端

技术写作的“坎”

码猿外

程序员 写作

LED广告宣传车与LED流动舞台车的区别

Dylan

广告 LED 户外LED显示屏

假如面试官要你手写一个promise

helloworld1024fd

JavaScript 前端

从深度学习框架到开发工具,百度飞桨携最新成绩单亮相 GTC

飞桨PaddlePaddle

英伟达 百度飞桨 GTC

从一次CPU打满到ReDos攻击和防范

京东科技开发者

正则表达式 Web 企业号 3 月 PK 榜 ReDoS

从计费出账加速的设计谈周期性业务的优化思考

鲸品堂

运营商 业务流程优化 企业号 3 月 PK 榜

ChunJun 1.16 Release版本即将发布,bug 捉虫活动邀您参与!

袋鼠云数栈

基于大规模边缘计算的千万级聊天室技术实践

环信

聊天室 大规模边缘计算 千万级

京东前端二面常考手写面试题(必备)

helloworld1024fd

JavaScript 前端

极光笔记 | 极光PUSH服务助力企业提升抢单速度

极光JIGUANG

技术干货 移动推送 智能推送

深入React源码揭开渲染更新流程的面纱

goClient1992

React

手写一个react,看透react运行机制

goClient1992

React

ChatGPT 爆火,社交应用如何 Get 新技能

融云 RongCloud

IM ChatGPT

轻量易部署!Coolbpf 发布不依赖 Clang 的脚本化编程特性 lwcb | 龙蜥技术

OpenAnolis小助手

开源 rust ebpf coolbpf lwcb

BNB Chain 2023年40佳DAPP评选,Zebec赫然在列

威廉META

从recat源码角度看setState流程

flyzz177

React

微众银行正式开源容器平台Dockin_开源_微众开源技术团队_InfoQ精选文章