把业务迁移进容器云平台并不是一件容易的事,因为 Kubernetes 目前只对微服务、无状态应用足够友好,所以如果用户原来的业务架构存在 All in One、写死配置等耦合性高、有状态的情况,用 Kubernetes 来部署业务会带来很大的改造和适应成本(当然收益也会非常可观)。
你的应用需要一定改造才能成为一个合格的微服务架构,例如将单机多业务进程应用改造为一个容器一个业务进程,将IP调用改为域名,服务名调用等等。此外,开发者也需要适应制作镜像、服务编排等新的开发部署模式。
然而在实际的场景中,用户往往还面临着存量业务无法改造,需要原架构、原配置迁移的场景,这就要求容器平台需要有兼容存量业务的能力。这里主要分为两个部分:
1. 对传统业务架构的支持,这就要求容器云平台能力提供富容器模式、容器网络与 node 节点在同一网络平面、IP 预分配、IP 随实例迁移等等特性。
2. 对传统运维习惯的兼容,例如故障不迁移、Pod 原地升级、一个Workload内灰度发布、多版本发布、不重启发布等特性。
此外,一个好的业务平台还应该具备对其他系统兼容、简化开发部署等方面的能力,主要为以下几部分:
1. 对接其他系统的能力,例如对接用户已有的权限认证系统、负载均衡、存储系统、消息通道等等;
2. CI/CD 工具,这在容器化的业务场景下为强需求,否则容器业务难以做到敏捷开发;
3. 提供常用组件简化安装的工具、服务编排能力,通过这些工具用户可以借助公司内部、开源社区的力量,实现低成本部署应用。
容器平台应该具备的能力相关文章阅读: