在阿里,我们这样帮助用户实现业务云原生化迁云

本文涉及的产品
应用实时监控服务-用户体验监控,每月100OCU免费额度
应用实时监控服务-可观测链路OpenTelemetry版,每月50GB免费额度
应用实时监控服务-应用监控,每月50GB免费额度
简介: 「本文整理自阿里云高级开发工程师郝树伟(流生)在大会上的演讲,获取云原生专场全部 PPT 合集请在后台回复“724”」 7 月 24 日,阿里云开发者大会正式在上海世博中心召开,大会聚焦 IT 基础设施云化、云数据库、开源大数据、物联网以及云原生等主题,向数千位开发者分享了云上开发的技术干货。

「本文整理自阿里云高级开发工程师郝树伟(流生)在大会上的演讲,获取云原生专场全部 PPT 合集请在阿里巴巴云原生公众号后台回复“724”」

7 月 24 日,阿里云开发者大会正式在上海世博中心召开,大会聚焦 IT 基础设施云化、云数据库、开源大数据、物联网以及云原生等主题,向数千位开发者分享了云上开发的技术干货。

云原生的时代已经到来,云原生技术正在重塑整个软件生命周期,阿里巴巴是国内最早布局云原生技术的公司之一。

容器服务团队在过去的几年时间内帮助很多用户成功把业务云原生化并迁移上云,其中有现在已经是我们 TOP10 的大客户,也有需要在国内开展业务的海外用户,有些是从其他云厂商迁移过来的用户,有些是从 IDC 里迁移上云的用户,而且越来越多的用户开始咨询如何对自己的应用做云原生化改造、如何把业务平滑地迁移到云上。

每个用户的业务场景都是不同的,有些差异化的业务场景对容器平台也有一些定制化的需求,我们在帮助这些用户落实迁云方案的同时也在不断思考如何把这些案例中共性的东西做一些沉淀,总结出一些优秀的解决方案、最佳实践以及开发一些工具来帮助用户快速完成迁云的这件事情。这些解决方案、最佳实践以及迁云工具就是今天这篇文章想要分享的内容。

在帮助用户落实迁云方案之前,我们首先必须要回答至少 3 个问题:

  • (1)ACK(阿里云容器服务 Kubernetes)如何能保证用户业务的可靠性、稳定性、安全性和灵活性;
  • (2)如何设计迁云方案把业务平滑地迁移到 ACK;
  • (3)应用如何做进一步改造来适配 ACK 提供的更强大的扩展能力。

ACK 如何保证用户业务的多种特性

  • 首先,ACK 是以阿里云可靠稳定的 IaaS 平台为底座的,有最大的弹性化与低廉成本和全球化接入的优势;
  • 其次,ACK 本身处于阿里云的安全体系架构之下并从基础设施到容器运行时环境对容器集群有全维度的安全加固;过去几年我们很好地支撑了成百上千家大小企业的业务运行,有海量用户经验总结并经过双11验证;
  • 除此之外,ACK 是在标准的 Kubernetes 基础上,对与用户息息相关的能力做了大幅提升,用户完全不需要担心会被某一家厂商绑定。

在我们过去帮助用户业务上云的案例中,绝大部分是自建 Kubernetes 集群迁移到 ACK 集群,与自建 Kubernetes 集群相比较,ACK 在成本、弹性、IaaS 高度融合、性能、安全加固以及实践经验等方面都有非常巨大的优势。

另外,ACK 与阿里云的所有 region 保持一致,除了国内多个区域开服外,在东南亚、中东、欧洲、美东美西都有开服,完全可以满足用户开展全球业务的需求。

整体迁云方案设计

用户业务整体迁云的方案设计会涉及到集群规划、数据搬迁、监控切换、日志切换以及最终的生产流量切换或并网操作。

