2023 云原生编程挑战赛火热报名中!导师解析 Serverless 冷启动赛题

news2024/11/18 20:28:50

大赛介绍

第四届云原生编程挑战赛,是由阿里云主办,云原生应用平台、天池联合承办的云原生著名品牌赛事。

自 2015 年开始,大赛已经成功举办了八届,并从 2020 年开始升级为首届云原生编程挑战赛,共吸引了超过 53000 支队伍,覆盖 10 余个国家和地区。

本届大赛将深度探索 Serverless、容器、微服务三大热门领城,为热爱技术的年轻人提供一个挑战云原生技术问题的舞台,希望用技术为全社会创造更大价值。大家赶快参赛吧!

丰厚奖励等你报名

  • 瓜分 ¥360,000 元现金大奖
  • 三大热门赛道任意选择
  • 提交本赛道评测即可获得阿里云定制保温杯一个

大赛活动,精美好礼送不停

【体验有奖】大赛动手体验活动

活动期间(7.17-8.25),参与函数计算动手实验活动并完成任务,即可领取阿里云定制精美鸭舌帽一个!邀请好友参与活动,参加 pk,还有机会获得 iphone 14 pro、大疆无人机等超级大奖!礼品有限,先到先得,快来体验吧!

点击立即参加:https://developer.aliyun.com/adc/series/FC1

【有奖训练营】

邀请赛道 1 明星导师为您深度解析赛题内容和难点,0 基础入门,快速 get 参赛技能。完成打卡任务即可领取官方定制荣誉证书和阿里云定制精美鸭舌帽!

点击立即报名参营:https://developer.aliyun.com/trainingcamp/2fa0d6a98ffb4b71a65b3034cc8ca5d7

可任选 1 个赛道或全部扫码报名:

赛道一:针对 Serverless 场景冷启动问题的弹性优化

赛题背景

随着云计算技术的快速发展,Serverless 计算作为一种新的计算范式,正在逐步取代传统的 Serverful 计算模式。Gartner、Forrester 等研究报告显示,越来越多的开发者正在转向 Serverless 计算,这种趋势预示着它可能成为未来云计算的主流范式。Serverless 计算作为一种全新的系统架构,为应用程序开发提供了更为高效和低成本的解决方案。其三大核心优势,即弹性伸缩、按需付费以及聚焦业务降低 OPS,使其在云计算领域获得了广泛的认可。开发者可以通过 Serverless 从繁琐的资源管理和性能优化中解脱出来,就像数十年前汇编语言演变到高级语言的过程一样,让工程师的生产力再次发生变革。

与此同时,得益于硬件技术的飞速进步和算法的不断优化,大模型的人工智能技术已经在各行各业得到了广泛应用。大模型 AI 能处理和分析大规模复杂的数据,从而显著提升工作效率和决策能力。例如,AI 生成内容(AIGC)已经能够自动生成新闻报道、科技资讯等各类文章,甚至创作音乐和绘画作品,预示着 AIGC 将成为数字内容创作的重要手段。

在这样的背景下,云原生技术在面向 AI 场景的生产级解决方案中扮演着越来越重要的角色。然而,对于 AI 应用,其请求和后端资源调度的需求远高于传统的微服务应用。这种差异主要源于AI应用对资源的消耗特别大。例如,一块 A10 GPU 卡启动的 Stable Diffusion 服务一次只能处理个位数的文本绘图请求。一旦请求过多,服务就可能出现超时情况。并且,AI 应用通常有大镜像,启动时间较长。这些都对精准的资源调度和实例匹配提出了挑战。因此,尽可能地复用应用实例变得非常重要,否则频繁地创建新实例将极容易引发请求超时的问题。

下面分别对 Kubernetes 中 Pod 的启动过程和 FaaS 的函数冷启动过程进行解构,可以看看里面涉及到的具体过程:

  • Kubernetes 中 Pod 启动过程拆解

在这里插入图片描述

Kubernetes Pod 冷启动过程

  • FaaS 函数的启动过程

在这里插入图片描述

FC 函数冷启动过程

已有的 Serverless 产品解决方案,如阿里云的 ASK(Serverless Kubernetes) [ 1] 和函数计算 FC **[ 2] **,都支持资源的按需调度和使用,可以根据应用实际需要资源自动伸缩。然而,在伸缩过程中,资源分配会带来冷启动问题,这意味着应用实例的启动和初始化时间可能会长达几分钟。因此,Serverless 框架会预热应用实例,并在调用结束后保留部分实例以降低冷启动的几率。然而,维持更多的空闲实例会增加资源成本。因此,如何在资源成本和请求延迟之间取得平衡,是 Serverless 技术在未来发展中需要继续探索和解决的问题。在 AI 场景下资源成本与请求延迟 RT 的平衡这个诉求更加的明显,因此我们需要一个 AI 场景的 Serverless 弹性链路优化的技术创新。

