《2021 阿里云可观测技术峰会演讲实录合辑(上)》——五、阿里云Serverless可观测实践【上】

本文涉及的产品
Serverless 应用引擎 SAE,800核*时 1600GiB*时
容器镜像服务 ACR,镜像仓库100个 不限时长
云原生网关 MSE Higress,422元/月
简介: 《2021 阿里云可观测技术峰会演讲实录合辑(上)》——五、阿里云Serverless可观测实践【上】

作者:孔德慧

 

Serveless简介

image.png

Serverless是云原生技术发展的高级阶段,从物理机到云主机再到Serverless的发展,就好比人类从采集野果的原始社会,到刀耕火种的古代社会,再到工业设施完善信息化高度发展的现代社会。人总是要想办法填饱肚子,但是随着社会的发展与生产力的进步,人类在如何填饱肚子上花的时间越来越少,而花费更多的时间用来实现社会价值与个人理想。人类依然需要填饱肚子,但不再需要亲自摘果子,无需亲自放羊,甚至无需关心果子从哪儿摘。

 

从物理机到Serverless的发展也是类似的。物理机时期,开发者需要组装服务器,搭建机房,为了承接业务峰值需要提前准备平时几倍流量的服务器资源;而到了云主机时期,开发者无需组装机器也可以获取到计算资源,能够直接基于云主机搭建业务。为了承接峰值流量,只需提前规划并且购买云主机,结束后释放云主机,自由计算资源的利用率得到了进一步的提升,资源成本也有所下降;到了Serverless阶段,开发者不但无需组装服务器,甚至无需提前购买与释放计算资源,只需专心于开发业务逻辑,由Serverless云产品来保障业务稳定可靠地运行,开发者只对使用的计算资源付费,资源成本进一步下降。

 

Serverless时代不是没有服务器,而是业务开发者无需关注服务器,代码仍然运行在真实存在的服务器之上;计算资源的维护从用户转交给了云服务,用户只需要聚焦于业务逻辑代码的开发,按使用量付费。

 

从物理机到Serverless,将开发者从复杂的基础设施维护中解放出来,开发者无需关心底层的基础设施,只需关心业务逻辑的实现,资源利用率更高,资源成本更低,人力成本更低。

image.png

弹性容器实例ECI、Serverless K8s ASK、Serverless应用引擎SAE、函数计算FC分别是容器级别、集群级别、应用级别与函数级别的抽象。

 

ECI属于容器资源层,开发者无需管理底层服务器,只需提供提前打包好的镜像即可运行容器。但是多大的负载、需要多少容器、什么时候扩容、什么时候缩容、流量如何调度等还需上层来解决。

 

ASK属于容器编排层,帮助开发者进行ECI的编排、节点的维护与容量的规划。集群还是用户的,ASK只是帮助用户搭建集群、调度流量。

 

SAE是面向应用的Serverless PaaS平台,计算集群不再属于用户,而是归云产品所有。SAE所有开发者无需维护、管理计算集群,只需部署应用,搭建负载均衡的网关,即可将业务弹性平稳地运行起来。

 

FC是面向函数的FaaS平台,计算资源归云产品所有,即归函数计算所有。开发者不仅无需维护计算集群,也无需搭建负载均衡的网关,函数计算内置了负载均衡的网关与削峰填谷的队列,开发者只需编写业务逻辑代码,由函数计算来保障应用的弹性稳定运行。


函数计算的研发与运维效率最高,抽象程度也最高,用户无需提前购买与配置任何计算资源,一行代码即可在函数计算上将应用跑起来。过程中,只有代码是用户的,其他的全部计算资源都属于函数计算。

image.png

上图左侧是函数计算的简易架构图。首先,用户需要将应用以包或者镜像的格式先上传到函数计算。调用请求过来以后,会分成同步调用与异步调用。

 

同步调用请求会先经过负载均衡的网关到达函数计算系统的网关,调度模块获取计算资源的地址后,找到计算资源对应的函数执行引擎,并在函数执行引擎里执行用户代码。

 

异步调用会先将事件写入消息队列,有专门的异步事件分发模块负责从消息队列里读取事件消息,再从资源调度模块获取计算资源,然后找到计算资源执行用户代码。

 

从架构图中不难发现函数计算架构具有如下特征:

 

第一, 调度黑盒化,执行环境黑盒化。调度节点与执行环境都归云产品,所有的调度节点与执行环境用户都无法感知,这也给用户排查问题带来了一定困难

第二, 实例轻量化。实例以请求级别扩缩容,实例的生命周期更短、更不可控。实例扩容后,若没有请求执行,一段时间后会将实例缩容;此外实例规格小,最小的规格为1/12vCPU

第三, 组件分布化。函数计算典型的事件触发场景中,请求要流转多款云产品,函数计算只是其中一环。

基于以上特征,可以发现函数计算与此前的传统开发模式有着很大的区别。函数计算可观测也面临了诸多挑战:

 

第一, 数据收集难

实例生命周期更短,实例规格更丰富、更小。传统的部署 agent 可观测技术无法施展

函数的执行引擎为多租户共享,执行引擎里可能有多个用户的函数实例,传统的部署 agent 方式也不支持多租户形式。函数的生命周期是由系统控制,用户无法判断开始与结束时间,导致很多可观测数据无法成功发送。

 

第二, 数据分析难。

数据量大,而且会随着用户数的增长而呈指数级的增长。对数据链路的稳定性、数据的查询速度和存储成本都带来了非常大的挑战,也给数据分析带了不少难度。

 

