云原生应用万节点分钟级分发协同实践

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
可观测可视化 Grafana 版,10个用户账号 1个月
简介: 本文将介绍容器镜像服务如何通过提升产品能力来应对云原生应用万节点分发场景下的新发展和新挑战。

本文节选自《不一样的 双11 技术:阿里巴巴经济体云原生实践》一书

作者:
谢于宁,花名予栖,阿里云容器服务高级开发工程师
罗晶,花名瑶靖,阿里云容器服务高级产品经理
邓隽,阿里云容器服务技术专家

引言

2019 年天猫双11,阿里巴巴核心系统首次实现 100% 上云。面对全球最大的交易洪峰,阿里云扛住了每秒 54.4 万笔的交易峰值,这是“云原生”与“天猫全球狂欢节”的一次完美联名。

1.png

(图为 2019 年天猫双11 成交额)
容器镜像服务作为阿里巴巴经济体云原生领域的重要基础设施之一,早在 双11 备战期间就已面临大规模分发需求。为了更好地支持这一需求,产品提前进行规划及迭代更新,全面提升了大规模分发场景下的性能、可观测性和稳定性。在新的 双11 来临前,容器镜像服务新增了数 PB 的镜像数据,月均镜像拉取达数亿次。同时产品提供了云原生应用交付链等功能,全面覆盖阿里经济体及云上用户在云原生时代的使用需求。


本文将介绍容器镜像服务如何通过提升产品能力来应对云原生应用万节点分发场景下的新发展和新挑战。

新发展和新挑战

随着云原生技术的迅速普及,Kubernetes 已经成为事实上应用容器化平台的标准,成为了云原生领域的“一等公民”。Kubernetes 以一种声明式的容器编排与管理体系,让软件交付变得越来越标准化。Kubernetes 提供了统一模式的 API,能以 YAML 格式的文件定义 Kubernetes 集群内的资源。这一些 YAML 格式的资源定义使得 Kubernetes 能轻松被上下游系统所集成,完成一系列原本需要用非标准化脚本、人工来完成的操作。同时社区根据应用交付场景及需求,在原生 YAML 格式的资源定义文件之外衍生出了更多系列的云原生应用交付标准,例如 Helm Chart、Opeartor、Open Application Model 等。

2.png


除了云原生应用交付标准推陈出新,用户对交付方式也提出了更高的要求。越来越多的用户期望能以流程化、自动化、更安全的方式交付云原生应用,因此单纯的万节点分发场景已经演化成万节点分钟级多环节协同分发。再加上全球化业务发展,这意味着在分钟级时间内完成各个环节之后,还需再完成全球化分发,这对支撑云生应用分发的平台提出了更高的要求。

新实践

通过控制容器镜像大小、采用 P2P 分发镜像层、优化 Registry 服务端等方式,我们极大优化了大规模分发的性能,最终达成了万节点分钟级分发的目标:

  • 优化容器镜像大小,降低镜像传输成本

    • 制作基础镜像,将使用频繁的应用或环境制作成基础镜像复用,尽可能减少镜像的层数,控制每次变更层数
    • 采用多阶段镜像构建,将镜像制作过程中的中间产物与最终产物分离,形成最精简的应用镜像
  • 优化服务端处理性能,提高请求响应速率

    • 服务端通过识别热点镜像,采用热点数据缓存等多种方式应对大规模镜像 Manifest 并发拉取
  • 优化客户端容器镜像层下载方式,减少镜像传输时间

    • 客户端使用蜻蜓下载容器镜像, 基于 P2P 方式大幅减少镜像 Layer 下载时间

3.png

(图为镜像大规模分发的优化策略)


为了让拥有同样需求的企业客户能够享受到如上一致的分发能力和体验,容器镜像服务产品在 2019 年 3 月正式推出了容器镜像服务企业版(ACR Enterprise Edition)。容器镜像服务企业版提供了企业级云原生资产托管能力以及云原生应用全球化同步、大规模分发能力,适合有着高安全需求、多地域业务部署、拥有大规模集群节点的企业级容器客户。除此之外,容器镜像服务企业版还在云原生资产托管交付分发等几个方面进一步提升云原生应用万节点分钟级分发协同体验。