题目解析

Serverless 计算服务为用户提供了一种无需管理服务器或其他基础设施的计算方式,使得用户可以更专注于业务代码的开发。在 Serverless 框架中,计算资源的准备以及用户代码的弹性、可靠运行都由框架负责。用户无需预先配置服务器资源,只需按需付费,避免了因闲置资源产生的额外费用。实现这种模式的背后,依赖于一套调度策略、容量预估和冷启动优化技术,这套技术能够有效地降低应用的响应时间,同时尽可能地减少资源使用。因此,要达到这样的效果,我们需要在调度、容量规划和冷启动加速这三个方面进行深入的研究和优化。

在 Serverless 架构中,通常需要一个网关来接收并转发流量,将请求转发到后端实例。同时,还需要一个 Scaler 模块来控制后端实例的数量,以便尽可能地使实例数与请求资源的需求相匹配。因此,Scaler 模块可以说是 Serverless 架构的核心组件,这个模块的智能程度将直接决定 Serverless 平台的成本控制水平。例如,Kubernetes 社区的 HPA [ 3] 和阿里云容器服务的 AHPA [ 4] 都是典型的 Scaler 模块的实现方案。

在这里插入图片描述

AI 场景下的流量和应用实例的调度匹配

本赛题的主要任务是要求选手实现一个 Scaler 模块的功能。在实际生产环境中,一个 Scaler 模块需要解决许多工程问题以实现弹性伸缩的功能,但是这些具体的工程问题往往与实际的运行环境和技术栈有关。因此,本赛题通过仿真框架屏蔽了因环境而异的复杂工程细节,让选手可以专注于 Scaler 模块的核心逻辑。

如下图所示,选手主要目标是实现 Scaler 模块的功能。在本赛题的设计中,Scaler 模块会需要提供两个接口的服务,并且仿真框架也会提供三个接口供 Scaler 调用。

在这里插入图片描述

选手需要实现一个遵循 gRPC 协议的 Scaler,Scaler 是一个 grpc 的服务, 需要实现对外的两个接口,包括实例申请接口 Assgin 和 实例释放接口 Release。 选手基于 Scaler [ 5] 进行二次开发,并将开发完成的 Scaler 镜像上传到 ACR(阿里云容器镜像服务) 。镜像部署至 ASK(阿里云无服务器 Kubernetes 容器服务 [ 6] )做仿真验证。数据集内容是一条一条的请求描述,请求描述中包含目标 slot 的规格、以及请求执行时间等信息。验证框架会自动调用选手 Assign/Release 来为请求分配资源,执行结束后返回测试结果。当然,Scaler 是一个需要细化完善的 grpc 的服务, 除了对外提供的 Assgin 和 Release 接口, 自身也需要有其他一些服务功能,比如定时逻辑实现对应用实例生命周期管理等。

解题思路

在请求到来时,Assign 过程中没有可用的实例时,会产生冷启动时延。这种时延主要由创建实例的时间和初始化应用的时间构成。如果提前创建了实例,甚至提前初始化了应用,就能减少本次冷启动的延迟。

在 Assign 流程的过程中,如果正在等待创建 Slot(CreateSlot)或初始化实例(Init)时,出现了新的空闲实例,那么可以立即使用这个新的空闲实例,而不需要等待冷启动的完成,从而减少 Assign 的延迟。

在 Idle 过程中,如果保留实例而不释放,那么在下一次调用时可以重用这个实例,但是这会增加实例的使用时间。

你可以设计一个合理的算法,使得性能和成本达到更好的平衡,比如根据不同的请求执行时间和频率,实例的释放时机可能会有所不同。

  • 当同类型请求密集时:可以保留实例,不立即释放,降低冷启动的时延。
  • 当同类型请求稀疏时:可以立即释放实例,避免实例长时间闲置带来的资源浪费。

但是,在合适的情况下采取合适的策略往往需要选手对请求的分布状况有所判断。选手可以通过规则性的编程来实现这一目标,当然也可以通过设计自己的机器学习算法来识别数据集的周期性,进而依据预测结果来采取不同的措施。需要强调的是,并不是所有的数据集都具有明显的周期性,选手的算法需要具备较强的普适性。

总结

Serverless 正像一股新生力量,引领云计算的发展方向。它为我们带来了新的思维方式和工作方式,让我们可以更快、更好地创新和交付我们的产品和服务。因此,理解并掌握 Serverless 技术,无疑是我们每一个云原生技术从业者和爱好者应该具备的能力。在本次挑战赛中,我们期待你能够发挥出你的创新精神和技术才能,来解决我们为你准备的挑战。期待各位选手都取得自己满意的成绩!

相关链接:

[1] ASK(Serverless Kubernetes)

https://help.aliyun.com/zh/ack/serverless-kubernetes/product-overview/ask-overview

[2] 函数计算 FC

https://www.aliyun.com/product/fc

[3] HPA

https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/

[4] AHPA

https://help.aliyun.com/zh/ack/ack-managed-and-ack-dedicated/user-guide/ahpa-overview-1

[5] Scaler

https://github.com/AliyunContainerService/scaler

[6] 无服务器 Kubernetes 容器服务

https://help.aliyun.com/zh/ack/serverless-kubernetes/product-overview/ask-overview

点击此处,立即报名!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/813654.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python爬虫基本功(三)--爬虫所需网络协议知识超详细总结(下)

前言 大家好,这里是Kaiser👏。本文内容是衔接 👉python爬虫基本功(二)—爬虫所需网络协议知识超详细总结(上)👈 一文,为达更好的阅读效果,以及防止知识点出现“断层”,使…

Java方法的使用(重点:形参和实参的关系、方法重载、递归)

目录 一、Java方法 * 有返回类型,在方法体里就一定要返回相应类型的数据。没有返回类型(void),就不要返回!! * 方法没有声明一说。与C语言不同(C语言是自顶向下读取代码)&#…

数电基础知识学习笔记

文章目录: 一:逻辑门 1.逻辑门电路的分类 1.1 按逻辑(逻辑门) 1.1.1 逻辑定义 1.1.2 常见数字电路相关符号 1.1.3 电路图表示 1.1.4 逻辑门电路图像符号 1.2 按电路结构 1.3 按功能特点 2.高低电平的含义 3.常见的门…

给定长度值length,把列表切分成每段长度为length的N段列表,Kotlin

给定长度值length&#xff0c;把列表切分成每段长度为length的N段列表&#xff0c;Kotlin import kotlin.random.Randomfun main(args: Array<String>) {var source mutableListOf<String>()val end Random.nextInt(30) 1for (i in 0 until end) {source.add(i.…

[SV] 文件操作

Verilog 提供了很多对文件进行操作的系统任务。经常使用的系统任务主要包括&#xff1a; 文件开、闭&#xff1a;​$fopen​, ​$fclose​, ​$ferror​文件写入&#xff1a;​$fdisplay​, ​$fwrite​, ​$fstrobe​, ​$fmonitor​字符串写入&#xff1a;​$sformat​, ​$…

python结合tesseract-ocr识别汉字的训练库过程

一、安装python 例如&#xff0c;安装路径为&#xff1a;C:\rtkapp\python-3.8.0 二、安装opencv 三、安装tesseract-ocr 安装完成后&#xff0c;在系统环境变量path中&#xff0c;添加安装路径C:\rtkapp\Tesseract-OCR 四、打开python安装pytesseract 五、安装java运行环境…

TenserRT(四)在 PYTORCH 中支持更多 ONNX 算子

第四章&#xff1a;在 PyTorch 中支持更多 ONNX 算子 — mmdeploy 0.12.0 文档 PyTorch扩充。 PyTorch转换成ONNX&#xff1a; PyTorch有实现。PyTorch可以转化成一个或者多个ONNX算子。ONNX有相应算子。 如果即没有PyTorch实现&#xff0c;且缺少PyTorch与ONNX的映射关系&…

太猛了,靠“吹牛”过顺丰一面,月薪30K

说在前面 在40岁老架构师尼恩的&#xff08;50&#xff09;读者社群中&#xff0c;经常有小伙伴&#xff0c;需要面试美团、京东、阿里、 百度、头条等大厂。 下面是一个5年小伙伴成功拿到通过了顺丰面试&#xff0c;拿到offer&#xff0c;月薪30K。 现在把面试真题和参考答…

一起学算法(插入排序篇)

概念&#xff1a; 插入排序&#xff08;inertion Sort&#xff09;一般也被称为直接插入排序&#xff0c;是一种简单的直观的排序算法 工作原理&#xff1a;将待排列元素划分为&#xff08;已排序&#xff09;和&#xff08;未排序&#xff09;两部分&#xff0c;每次从&…

Python毕业设计可用小游戏:5个热门类型,引爆学生热情!每个类型附单独案例!