第三, 问题定位难。

分布式的组件使得监控数据散落在各处,问题定位流程繁琐。以事件源触发为例,请求会先通过事件源,然后到函数计算执行用户代码,再由执行引擎里处理消息,并将处理结果存储到用户另外的数据库里。上述流程中,请求经历了好几个云产品。如果用户发现请求端到端延时很长,需要先查看上游是否有问题,再看函数计算调度是否有问题,再看下游数据库连接是否满了,流程异常繁琐

调度黑盒化,执行环境黑盒化。因为执行环境都属于用户,用户无法进行管理,唯有要求云产品侧暴露更多指标,使原本黑盒的链路稍微白盒化

函数调用与资源调度都是以请求为粒度的,实例粒度监控已经不足以帮用户快速定位问题,需要提供更细粒度的排查与定位问题的能力。

image.png

基于以上痛点,开发者对函数计算的可观测提出了更高要求,期望函数计算平台提供功能更全面、上手更简单的可观测能力。我们收集了客户需求,总结出以下三点目标:

 

第一, 提供开箱即用的可观测平台,统一的观测页面。用户无需进行复杂的配置,甚至无需配置,开箱即用

平台端需要无侵入地进行数据采集、上报、处理、展示。

提供丰富的指标、完备的日志、详细的调用链,提供尽可能多的指标让用户充分了解执行环境。

提供更细粒度、以请求为粒度的可观测能力,实现全链路的白盒化。

第二, 兼容传统开发者的开发习惯,提供以实例为问题定位单元的观测体验

第三, 数据开放,协议开源。

将观测数据投递给用户,允许用户进行自定义处理

协议使用开源规范,方便用户统一对数据进行处理。

 

接下篇:

https://developer.aliyun.com/article/1222670?groupCode=alisoftwaretech

 

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
10天前
|
存储 人工智能 运维
正式收官!阿里云函数计算携手优酷,用 AI 重塑影视 IP 创新边界
近日,阿里云联合优酷发起的 Create@影视 IP x AI 应用创新大赛,将网剧《少年白马醉春风》这一热门影视 IP 与阿里云 AI 技术相结合,由阿里云函数计算提供 AIGC 技术支持参赛者基于网剧《少年白马醉春风》IP 或“少年江湖”精神内核,用 AI 生成角色场景设计、手办设计、破次元合照、数字人等多样化的作品。
|
5天前
|
运维 Kubernetes 前端开发
拥抱Knative, 合思加速Serverless化演进实践
合思信息基于阿里云容器服务Knative, 实现Serverless化演进的最佳实践。
拥抱Knative, 合思加速Serverless化演进实践
|
16天前
|
前端开发 小程序 Serverless
异步任务处理系统问题之阿里云函数计算FC的应用场景有哪些
异步任务处理系统问题之阿里云函数计算FC的应用场景有哪些
|
11天前
|
前端开发 大数据 数据库
🔥大数据洪流下的决战:JSF 表格组件如何做到毫秒级响应?揭秘背后的性能魔法!💪
【8月更文挑战第31天】在 Web 应用中,表格组件常用于展示和操作数据,但在大数据量下性能会成瓶颈。本文介绍在 JavaServer Faces(JSF)中优化表格组件的方法,包括数据处理、分页及懒加载等技术。通过后端分页或懒加载按需加载数据,减少不必要的数据加载和优化数据库查询,并利用缓存机制减少数据库访问次数,从而提高表格组件的响应速度和整体性能。掌握这些最佳实践对开发高性能 JSF 应用至关重要。
25 0
|
14天前
|
存储 运维 安全
函数计算产品使用问题之如何获取到访问其他阿里云服务所需的AccessKey、SecretKey或STS Token
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
16天前
|
Kubernetes Serverless 调度
异步任务处理系统问题之在阿里云函数计算平台上用户提交异步任务的问题如何解决
异步任务处理系统问题之在阿里云函数计算平台上用户提交异步任务的问题如何解决
|
17天前
|
机器学习/深度学习 监控 Serverless
Serverless 应用的监控与调试问题之Flink在内部使用的未来规划,以及接下来有什么打算贡献社区的创新技术
Serverless 应用的监控与调试问题之Flink在内部使用的未来规划,以及接下来有什么打算贡献社区的创新技术
|
21天前
|
Serverless 数据安全/隐私保护 开发者
Serverless 架构问题之阿里云函数计算在事件生态层面如何解决
Serverless 架构问题之阿里云函数计算在事件生态层面如何解决
29 0
|
23天前
|
Kubernetes Serverless API
Serverless阿里云函数计算问题之使用示例如何解决
本文探讨了Serverless场景下实例Exec功能的关键特性及其与K8S和Docker的主要区别:实例Exec仅适用于存活实例,且请求不占用并发度,被视为InvokeFunction调用并据此计费。此外,还介绍了阿里云函数计算中实例Exec功能的使用方法,包括通过控制台、API及CLI工具的操作流程,并详细解释了WebSocket连接对计费的影响以及如何在控制台上登录函数实例进行问题排查的具体步骤。
35 0
|
运维 Cloud Native 关系型数据库
活动回顾|阿里云 Serverless 技术实战与创新成都站回放&PPT下载
7月29日“阿里云 Serverless 技术实战与创新”成都站圆满落幕。可免费下载成都站|阿里云 Serverless 沙龙演讲 PPT。

相关产品

  • 函数计算