阿里云容器服务助力万兴科技 AIGC 应用加速

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 阿里云容器服务助力万兴科技 AIGC 应用加速

2023 年堪称是 AIGC 元年,文生图领域诞生了 Stable Diffusion 项目,文生文领域诞生了 GPT 家族。一时间风起云涌,国内外许多企业投身 AIGC 创新浪潮,各大云厂商紧随其后纷纷推出自己的大语言模型。在文生图领域落地的企业更多,国外的如 Midjourney,国内的如 AIGC 软件公司万兴科技等。



万兴科技今年推出了系列创新 AIGC 应用,相关产品发布后吸引了大量终端用户“尝鲜”,急需大量资源满足日益增长的用户需求。万兴科技将业务进一步部署到云上,利用云的弹性能力平衡资源和成本。同时,万兴科技借力阿里云容器服务 ACK 和镜像服务企业版 ACR EE,进一步提升用户体验。Kubernetes 是企业云上管理资源的最佳选择,具有很强的应用编排能力,可靠性及弹性。


AIGC 类应用容器化挑战


AIGC 类应用相比于传统的在线应用有比较明显的特征,镜像大、冷启动时间长。


  • 镜像大

AIGC 应用大多采用 nvidia/cuda 作为基础镜像,并安装 Tensorflow、Pytorch、Transformer 等框架,应用镜像往往有十几 GB。镜像拉取是容器启动必不可少的一环,主要包括下载、解压等步骤,会带来网络带宽开销和磁盘的二次写入。随着镜像大小和节点规模的增加,存储网络下载带宽逐渐成为性能瓶颈,缓慢的镜像拉取速度会严重影响容器部署效率和成功率。

  • 冷启动时间长

应用冷启动时间由两个部分组成,Pod 启动时间及 Pod 启动后应用初始化时间。AIGC 类应用这两个时间都很长。镜像大导致 Pod 的镜像拉取时间长。应用启动后首先需要将模型加载到内存中然后才可以对外提供服务。以 stable diffusion 的 v1-5-pruned.safetensors 模型为例,模型有 7.7GB,从云盘加载到内存中大概需要 25s。AIGC 应用的冷启动时间从几十秒到几十分钟不等,如采用 HPA 扩容策略会存在明显的滞后性,导致业务受损。


为解决上述问题,阿里云推出了容器镜像服务(ACR)加速方案及容器服务 Kubernetes 版(ACK)智能弹性 AHPA 方案。


阿里云容器服务助力万兴科技 AIGC 应用加速


ACR 企业版为 AIGC 应用镜像加速

镜像加速方案分两部分:


镜像缓存

运行 Pod 前首先需要拉取镜像,镜像拉取耗时已经成为容器启动的主要耗时。ACK Serverless 集群里,首次拉取的镜像会自动制作镜像缓存,第二次创建 Pod 时会基于该快照来创建,避免或者减少镜像层的下载,从而提升 Pod 的创建速度。镜像缓存是根据镜像地址严格匹配的,当镜像有更新时需要更新镜像缓存。


详情请参考文档镜像缓存概述[1]


P2P 镜像加速

当大规模容器集群批量下载镜像时,容器镜像存储的网络带宽会成为性能瓶颈,导致镜像拉取缓慢。P2P 加速功能利用您计算节点的带宽资源,进行节点之间镜像分发,减少对容器镜像存储的压力,可以大幅提升镜像拉取速度,减少应用部署时间。


详情请参考文档使用 P2P 加速概述[2]



万兴科技采用的方案将这两个能力结合在一起,将不常变化的基础镜像做镜像缓存,经常更新的镜像层采用 P2P 加速拉取,效果非常明显:一般 20G 的镜像拉取速度从 20min 左右加速到 30s 以内,而且同时扩容的 Pod 数量越多,加速效果越明显。


ACK AHPA 轻松解决弹性滞后问题

在云原生场景下,资源容量通常难以预估,而使用 K8s 原生的 HPA 需要面对弹性滞后以及配置复杂问题。阿里云容器服务与达摩院决策智能时序团队合作推出了 AHPA 弹性预测,可以根据业务历史指标,自动识别弹性周期并对容量进行预测,提前进行弹性规划,解决弹性滞后的问题。


AHPA 会根据历史 Pod 的 Ready Time 以及历史 Metrics 自动学习规律,在业务量上涨之前的一个 Ready Time 开始扩容。当业务量上涨时 Pod 已提前准备,可以及时供给资源。


详细介绍可参考文档 AHPA 概述[3]



万兴科技在使用 AHPA 后,在成本基本没有变化的情况下,极大地缩短了用户端的等待时间,可以从下图看出,接入 AHPA 后基本上没有任务堆积了。



综上,AIGC 类应用与传统应用相比,具有镜像大、冷启动时间长等明显特征。阿里云容器服务推出的镜像缓存、P2P 镜像加速及 ACK AHPA 弹性预测能力可以有效解决这些问题。


镜像缓存可以基于快照创建 Pod,避免或减少镜像层的拉取;P2P 镜像加速技术利用计算节点的内网带宽资源,在节点之间分发镜像,避免从数据源拉取,加速应用部署;AHPA 基于 RobustScaler 算法根据历史 Pod Ready 时间训练模型,提前扩容,减少冷启动时间。


相关链接:

[1] 镜像缓存概述

https://help.aliyun.com/zh/eci/user-guide/overview-of-image-caches-1/

[2] 使用 P2P 加速概述

https://help.aliyun.com/zh/acr/user-guide/use-p2p-acceleration-1?spm=a2c4g.750001.0.i1

[3] AHPA 概述

https://help.aliyun.com/zh/ack/ack-managed-and-ack-dedicated/user-guide/ahpa-overview-1?spm=a2c4g.750001.0.i1


ACK 用户有奖调研

容器服务 Kubernetes 版用户有奖调研诚邀您参与!为了让 ACK 更好地为您服务,现邀请您参与对该产品易用性的反馈,前 50 名反馈有效填答的用户将获得精美咖啡杯,扫描下方海报二维码即可参与~



点击此处,了解阿里云容器服务更多详情。

相关实践学习
通过容器镜像仓库与容器服务快速部署spring-hello应用
本教程主要讲述如何将本地Java代码程序上传并在云端以容器化的构建、传输和运行。
Kubernetes极速入门
Kubernetes(K8S)是Google在2014年发布的一个开源项目,用于自动化容器化应用程序的部署、扩展和管理。Kubernetes通常结合docker容器工作,并且整合多个运行着docker容器的主机集群。 本课程从Kubernetes的简介、功能、架构,集群的概念、工具及部署等各个方面进行了详细的讲解及展示,通过对本课程的学习,可以对Kubernetes有一个较为全面的认识,并初步掌握Kubernetes相关的安装部署及使用技巧。本课程由黑马程序员提供。   相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
7天前
|
人工智能 城市大脑 数据可视化
阿里云“山海计划”:基于UE引擎的“中国特色”城市场景AIGC方案
阿里云数据可视化产品DataV的三维交互团队近期研发了基于虚幻引擎与AIGC的中国城市三维场景的一站式生成服务,本文以建筑生成为切入点,从方法论出发逐步为大家展开一个宏大的、高度智能化的真实世界打造之旅。
|
1天前
|
人工智能 运维 Kubernetes
拥抱智算时代:阿里云容器服务智能、托管、弹性新体验
本文总结了2024云栖大会容器计算专场的演讲内容,重点介绍了阿里云容器服务的新产品体验,包括智能、托管、弹性的特点,以及如何助力客户拥抱智算时代。文中还分享了多项实际案例和技术细节,展示了阿里云容器服务在提升用户体验和解决实际问题方面的努力。
|
1天前
|
运维 Kubernetes Java
阿里云容器计算服务ACS ,更普惠易用、更柔性、更弹性的容器算力
ACS是阿里云容器服务团队推出的一款面向Serverless场景的子产品,基于K8s界面提供符合容器规范的CPU及GPU算力资源。ACS采用Serverless形态,用户无需关注底层节点及集群运维,按需申请使用,秒级按量付费。该服务旨在打造更普惠易用、更柔性、更弹性的新一代容器算力,简化企业上云门槛,加速业务创新。ACS支持多种业务场景,提供通用型、性能型及BestEffort算力质量,帮助客户更从容应对流量变化,降低综合成本。
|
11天前
|
开发框架 安全 开发者
Docker 是一种容器化技术,支持开发者将应用及其依赖打包成容器,在不同平台运行而无需修改。
Docker 是一种容器化技术,支持开发者将应用及其依赖打包成容器,在不同平台运行而无需修改。本文探讨了 Docker 在多平台应用构建与部署中的作用,包括环境一致性、依赖管理、快速构建等优势,以及部署流程和注意事项,展示了 Docker 如何简化开发与部署过程,提高效率和可移植性。
32 4
|
19天前
|
存储 安全 Java
Java多线程编程中的并发容器:深入解析与实战应用####
在本文中,我们将探讨Java多线程编程中的一个核心话题——并发容器。不同于传统单一线程环境下的数据结构,并发容器专为多线程场景设计,确保数据访问的线程安全性和高效性。我们将从基础概念出发,逐步深入到`java.util.concurrent`包下的核心并发容器实现,如`ConcurrentHashMap`、`CopyOnWriteArrayList`以及`BlockingQueue`等,通过实例代码演示其使用方法,并分析它们背后的设计原理与适用场景。无论你是Java并发编程的初学者还是希望深化理解的开发者,本文都将为你提供有价值的见解与实践指导。 --- ####
|
26天前
|
监控 持续交付 Docker
Docker 容器化部署在微服务架构中的应用有哪些?
Docker 容器化部署在微服务架构中的应用有哪些?
|
26天前
|
监控 持续交付 Docker
Docker容器化部署在微服务架构中的应用
Docker容器化部署在微服务架构中的应用
|
28天前
|
运维 开发者 Docker
Docker Compose:简化容器化应用的部署与管理
Docker Compose:简化容器化应用的部署与管理
|
13天前
|
Kubernetes Linux 开发者
深入探索容器化技术——Docker 的实战应用
深入探索容器化技术——Docker 的实战应用
47 0
|
15天前
|
JavaScript Linux 持续交付
深入探索容器化技术——Docker 的实战应用
深入探索容器化技术——Docker 的实战应用
44 0