游戏大全 前言1.格斗技能类小游戏2.益智塔防类小游戏3.MMO类型游戏4.养成类游戏5.经济类游戏 总结 前言 大家好&#xff0c;我是辣条哥 在当今数字化时代&#xff0c;编程已经成为一项不可或缺的技能。而Python作为一门简洁易学的编程语言&#xff0c;正受到越来越多学生的青睐…

03_使用execle表生成甘特图

背景 每次排期都需要话很多时间 很可能排期还不对头 这时候需要一个表能看到 1.什么时候项目结束 开始 转阶段 2.当前手上的活能不能做完 当前阶段手上有多少活 3.产品经理每次修改完计划迅速排期 甘特图生成 execle表生成 1.需要使用亿图创建甘特图 2.把当前的甘特图数据进…

使用Excel建立贷款损失计算器

前几天上了一门Excel课程&#xff0c;掌握了一些新的小技能&#xff0c;比如模拟运算表和控件以及动态图表的使用&#xff0c;结合工作内容进行了下实操练习。 一、控件和动态图表的使用 以贷款产品的损益测算为例&#xff0c;计算在不同资金成本、获客成本、提前还款损失以及风…

SpringBoot2.5.6整合Elasticsearch7.12.1

SpringBoot2.5.6整合Elasticsearch7.12.1 下面将通过SpringBoot整合Elasticseach&#xff0c;SpringBoot的版本是2.5.6&#xff0c;Elasticsearch的版本是7.12.1。 SpringBoot整合Elasticsearch主要有三种方式&#xff0c;一种是通过elasticsearch-rest-high-level-client&am…

c++里的基础类 is_empty_v<_Ty1>

&#xff08;1&#xff09;为什么要研究这个问题&#xff0c;因为包括智能指针等很多源代码里都会使用 _Compressed_pair 这个类&#xff0c;其是一对值。研究这个类&#xff0c;就牵涉另一个更基础的类 is_empty_v<_Ty1> &#xff08;2&#xff09; is_empty_v<_Ty1&…

内部类(下)匿名内部类,静态内部类的使用

文章目录 前言一、匿名内部类二、静态内部类三、内部类的继承总结 前言 该文将会介绍匿名内部类、静态内部类的使用&#xff0c;补充完毕java中的内部类。补充内容为向上转型为接口、使用this关键字获取引用、内部类的继承。 一、匿名内部类 定义&#xff1a;没有名称的内部类。…

redis 淘汰策略和持久化

文章目录 一、淘汰策略1.1 背景1.2 淘汰策略 二、持久化2.1 AOF日志2.1.1 AOF配置2.1.2 AOF策略2.1.3 AOF缺点2.1.4 AOF Rewrite2.1.5 AOF Rewrite配置2.1.6 AOF Rewrite缺点2.1.7 fork进程时的写时复制2.1.8 大key对持久化的影响 2.2 RDB快照2.2.1 RDB配置2.2.2 RDB缺点 2.3 混…

二分查找算法(全网最详细代码演示)

二分查找也称 半查找&#xff08;Binary Search&#xff09;&#xff0c;它时一种效率较高的查找方法。但是&#xff0c;折半查找要求线性表必须采用顺序存储结构&#xff0c;而且表中元素按关键字 有序 排列。 注意&#xff1a;使用二分查找的前提是 该数组是有序的。 在实际开…

web前端常用调试工具

概述 当我们写 webapp 或者 移动端H5网页时&#xff0c;要在手机上调试并不容易。 alert&#xff1a;很早之前的调试办法&#xff08;已被抛弃&#xff09; vconsole&#xff1a;是2016年由微信公众平台前端团队推出&#xff08;目前大量使用&#xff09; eruda&#xff1a…

解读随机森林的决策树:揭示模型背后的奥秘

一、引言 随机森林[1]是一种强大的机器学习算法&#xff0c;在许多领域都取得了显著的成功。它由多个决策树组成&#xff0c;而决策树则是构建随机森林的基本组件之一。通过深入解析决策树&#xff0c;我们可以更好地理解随机森林模型的工作原理和内在机制。 决策树是一种树状结…

虚拟现实技术(VR)

目录 1.什么是虚拟现实技术 2.虚拟现实技术的由来 3.虚拟现实技术给人类带来的好处 4.虚拟现实技术未来的走向 1.什么是虚拟现实技术 虚拟现实技术&#xff08;Virtual Reality&#xff0c;简称VR&#xff09;是一种通过计算机生成的模拟环境&#xff0c;使用户能够身临其境…