微众银行容器平台 Dockin 正式开源,目标帮助更多有同类需求的企业

SegmentFault 思否消息,1月15日微众开源公众号发布消息称:微众银行容器平台 Dockin 正式开源。

项目仓库

https://github.com/WeBankFinTech/Dockin

https://gitee. com/WeBankFinTech/Dockin

据悉,Dockin 容器平台 剥离于微众银行真实生产环境,它经过了金融级生产环境的严格验证,

并且可以提供一整套私有云容器化的落地方案,涵盖Kubernetes集群管理、应用管理、网络、运维工具、开放 API 等组件,用户可以自由搭配使用,定制自己的容器平台,是目前私有化部署的较好方案。

在首期开源的组件中,提供了 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 容器项目资源管理器,是应用定义和容器实例管理的核心模块,提供容器分配、回收、查询等功能。

未来计划开源的组建:

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

Dockin 不仅解决了应用容器化的问题,还优化了资源的使用效率,降低了硬件成本。同时还提升了应用的交付效率,推动了 IaaS 层的服务化,使新业务上线周期更短。值得一提的是全量容器化后 Dockin未来会支持更多的云原生产品,实现智能化的调度,优化镜像和应用SDK,向Serverless方向发展。现在 Dockin 已经开源贡献给社区,也将会为有需要的企业带来更多的帮助。

以下为SegmentFault 思否对 Dockin 负责人广镇的采访。

Q1:云原生与容器平台的关系?

广镇:云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式API。其中容器技术又是云原生的基石,应用容器化是实现企业IT架构云原生转型的第一步。Dockin容器平台基于Kubernetes构建了整个云原生应用资源管理、调度管理、运维编排的体系,助力云原生。

Q2:全面容器化过程中的很多难点,能否展开谈一项印象最深的?

广镇:全面容器过程中遇到很多困难,比如推动基础架构整合、全链路监控、容器稳定性问题等。我这里讲一下我们遇到的一个实际问题。

金融系统还是Java为主,在应用容器化初成规模的时候,偶尔会出现JVM Crash、应用在实际使用内存不多的情况下被oom killed,这个问题发生的频率很低,也很难通过压测环境复现。后来我发现了这是一个内核的Bug,我们不少机器是基于centos 7.x 3.10内核,这个版本对内核内存的统计存在问题,会产生SLUB分配内存失败的问题,我们通过重新编译kubelet和docker解决,经过我们编译修复后的文件也会放到开源的安装包里。

Q3:请简单谈一下 Dockin 正式开源 的意义

广镇:私有云容器化落地比较困难,改造成本较高。不同的企业容器化过程中遇到的问题多很多是类似的,开源可以为后来者提供系统组件或方案参考。

Dockin是微众银行对私有云容器化的探索的成果,经过严苛的生产环境验证,开源可以给有同类需求的企业帮助,为云原生技术栈的发展贡献微众的解决方案。同时,我们期待Dockin的用户,能给我们提issue反馈问题,甚至参与到项目里,共同完善,这是我们开源最大的价值所在。

Q4:「云原生已经不是少数几个大企业的专属,越来越多的企业正在拥抱它,享受它带来的红利」,具体有哪些红利呢?

广镇:云原生不是为云而生,而是天生就是云,生而是云,我认为它给企业带来的红利主要有两点。

第一,云原生应用具有弹性、敏捷、高可用、标准化、按需使用自助服务、更低的迁移成本的优点。容器轻量、弹性;微服务小而专使开发、测试、更新效率提高,实现了敏捷;DevOps持续集成、持续部署、持续发布、持续监控、持续反馈、持续改进而形成应用生命周期管理的闭环。使用微服务、容器和DevOps构建云原生应用可以提升业务交付效率、提升资源利用率、降低运维成本。

第二,基于kubernetes的云原生体系已经较为完善,有很多的开源云原生产品可用,企业不再需要从零开始研发,比如说可以利用prometheus实现监控、使用istio实现微服务、使用TiDB-Operator快速部署分布式数据库服务,这种高度的兼容性、敏捷的部署方式在传统的软件开发中是难以想象的。