1. 背景
主要功能 | 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
https://aws.amazon.com/cn/blogs/devops/ci-cd-on-amazon-eks-using-aws-codecommit-aws-codepipeline-aws-codebuild-and-fluxcd/
2.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 满足客户什么需求
- 对于中大型客户来说,提供一套 CI/CD 工具,能够对接客户现有、或者帮助客户对接主流的代码仓库、CI 工具(如 GitLab、Jenkins、Rancher)等,简化客户在 UCloud 的业务部署流程,包括应用主体(容器)及涉及到的存储、数据库、消息队列等,从而实现快速迁移和快速容器化。
- 对于小型客户,能够进一步降低容器产品的使用门槛,为 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 | - 按照地域进行灰度发布 - 同一集群中的蓝绿发布 |