云原生应用托管

  • 在应用交付物层面,容器镜像服务企业版目前支持容器镜像Helm Chart 两类云原生应用资产的全生命周期管理。
  • 在访问安全层面,产品提供了独立网络访问控制功能,可以细粒度控制公网及 VPC 网络的访问策略,仅允许符合策略的来源方访问资产,进一步保障云原生资产的访问安全。
  • 在访问体验层面,产品提供容器集群透明拉取插件,支持容器镜像透明拉取,保障业务在弹性场景极速拉取镜像不因凭证配置有误导致业务更新或扩容异常。

4.png

(图为容器镜像服务企业版支持云原生应用交付)

云原生应用交付

云原生应用生产环节,用户可以直接上传托管容器镜像、Helm Chart 等云原生资产;也可以通过构建功能自动从源代码(Github、阿里云 Code、GitLab 等来源)智能构建成容器镜像。同时为了解决流程化、自动化、更安全的方式交付云原生应用这一需求,容器镜像服务企业版引入了云原生应用交付链功能。云原生应用交付链以云原生应用托管为始,以云原生应用分发为终,全链路可观测、可追踪、可自主设置。可以实现一次应用变更,全球化多场景自动交付,从流程层面极大地提升了云原生应用万节点分发的效率及安全性。


5.png

(图为控制台创建云原生应用交付链)


云原生应用交付环节,支持自动发起静态安全扫描并自定义配置安全阻断策略。一旦识别到静态应用中存在高危漏洞后,可自动阻断后续部署链路。用户可基于漏洞报告中的修复建议,更新优化构建成新的镜像版本,再次发起交付。

云原生应用分发

云原生应用分发环节,当前置环节完成无阻断后,云原生应用正式进入全球化分发及大规模分发环节。为了保障万节点分钟级分发协同完成,容器镜像服务联合容器服务、弹性容器实例等云产品提供了端到端的极致分发体验。针对全球化分发,由于基于细粒度同步策略调度、同步链路优化等优化手段,云原生应用的全球同步效率相比手动同步提升了 7 倍


6.png

(图为云原生应用的全球化分发)


在 P2P 大规模分发方面,产品针对云环境多次优化基于 Dragonfly 的分发方案,最终通过多个创新技术解决了大规模文件下载以及跨网络隔离等场景下各种文件分发难题,大幅提高大规模容器镜像分发能力。平均镜像大规模分发效率比普通方式提高数倍,适用于容器集群单集群节点数达 100 及以上的场景。

7.png

(图为基于 P2P 的分发流程示意)


除了 P2P 大规模分发手段外,为了更好地满足特定场景下的大规模分发需求,产品还支持基于镜像快照的大规模分发方式。基于镜像快照的分发方式,可避免或减少镜像层的下载,极大提高弹性容器实例创建速度。在容器集群(ASK)及弹性容器实例(ECI)的联合使用场景下,产品可以支持 500 节点秒级镜像拉取,实现业务突发场景下极速扩容。


8.png

(图为基于镜像快照的分发流程示意)

新平台

在功能及性能指标满足云原生应用万节点分钟级分发协同需求外,容器镜像服务还对平台能力进行了提升和优化,保障了分发过程的可观测性及稳定性。同时平台提供了集成能力,进一步延展云原生应用分发的使用场景和价值。

稳定性

稳定性层面的具体提升及优化工作从监控报警、容错容灾、依赖治理、限流降级、容量规划等几个方面展开。

  • 在依赖治理方面,平台对云原生应用交付链中的相关重点环节及外部依赖进行统一管理,提升交付链整体交付能力,帮助用户识别热点仓库及追踪交付链执行结果;
  • 在限流降级方面,平台分析识别云原生应用分发核心环节的主次业务功能,优先保障主要业务逻辑完成,次要业务逻辑可降级延后处理;
  • 在容量规划方面,平台根据上下游业务变化情况,对资源进行按需扩容,确保云原生应用正常交付完成。

9.png

(图为平台的稳定性保障策略)

生态集成

