近日,阿里云技术专家徐若晨在全球分布式云大会上,分享了《边缘容器云助力AI推理高效落地》的主题演讲,分享了阿里云边缘容器云如何助力开发者实现更快速的AI推理应用的迭代和部署。此外,他还分享了边缘AI推理应用在实际业务中的应用案例。
客户在边缘部署时面对的挑战包括:首先,构建自有边缘机房的时间周期长,资本成本高,且常常需要处理设备的迁移与淘汰,这使得相对于传统数据中心,边缘机房的服务水平协议(SLA)表现较为逊色。其次,由于边缘环境受到物理条件的限制,单个集群的规模往往较小,最多包含几十到几百台服务器,导致业务的扩展性不够强。尽管如此,由于需要部署较多这样的小规模集群,并且它们通常具有明显的地域特性,因此这大大增加了集群维护的成本和复杂度。
边缘云给客户带来的价值有这些:首先是提升了交付效率,做到秒级算力交付;其次是降低了成本,可以按量付费,弹性扩容;另外可运维性也有较大的提升。其实本质上来说,这几方面,都是上云带来的价值。那么边缘云由于其广覆盖,低延迟的特点,可以使终端用户获得时延更低的算力资源,从而提升终端用户的体验。一方面,通过终端计算的上移,去获得更多的算力,提升业务的灵活性。另一方面通过云端算力的下沉,来降低成本、缩短时延、提升用户体验。
对比中心Region来看,边缘云实际是一个云端算力下沉的过程。将更多的服务放在边缘上运行。分布式部署,来应对高并发场景,卸载中心服务器的负荷。流量在边缘云这一层进行收敛,可以有效的降低中心Region的带宽,从而降低成本。边缘云本身的特点是离用户更近,时延更低,更加适合一些交互性更强的业务。
对比终端程序来看,边缘云实际是一个终端算力上移的过程。将更多的终端服务跑在边缘上,实现终端瘦身。在这个过程中,开发者可以获得更加标准化的运维方式,做到云边一致的体验,使得应用程序可以更高速的迭代,减少终端发版。边缘上丰富的生态及常用的中间件,可以使应用程序的实现更加灵活。
此外还可以提供专属的ARM阵列、 GPU硬件等异构资源,使得应用程序的性能可以进一步提升。例如当前所说的AI推理等应用,它就需要GPU硬件资源,跑在终端上的可能就比较小。
从下往上看,最下面这一层是资源建设和运维的平台,主要作用是将各种物理资源通过统一的模型纳管到系统中来,通过这一层去向上提供统一的界面。另外一些基础资源的运维也是在这里。
往上是异构资源纳管,简单来说就是要将各种资源接入k8s集群中去,无论是ARM阵列,带有GPU的服务器等,在K8s中都体现为一个Node。
由于前面提到的边缘资源的规模很大,在一个K8s集群中无法容纳,所以再往上是集群的管理和融合调度,它对上提供的是一个标准化的k8s界面。使用户可以通过一个K8s集群,将应用部署到所有的边缘节点中,而不需要考虑太多分布式的逻辑,是保持云边一致体验的重要组成部分。
再往上是边缘特性的增强,边缘就要有边缘的特点,突出边缘的优势。结合边缘云的特性,我们做了域名服务导出,边缘数据集分发,镜像加速,工作负载增强,以及超大规模的服务网格,让用户可以更方便的使用边缘的能力。
这些能力可以以K8s的形式使用,也可以通过我们应用管理功能来整合使用,用户可以自主选择。一般来说,如果用户有自建的发布管控系统,可能对接我们的k8s界面比较多。如果用户更多的注重于应用开发,暂无精力投入建设自己的发布管控系统,直接用我们的应用中心的能力也是可以的。
最上面是能力开放层,本质是期望用户、开发者,能基于下层提供的能力,通过适合自己的方法,把业务跑起来。助力AI推理应用的高效开发、部署,发挥边缘计算的价值,就会重点用到上面介绍的这几层能力。
通常一个AI推理应用,它是需要一个模型文件的,这个模型文件有不同大小,需要在推理应用的进程中读取模型。可以说,模型文件是AI推理应用必不可少的部分。针对这一特点,我们设计了边缘数据集分发功能。提前传到我们的边缘协同存储EOS或者是中心对象存储OSS上的模型,可以通过简单的来源配置,制作成我们定义的边缘数据集。它可以随你的容器分发到不同的边缘节点,依托阿里云边缘云团队长期技术积累和资源优势,让数据集可以做到高效、安全、迅速的分发。通过边缘数据集分发能力,AI推理应用的开发者,可以便捷的在自己的程序中读取、使用模型和数据,更加专注于应用的开发,提升效率。
通过前面提到的多集群管理、融合调度、异构资源管理,我们为用户提供多租的虚拟K8s集群。在租户K8s这个层面上,他是多租并且是硬隔离的,不会因为其他用户的异常操作而影响到你。一般为了管理不同地域的资源,通常需要使用多个K8s集群,但是在我们这个架构下,开发者只需要关注一个租户集群,把自己的Pod创建在自己的租户集群中,我们的融合调度和多集群同步功能就会将Pod同步分发到众多的边缘节点。开发者不需要投入过多的精力去关注多集群管理,集群规划等细节,这些我们替他搞定。
此外,我们还支持用户定义的资源使用策略,不管是关注时延,还是关注成本,都可以自己定义。通过全域算力覆盖的能力,我们希望能让开发者体验到云边体验的一致,可以更聚焦于自己的应用业务逻辑。
部署的过程中,会涉及到镜像使用,接下来介绍边缘镜像加速能力首先我们的边缘镜像仓库和应用中心的账号体系是打通的,也就是说在应用中指定了边缘镜像地址之后,无需单独维护用户名密码的配置,我们会自动在应用中注入,开发者以外的人看到的还是一个私有镜像仓库,开发者感受到的是一个免密拉取的仓库。
其次依托边缘云在文件分发场景的长期积累和沉淀,我们构建了镜像快速分发到边缘的能力,以及镜像的主动预热能力,以支撑超大流量规模的并发,为扩容提速。
此外,我们的镜像仓库还支持与各类DevOps流水线集成,优化开发者使用体验。还是那句话,我们期望开发者把应用部署到边缘,去获取云边端架构带来的收益,同时减少因为应用部署位置差异带来的负担。
应用部署完成之后,接下来需要考虑应用如何提供给终端用户访间,基于这样的诉求,我来介绍一下我们的域名服务导出能力。
用户部署完应用之后,他需要创建一个4/7层负载均衡,以对外提供服务,然后要拿着这个负载均衡的公网地址,去自己的DNS服务上加一条配置。然后还需要描述下哪些区域的终端用户去访问哪些服务器地址。如果一个地区有多个节点或者服务,还得想办法描述这个IP的能力权重,比如有的ip后面服务能力强,有的IP后面服务能力不强。这些操作对 CDN的专家来说,那是轻车熟路。但是这对于一个AI推理应用的开发者来说,就稍微有点门槛,要关心的东西太多了。
而现在,直接使用我们现在的域名服务导出能力,只要把域名权威托管或者CNAME解析过来,我们就可以联动部署去给你自动做就近解析。因为你是通过边缘容器云部署的,IP有哪些,我们可以直接给你添加到边缘云的解析服务中;ip的运营商属性是什么,我们可以直接给你添加到边缘云的解析服务中;IP的能力是多少,能跑多少QPS,我们可以基于后面的副本数转换,权重信息可以给到边缘云的解析服务中;服务的能力跑高了,负载均衡的监控数据我们也对接到边缘云的解析服务中,他可以自动做切量和水位控制。
不需要关注过多细节,只需要很简单的几步,你就可以具备一个全网覆盖的,可以就近访问的AI推理应用。开发者关心的东西少了,创新的热情才会进一步进发,促进AI生态的繁荣。
应用跑起来了,运行过程中,开发者会需要关注考虑自身业务的观测数据,比如业务的QOS的统计,任务的处理数量等,所以这里我也介绍一下我们可观测和弹性伸缩能力。
对接开源的标准,我们支持Prometheus格式的metrics采集,并且支持自定义给你投递到对应的服务器上。比如你可以阿里云控制台开一个Prometheus实例,然后把地址配置到我们这,我们就可以给你把数据投递过去,当然开发者自建的Prometheus服务地址也是可以的,这个没有限制。然后可以在我们这定义一些弹性伸缩的规则,比如最少多少个副本,最多多少个副本,什么指标到达什么水位的时候扩容,什么指标低至什么水位的时候缩容,可以是你自定义的指标采集,也可以是我们内置的基础指标例如CPU、内存、GPU利用率等。
开发者通过我们的边缘应用管理,可以便捷的使用到这些能力。上面提到的边缘数据集分发、全域算力覆盖、边缘镜像加速、服务域名导出、可观测和弹性伸缩,构成了边缘容器云支撑AI推理应用高效落地的一个最佳实践,可以极大的降低了AI推理应用在边缘落地的门槛。
让我们来看一个实际运行在我们边缘容器云平台上的业务案例。这是一个手机应用内机器人,它允许用户通过多轮的对话交互来在边缘执行推理任务,最终生成操作意图。这个意图随后被上传到中心服务器,以执行全局业务查询逻辑,紧接着操作将被下发至用户终端执行具体任务,如帮助用户完成特定动作,并将结果展现给用户。在这个业务案例的实施过程中,我们关键地利用了先前提及的域名服务导出的就近服务功能、边缘数据集分发、以及边缘镜像加速等核心能力。
我们的目的是简化 AI 推理应用在边缘的部署过程,以促进边缘计算与 AI 技术生态系统的共同繁荣。我们提供的解决方案能够让开发者能够迅速而轻松地上线他们的应用。想象一下,不久的将来,仅需一声指令,开发者助手机器人便可帮你将应用顺利部署至边缘容器云平台。