迁云到 ACK 需要涉及到哪些组件、搬迁哪些数据、切换哪些服务等,都是需要用户有清晰的概念的。

  • 首先需要做集群规划,用户需要根据自己业务场景的不同来选择不同的机器类型,比如 CPU 机器还是 GPU 机器、比如虚拟服务器 ECS 还是神龙裸金属服务器、网络规划这部分会涉及到容器集群基础设施选择vpc内网网络还是经典网络、集群内pod之间进行通信模式是flannel模式还是terway模式等;

  • 在容量规划这部分,用户可以根据自己的成本以及预算,规划一个可满足初期业务正常运行的容量即可,随后可以配置动态扩缩容随时弹缩集群规模;
  • 在安全防护提升这部分,有基础架构安全比如设置合理的安全组规则,有镜像安全比如使用私有镜像并定义镜像安全扫描,K8S 应用安全管理比如设置不同服务间互相访问的网络安全策略等;

  • 监控切换这部分相对于用户自建 Kubernetes 会更加全维度和立体,从基础设施到容器运行时监控一应俱全,并可根据阈值设定触发报警通知。用户一般也会把自建的日志收集方案切换成阿里云上企业级的日志产品 SLS;

  • 数据迁移是非常重要的一部分,这些数据包括数据库数据、存储数据、容器镜像等,我们会对接阿里云上企业级的粗出产品以及迁移工具,目的是为了保证数据迁云的可靠性、安全性;

  • 应用改造主要涉及的内容包括镜像地址的更新、服务暴露方式的优化以及存储盘挂载方式的更新适配;最后提供一个满足用户快速迭代上线产品的 CICD 方案。

以上各个组件调试完毕后,我们就可以进行一部分生产流量的切换。从集群规划到生产流量切换便是用户业务迁移上云所需要涉及到的方方面面。

我们提供了一个企业容器化生命周期模型,这个模型是根据时间阶段和用户侧各个业务角色来划分的:

比如业务架构师角色需要关心的是业务上云能给公司带来什么价值,在 TCO 和场景上会带来哪些优化,云平台在安全性以及计算、存储、网络能力上是否能满足当前业务需求;IT 架构师负责规划当前业务需要的集群容量和规模以及网络选型等问题,剩下的就是系统管理员与应用管理员把迁云方案的各个细节落实下来。

这个模型的主要核心关注点是让用户的业务上云后能更稳定、成本更低、效率更高。

全栈迁云架构思路分两种:一种是整体迁移,一种是平滑迁移。

整体迁移是指用户应用全部迁移上云后,各个组件调试完毕、测试验收通过后,可以整体切换生产流量到线上集群,待线上集群上的业务稳定运行一段时间后再下线原有环境。

平滑迁移是指用户可以使用线上 ACK 集群纳管线下节点,或者线上集群与线下集群混合组网对外提供服务,逐步改造业务组件上云后将原有环境下线。

这两种方式相比,整体迁移更简单,平滑迁移响度复杂但对业务影响小,所以也需要根据用户的实际场景做选择。

容器化整体迁云这部分还有两个小场景:

一个是用户从自建 Kubernetes 集群迁移到 ACK,此场景下用户的应用已经做了很大一部分的云原生化改造,迁移工作相对来说会简单些;

还有一部分用户的应用是传统应用,直接运行在虚拟机或者裸金属服务器上,没有做过任何云原生化的改造,对于这部分场景,我们也提供了相关工具或方案帮助用户进行云原生化的迁云改造,比如使用 derrick 项目可以自动检测源码项目类型并生成 Dockerfile 和用于应用部署编排的 yaml 文件,比如我们正在联合 ECS SMC(迁云中心)开发的虚拟机转换容器镜像并运行在 ACk 集群中的能力。

为了帮助用户提高迁云的效率,我们也在持续积累和开源一些迁云工具。

比如 ack-image-builder 为用户提供创建 ACK 集群节点自定义镜像的模板并通过校验模块检查自定义镜像是否满足 ACK 集群要求;sync-repo 能够帮助用户快速完成容器镜像批量迁移至 ACR(容器镜像仓库服务)velero 能够帮助用户快速把其他云厂商后者自建 Kubernetes 集群下的完整应用迁移至 ACK 集群。