基于平台提供的丰富的集成能力,用户还可以将容器镜像服务企业版作为云原生资产托管及分发的基础设施,为他们的用户提供云原生应用分发能力。其中,容器镜像服务企业版支撑阿里云云市场构建容器应用市场,支撑容器应用市场的容器商品托管及商业化分发,构建云上云原生生态闭环。ISV 服务商,例如 Intel、Fortinet、奥哲,将容器化商品以容器镜像或者 Helm Chart 的形式在云市场快速上架,实现标准化交付、商业化变现。市场客户也可以从容器应用市场获取到优质的阿里云官方及 ISV 容器镜像,快速部署至容器服务容器集群,享受到阿里云丰富的云原生生态。

10.png

(图为容器应用市场流程示意)

写在最后

从支持阿里巴巴 双11 大规模分发需求,到全面覆盖阿里经济体及云用户的云原生资产托管及分发需求,再到支撑构建云上容器生态闭环,阿里云容器镜像服务已成为了云原生时代的核心基础设施之一,释放云原生价值的重要加速器。容器镜像服务也将持续为用户带来更加优异的云原生应用分发功能、性能及体验。

ban.jpg

本书亮点

  • 双11 超大规模 K8s 集群实践中,遇到的问题及解决方法详述
  • 云原生化最佳组合:Kubernetes+容器+神龙,实现核心系统 100% 上云的技术细节
  • 双 11 Service Mesh 超大规模落地解决方案

“阿里巴巴云原生微信公众号(ID:Alicloudnative)关注微服务、Serverless、容器、Service Mesh 等技术领域、聚焦云原生流行技术趋势、云原生大规模的落地实践,做最懂云原生开发者的技术公众号。”

