简介:本文将介绍在帮助用户快速完成迁云中的解决方案、最佳实践以及迁云工具。
云原生的时代已经到来,云原生技术正在重塑整个软件生命周期,阿里巴巴是国内最早布局云原生技术的公司之一。
容器服务团队在过去的几年时间内帮助很多用户成功把业务云原生化并迁移上云,其中有现在已经是我们 TOP10 的大客户,也有需要在国内开展业务的海外用户,有些是从其他云厂商迁移过来的用户,有些是从 IDC 里迁移上云的用户,而且越来越多的用户开始咨询如何对自己的应用做云原生化改造、如何把业务平滑地迁移到云上。每个用户的业务场景都是不同的,有些差异化的业务场景对容器平台也有一些定制化的需求,我们在帮助这些用户落实迁云方案的同时也在不断思考如何把这些案例中共性的东西做一些沉淀,总结出一些优秀的解决方案、最佳实践以及开发一些工具来帮助用户快速完成迁云的这件事情。这些解决方案、最佳实践以及迁云工具就是今天这篇文章想要分享的内容。
在帮助用户落实迁云方案之前,我们首先必须要回答至少 3 个问题:
(1)ACK(阿里云容器服务 Kubernetes)如何能保证用户业务的可靠性、稳定性、安全性和灵活性;
(2)如何设计迁云方案把业务平滑地迁移到 ACK;
(3)应用如何做进一步改造来适配 ACK 提供的更强大的扩展能力。
ACK 如何保证用户业务的可靠性、稳定性、安全性和灵活拓展性
首先,ACK 是以阿里云可靠稳定的 IaaS 平台为底座的,有最大的弹性化与低廉成本和全球化接入的优势;其次,ACK 本身处于阿里云的安全体系架构之下并从基础设施到容器运行时环境对容器集群有全维度的安全加固;过去几年我们很好地支撑了成百上千家大小企业的业务运行,有海量用户经验总结并经过双 11 验证;除此之外。ACK 是在标准的 Kubernetes 基础上,对与用户息息相关的能力做了大幅提升,用户完全不需要担心会被某一家厂商绑定。
另外,ACK 与阿里云的所有 region 保持一致,除了国内多个区域开服外,在东南亚、中东、欧洲、美东美西等地域都有开服,完全可以满足用户开展全球业务的需求。
整体迁云方案设计
用户业务整体迁云的方案设计会涉及到集群规划、数据搬迁、监控切换、日志切换以及最终的生产流量切换或并网操作。
首先需要做集群规划,用户需要根据自己业务场景的不同来选择不同的机器类型,比如 CPU 机器还是 GPU 机器,比如虚拟服务器ECS还是神龙裸金属服务器等等。
其次网络规划这部分会涉及到容器集群基础设施选择 vpc 内网网络还是经典网络,集群内 pod 之间进行通信模式是 flannel 模式还是 terway 模式等。
再次在容量规划这部分,用户可以根据自己的成本以及预算规划一个可满足初期业务正常运行的容量即可,随后可以配置动态扩缩容随时弹缩集群规模。
第四在安全防护提升这部分,有基础架构安全比如设置合理的安全组规则,有镜像安全比如使用私有镜像并定义镜像安全扫描,Kubernetes 应用安全管理比如设置不同服务间互相访问的网络安全策略等。
第五在监控切换这部分相对于用户自建 Kubernetes 会更加全维度和立体,从基础设施到容器运行时监控一应俱全,并可根据阈值设定触发报警通知;用户一般也会把自建的日志收集方案切换成阿里云上企业级的日志产品 SLS。
第六在数据迁移是非常重要的一部分,这些数据包括数据库数据、存储数据、容器镜像等,我们会对接阿里云上企业级的产品以及迁移工具来完成数据的迁移,目的是为了保证数据迁云的可靠性、安全性。目前备份中心支持云下数据到云上 ACK 的迁移,您可以使用备份中心来完成应用及数据到 ACK 的迁移。
最后在应用改造主要涉及的内容包括镜像地址的更新、服务暴露方式的优化以及存储盘挂载方式的更新适配。另外需要提供一个满足用户快速迭代上线产品的 CICD 方案。以上各个组件调试完毕后,我们就可以进行一部分生产流量的切换。
以上是从集群规划到生产流量切换便是用户业务迁移上云所需要涉及到的总体几个步骤。
全栈迁云架构思路分两种,一种是整体迁移,一种是平滑迁移。整体迁移是指用户应用全部迁移上云后,各个组件调试完毕、测试验收通过后,可以整体切换生产流量到线上集群,待线上集群上的业务稳定运行一段时间后再下线原有环境。平滑迁移是指用户可以使用线上 ACK 集群纳管线下节点,或者线上集群与线下集群混合组网对外提供服务,逐步改造业务组件上云后将原有环境下线。这两种方式相比,整体迁移更简单,平滑迁移响度复杂但对业务影响小,所以也需要根据用户的实际场景做选择。
通过备份中心来实现已有 Kubernetes 集群迁移的主要步骤如下:
- 在线下 Kubernetes 创建集群(例如,Rancher 集群),将线下集群接入注册集群。具体操作,请参见创建注册集群并接入本地数据中心集群;
- 云上通过 ACK 创建托管版集群,部署备份服务组件;
- 云下纳管集群(即注册集群)安装备份组件,并通过备份中心备份线下集群的应用及 PV 数据,具体操作,请参见创建备份任务;
- 在云上 ACK 集群中,通过备份中心使云下应用和数据的备份,在云上进行恢复。
- 数据中心本地块存储 SAN、Ceph OBD 及本地盘 LVM 等。
- 数据中心文件系统 HostPath、NFS、NetApp、GlusterFS 及 CephFS 等。
- 数据中心本地对象存储 Ceph S3 等。
通过备份中心,可以将云下 Kubernetes 应用及 PV 数据迁移到 ACK 集群,实现顺利云原生化改造。
应用改造和优化
案例和总结
以上这些不同用户的不同业务场景在云原生化迁云方案的设计和落实上都有各自的差异性,不尽相同,需要结合 ACK 团队沉淀下来的最佳实践来快速做出评估和计划,并借助已有的一系列迁云工具快速完成业务从线下迁移上云的过程。
其他
ack-image-builder 能够帮助用户制作符合 ACK 集群节点要求的自定义镜像
sync-repo 能够帮助用户快速完成容器镜像批量迁移至 ACR(容器镜像仓库服务)
跨集群恢复 Kunbernetes 应用备份中心能够帮助用户快速把其他云厂商或者自建 Kubernetes 集群下的完整应用迁移至 ACK 集群。
原文链接
本文为阿里云原创内容,未经允许不得转载。