Velero迁移Kubernetes应用到ACK视频DEMO](http://cloud.video.taobao.com/play/u/3300558962/p/1/e/6/t/1/232004050150.mp4))

在数据搬迁部分,可靠迁移是关键,根据用户数据类型的不同,我们会使用与之匹配的企业级迁移工具,比如数据在线迁移服务 DOMS,比如 OSS 的迁移工具,还有离线海量数据迁移方案闪电立方等。

数据、应用迁云完成后,需要进一步适配监控、日志等组件,待各个组件调试完毕通过验收后,可以使用智能 DNS 进行生产流量的切割。

应用改造和优化

对于应用改造和优化这部分,K8s 到 K8s 的场景下,需要优化的是去适配自动扩容等自建 K8s 不具备的那些能力,在传统应用迁移到 ACK 的场景下,这部分的工作量会更大些,所以我们针对这个场景也输出了一些方案,比如类似于异地多活的方案,我们把用户传统应用环境,通常是虚拟机或者裸机环境集成到线上 ACK 部署的 Istio 网格中,逐步改造应用直至业务全部切换到线上 ACK 集群。

在应用逐步改造的这个过程中,会涉及到应用如何容器化、网络环境如何迁移以及数据迁移的问题。

应用容器化这个问题,我们可以使用前面我提到过的一个服务叫做 SMC 迁云中心来完成虚拟机转换为容器镜像的过程,网络这部分可以通过 iptables, External, CoreDNS PrivateZone 等方式对 IP 地址 DNS 域名做处理,保持原先的逻辑 IP 和域名不变,并通过 Istio 实现网络虚拟路由和可观测性的管理。

案例

典型案例如下图所示:

接下来是部分迁云案例:

  • 有对高性能网络有特殊需求的用户;
  • 有做深度学习相关业务对大规模GPU机器有需求的用户;
  • 有要求裸金属机型服务器的用户等等。

ACK 云原生化迁云解决方案、混合云 2.0 管理能力发布


在云原生场景实战分论坛上,阿里云容器服务 ACK 正式发布云原生化迁云解决方案、混合云 2.0 管理能力。

ACK 云原生化迁云解决方案


云原生化迁云解决方案旨在实现容器化整体迁云。方案能帮助用户快速完成迁云方案评估、迁云实施和生产流量切换,全面提升用户业务的可靠性、安全性、灵活性并降低开发运维成本,为用户提供全方位保障,让用户聚焦业务创新。

ACK 混合管理能力 2.0


ACK 混合管理能力 2.0 提供了多维度统一能力,进一步减少开发者工作量:

  • 首先提供统一管理能力。可以纳管用户 IDC 自有 K8s 集群和各类 K8s 集群,利用统一的控制平面实现统一的安全治理、应用管理和监控、日志等能力。
  • 其次在统一的资源调度基础上提供动态弹性能力。帮助客户更好利用云端计算资源实现弹性扩容,从容应对突发流量。
  • 最后是统一的服务治理能力。可以实现就近访问,故障转移,灰度发布等功能,配合阿里云混合云能力轻松支持支持云容灾、异地多活等应用场景。


不久前,阿里云发布了 Edge@ACK 云边端一体化的云原生边缘容器产品。在此次大会上,阿里技术专家详细阐述了边缘容器如何在阿里云 CDN 落地。CDN 正在进行二次变革,从以内容分发服务为主转变为边缘计算,其节点经过改造后也可升级为具备存储、计算、传输、安全功能云计算节点,形成处理高频、高交互的海量数据的能力。


阿里云 ENS 就是基于 CDN 的边缘节点服务,在阿里云看来:“云原生”在云边端一体化时代将会发挥更大的价值。

相关实践学习
通过容器镜像仓库与容器服务快速部署spring-hello应用
本教程主要讲述如何将本地Java代码程序上传并在云端以容器化的构建、传输和运行。
Kubernetes极速入门
Kubernetes(K8S)是Google在2014年发布的一个开源项目,用于自动化容器化应用程序的部署、扩展和管理。Kubernetes通常结合docker容器工作,并且整合多个运行着docker容器的主机集群。 本课程从Kubernetes的简介、功能、架构,集群的概念、工具及部署等各个方面进行了详细的讲解及展示,通过对本课程的学习,可以对Kubernetes有一个较为全面的认识,并初步掌握Kubernetes相关的安装部署及使用技巧。本课程由黑马程序员提供。   相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
边缘计算 运维 Kubernetes
阿里云原生容器服务产品体系-阿里云边缘容器服务ACK@Edge介绍
阿里云原生容器服务产品体系-阿里云边缘容器服务ACK@Edge介绍
阿里云原生容器服务产品体系-阿里云边缘容器服务ACK@Edge介绍
|
7月前
|
Cloud Native 关系型数据库 分布式数据库
阿里云原生数据库 PolarDB MySQL:云原生时代的数据库新篇章
阿里云原生数据库 PolarDB MySQL,它是阿里云自主研发的下一代云原生关系型数据库。PolarDB具有多主多写、多活容灾、HTAP等特性,交易性能和存储容量均表现出色。此外,PolarDB MySQL Serverless具有动态弹性升降资源和全局一致性等特性,能够适应高吞吐写入和高并发业务场景。本文详细分析了PolarDB的性能、稳定性和可扩展性,以及它在成本、性能和稳定性方面的优势。PolarDB为企业提供了高效、可靠的数据库解决方案,是值得考虑的选择。
385 0
|
7月前
|
Cloud Native 关系型数据库 OLAP
云原生数据仓库产品使用合集之阿里云云原生数据仓库AnalyticDB PostgreSQL版的重分布时间主要取决的是什么
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。
|
4月前
|
Cloud Native 数据库 开发者
云原生数据库2.0问题之帮助阿里云数据库加速技术更新如何解决
云原生数据库2.0问题之帮助阿里云数据库加速技术更新如何解决
|
7月前
|
Cloud Native 数据管理 关系型数据库
【阿里云云原生专栏】云原生数据管理:阿里云数据库服务的分布式实践
【5月更文挑战第21天】阿里云数据库服务在云原生时代展现优势,应对分布式数据管理挑战。PolarDB等服务保证高可用和弹性,通过多副本机制和分布式事务确保数据一致性和可靠性。示例代码展示了在阿里云数据库上进行分布式事务操作。此外,丰富的监控工具协助用户管理数据库性能,支持企业的数字化转型和业务增长。
233 1
|
7月前
|
运维 Cloud Native 持续交付
【阿里云云原生专栏】从零到一搭建云原生应用:阿里云云原生应用平台实战教程
【5月更文挑战第24天】本文档是一份阿里云云原生应用平台的实战教程,介绍了如何从零开始搭建云原生应用。内容涵盖云原生应用的特点(容器化、微服务、CI/CD和自动化运维)以及阿里云提供的服务,如容器服务、服务网格和CI/CD工具。教程详细讲解了创建容器集群、编写Dockerfile、构建镜像、部署应用、配置服务网格和设置CI/CD的步骤。通过本文,读者将学会利用阿里云平台开发和管理云原生应用。
784 0
|
Kubernetes Cloud Native 安全
阿里云原生容器服务产品体系-ACK Pro 托管集群
阿里云原生容器服务产品体系-ACK Pro 托管集群
阿里云原生容器服务产品体系-ACK Pro 托管集群
|
Kubernetes Cloud Native 双11
阿里云原生容器服务产品体系-阿里云容器服务体系概述
阿里云原生容器服务产品体系-阿里云容器服务体系概述
阿里云原生容器服务产品体系-阿里云容器服务体系概述
|
7月前
|
人工智能 Cloud Native Serverless
邀请报名|12月22日阿里云原生 Serverless 技术实践营 西安站
12月22日,西安 · 阿里中心举办阿里云原生 Serverless 技术实践营
邀请报名|12月22日阿里云原生 Serverless 技术实践营 西安站
|
人工智能 Cloud Native Serverless
邀请报名丨11 月 24 日阿里云原生 Serverless 技术实践营深圳站
邀请报名丨11 月 24 日阿里云原生 Serverless 技术实践营深圳站