1. 背景

  • 复用 KUN 的技术积累
  • 丰富公有云容器产品的生态,提升粘性

    2. KUN 主要功能列表与 UC 公有云及友商的对比

主要功能 KUN UC 公有云 AWS 阿里云
多租户管理 √ 基于 NS 的项目权限管理 x x x
镜像仓库
代码仓库 ○ 对接 GitLab x √ CodeCommit √ 云效
CI 流水线 ○ 对接 GitLab x √ CodeBuild CodePipeline √ 云效
CD 部署 √ 对接 GitLab,实现 KUN 集群的持续部署 x √ CodeDeploy √ 云效
灰度发布
流量控制
√ 基于 Istio 实现 x √ AppConfig
AppMesh
√ 1. 云效;2. ACK 集成灰度发布功能
应用商店 √ Helm 应用商店 x 曾经有 Helm,因为缺少人维护下线 x √ 基于 Helm 的应用市场

2.1 AWS

KUN & UCloud 公有云容器集成调研 - 图1
https://aws.amazon.com/cn/blogs/devops/ci-cd-on-amazon-eks-using-aws-codecommit-aws-codepipeline-aws-codebuild-and-fluxcd/

2.2 阿里云

KUN & UCloud 公有云容器集成调研 - 图2
https://bp.aliyun.com/detail/52?spm=a2c4g.11186623.0.0.52436bb6vRsVEp

3. 客户情况分析

3.1 UK8S

8 月 UK8S 共有客户 129 个,其中 S 客户 38 个约占 28.5%,S 级客户贡献收入占总收入的 85.9%,其中 Top2 客户(值得买、谊游)收入(月消约 80w)占到总收入的 41%。但这两个客户之后,第三个客户月消不到 30w,10w-30w 客户一共只有 5 个。收入对大客户的依赖过重,中坚力量的面不够广
产品比较偏基础资源层面,缺少差异性的点。客户在使用 Kubernetes 及容器的过程当中,往往会涉及到一整套 CI/CD、流量控制工具,及微服务框架搭建等,UCloud 在这方面还比较缺失,就会导致:1. 从友商等迁移过来的过程会比较重,往往需要客户自己去做一套工具的搭建,对架构师、服务经理的要求也比较高;2. 从传统云主机转换到容器、K8S,缺少可以参考的最佳实践,或者是一套开箱即用的工具,导致整个流程比较长

3.2 Cube

客户 148 个,其中企业客户 45 个,其他主要是促销引入的客户,其中代理类的场景(店铺盒子、爬虫等)占了整体收入的约 75%,客户的样本及场景面还太窄,仍然处在一个从 0 到 1 的阶段。
Cube 在一定程度上简化了使用 Docker、K8S 的过程,但仍然有一定的使用门槛(需要了解容器和 Kubernetes 的一些基本概念和使用方法),并且仍然偏 IaaS 层,如果要在生产中用起来,仍需要一套 CI/CD 的流程去与之做对接和配合

3.3 公有云 KUN 满足客户什么需求

  1. 对于中大型客户来说,提供一套 CI/CD 工具,能够对接客户现有、或者帮助客户对接主流的代码仓库、CI 工具(如 GitLab、Jenkins、Rancher)等,简化客户在 UCloud 的业务部署流程,包括应用主体(容器)及涉及到的存储、数据库、消息队列等,从而实现快速迁移和快速容器化
  2. 对于小型客户,能够进一步降低容器产品的使用门槛,为 UK8S 和 Cube 引入更多的种子客户。

    4. 公有云 KUN 设计思路

独立于 UK8S、Cube 之外的 DevOps 工具产品

缺失功能 优先级 UC 公有云设计思路
CI 流水线 P0
- 对接主流的代码仓库和 CI 工具(如 GitLab、Jenkins、Rancher 等)
- 提供 CI 中间产物(文件、镜像)的管理(UHub)
CD 部署 P0
- 应用自动部署
- 不同环境(开发、预发、测试、生产)的管理
- 发布回滚、配置变更
运维管理 P1
- 日志管理、监控告警等
应用商店 P1
- Helm 应用商店,及主流的容器 Operator
- 后期需要耗费至少 1 个人力,进行迭代、适配等维护工作
权限管理 P2
- 在 K8S 集群中对控制台权限的继承
- 针对不同账号,分配集群中各个 NS 下资源对象的增/删/改/查权限
流量治理
灰度发布
P2
- 按照地域进行灰度发布
- 同一集群中的蓝绿发布