相关实践学习
通过workbench远程登录ECS,快速搭建Docker环境
本教程指导用户体验通过workbench远程登录ECS,完成搭建Docker环境的快速搭建,并使用Docker部署一个Nginx服务。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
6天前
|
Kubernetes 监控 Cloud Native
全栈声明式可观测:KubeVela开箱即用且灵活定制的云原生应用洞察
KubeVela 是一个开箱即用的现代化应用交付与管理平台。本文我们将聚焦 KubeVela 的可观测体系,介绍云原生时代的可观测挑战及 KubeVela 的解决方案。
|
2天前
|
Kubernetes Cloud Native Docker
使用 kubevpn 在本地快速开发云原生应用
KubeVPN 是一个用于云原生开发的工具,它允许用户通过本地计算机直接访问远程 Kubernetes 集群中的服务,利用 k8s DNS 或 Pod IP/Service IP。它可以拦截并调试服务网格中的工作负载流量,并提供开发模式,让容器在本地以与 k8s pod 相同的环境运行。快速开始包括下载二进制文件、自定义 Krew 安装、构建二进制文件以及安装示例应用。KubeVPN 支持链接到多个集群、DNS 解析、反向代理,以及在 Docker 中的开发模式,确保与 Kubernetes 运行环境一致。此外,它还兼容多种协议和平台。
21 5
|
5天前
|
Cloud Native 安全 持续交付
构建未来:云原生架构在现代企业中的应用与挑战
【5月更文挑战第1天】 随着数字化转型的深入,云原生技术以其灵活性、可扩展性和敏捷性成为现代企业IT架构的核心。本文将探讨云原生架构的关键组件,包括容器化、微服务、持续集成/持续部署(CI/CD)以及DevOps实践,并分析它们如何共同塑造企业的运营模式。同时,文章还将讨论在采纳云原生过程中企业可能遇到的挑战,如安全性问题、技术复杂性以及组织文化的转变,并提出应对策略。
22 8
|
5天前
|
运维 Cloud Native 持续交付
构建未来:云原生技术在企业数字化转型中的应用
【5月更文挑战第1天】 随着企业加速其数字化转型的步伐,云原生技术作为推动创新和灵活性的关键力量,正变得日益重要。本文深入探讨了云原生技术如何为企业提供高度可扩展、灵活且安全的解决方案,以及它如何支持企业在不断变化的市场环境中保持竞争力。通过对容器化、微服务架构、持续集成/持续部署(CI/CD)等核心技术的剖析,揭示了它们如何共同塑造一个更加敏捷和响应迅速的开发环境。文章还讨论了企业在采纳云原生技术过程中面临的挑战,并提出了一系列策略建议,以帮助企业顺利过渡到云原生模式。
|
6天前
|
机器学习/深度学习 Cloud Native Devops
深度学习在图像识别中的应用与挑战构建未来:云原生技术在企业数字化转型中的关键作用
【4月更文挑战第30天】 随着人工智能技术的飞速发展,深度学习已成为推动计算机视觉领域进步的关键力量。尤其在图像识别任务中,深度神经网络通过学习海量数据中的复杂模式,显著提高了识别的准确率和效率。然而,尽管取得了显著成就,深度学习在图像识别应用过程中仍面临一系列挑战,包括模型泛化能力、计算资源消耗以及对抗性攻击等。本文旨在探讨深度学习技术在图像识别领域的应用现状,并分析其面临的主要技术挑战和未来的发展方向。 【4月更文挑战第30天】 随着企业加速迈向数字化时代,传统的IT架构正面临重大挑战。云原生技术以其灵活性、可扩展性和敏捷性,成为推动企业转型的重要力量。本文将探讨云原生技术的基本原理,分
|
6天前
|
监控 Cloud Native 持续交付
构建未来:云原生技术在企业数字化转型中的应用
【4月更文挑战第30天】 随着云计算技术的成熟,云原生(Cloud-Native)架构已成为推动企业数字化转型的关键驱动力。本文将深入探讨云原生技术的核心组件、实施策略以及它们如何促进企业的敏捷性、可扩展性和创新能力。通过案例分析,我们将揭示云原生实践的最佳模式和面临的挑战,为追求技术前沿的企业提供可行的转型蓝图。
|
7天前
|
Cloud Native Devops 持续交付
构建未来应用:云原生架构在现代企业中的实践与挑战
【4月更文挑战第29天】 随着数字化转型的加速,企业正迅速转向云计算以支撑其业务敏捷性和创新。云原生技术,作为推动这一转型的关键因素,正在重新定义软件开发和运维模式。本文将深入探讨云原生架构的核心组件,包括容器化、微服务、持续集成/持续部署(CI/CD)以及DevOps文化,并分析这些技术如何帮助企业实现弹性、可扩展和高效的应用部署。同时,我们将讨论在采纳云原生实践中所面临的挑战,包括安全性、治理和人才缺口等问题。
|
7天前
|
Cloud Native Devops 持续交付
构建未来:云原生架构在现代企业中的应用与挑战
【4月更文挑战第29天】 随着数字化转型的不断深入,企业的IT架构正经历着根本性的变革。云原生技术以其独特的弹性、可扩展性和敏捷性成为这一转型的关键驱动力。本文将探讨云原生架构的核心组件,包括容器化、微服务、持续集成/持续部署(CI/CD)以及DevOps实践,并分析这些技术如何帮助企业实现快速迭代和高效运营。同时,我们也将识别在采纳云原生技术过程中可能遇到的挑战,并提出相应的解决策略。通过实际案例分析,本文旨在为决策者提供实施云原生架构的洞见,以加速其业务创新和市场响应速度。
|
7天前
|
Cloud Native 安全 Devops
构建未来:云原生架构在现代企业中的应用与挑战
【4月更文挑战第29天】 随着数字化转型的不断深入,云原生架构已成为支撑企业敏捷性、可扩展性和创新能力的关键。本文将深入探讨云原生技术的核心组件,包括容器化、微服务、持续集成/持续部署(CI/CD)和DevOps文化,并分析其在不断变化的商业环境中实现快速迭代和资源优化的能力。同时,文章还将讨论企业在采纳云原生架构时面临的挑战,如技术选型、团队技能培养、安全性考虑及成本管理,并提出相应的解决策略。
|
7天前
|
运维 Cloud Native Devops
构建未来应用:云原生架构的演进与实践
【4月更文挑战第29天】在数字化转型的浪潮中,企业亟需灵活、高效的技术支撑来应对市场的快速变化。云原生架构以其独特的设计理念和技术栈,成为推动这一变革的关键力量。本文深入探讨了云原生的核心概念、关键技术和实施策略,旨在为企业提供一个清晰的云原生转型蓝图,助力其构建更加动态、可扩展的应用系统。