【音频】Serverless应用开发常见思路|学习笔记

本文涉及的产品
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
函数计算FC,每月15万CU 3个月
简介: 快速学习【音频】Serverless应用开发常见思路。

开发者学堂课程【Serverless 技术进阶:【音频】Serverless应用开发常见思路】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/995/detail/15066


【音频】Serverless应用开发常见思路


内容介绍:

一、可观测性

二、如何对应用进行调试


一、可观测性

Serverless应用的可观测性是被很多用户所关注的。可观测性是通过外部表现判断系统内部状态的衡量方式,在应用开发中,可观测性帮助判断系统内部的健康状况。在系统出现问题时,帮助定位问题、排查问题以及分析问题;在系统平稳运行时,帮助评估风险,预测可能出现的问题。

在Serverless应用开发中,如果观察到函数的并发度持续升高,很可能是业务推广团队的努力工作导致业务规模迅速扩张,为了避免达到并发度限制触发流控,开发者就需要提前提升并发度。以阿里云函数计算为例,阿里云函数计算在可观测性层面提供了多种纬度,包括Logging、Metrics以及Tracing等内容。

在控制台监控中心,可以查看到整体的Metrics,服务级Metrics以及每个函数的Metrics。除此之外,还可以看到当前函数的请求记录。

根据不同的请求记录,可以查看到函数的详细信息;

除了在控制台的监控中心处可以查看到函数的日志等信息,在函数详情页面,也可以看到函数的详细日志信息以及Tracing相关信息。

当然,通过Serverless Devs开发者工具,以及函数计算组件也可以进行观测相关操作。

1、通过工具进行Metrics查看

• 有资源描述文件时,可以直接执行s metrics查看函数的指标信息;

• 在没有资源描述Yaml文件时(纯命令行形式),需要指定服务所在地区以及服务名称,函数名等。

此时通过浏览器打开地址,可以看到函数指标信息,需要开启请求级别指标,才能查看函数指标信息,否则图表不展示数据。

开通请求级别指标的方式请同学们在本课程自行查看(文本第4页)。

2、通过工具进行Logs查看

• 有资源描述文件(Yam1)时,可以直接执行s logs进行线上函数的日志查询;

• 在没有资源描述Yaml文件时,需要指定服务所在地区以及服务名称,函数名等。

如果需要以tail模式进行日志的查询,可以增加--tail参数,例如s logs --tail;

查询指定时间段的日志,可以通过增加--start-time和--end-time参数实现。


二、如何对应用进行调试

在应用开发过程中,或者应用开发完成,当所执行结果不符合预期时,通常要进行一定的调试工作。但是在Serverless加架构下,调试往往会受到极大的环境因素限制,通常会出现的情况是,所开发的应用在本地是可以比较健康的、符合预期的运行,但是在 FaaS平台上,则会出现一些不可预测的问题;或者是在一些特殊的环境下,本地没有办法模拟线上环境,难以进行项目的开发和调试。

Serverless应用的调试,一直都是备受诟病的,但是各个云厂商并没有因此放弃在调试方向的不断深入探索。以阿里云函数计算为例,其提供了在线调试、本地调试等多种调试方案。

1、在线调试

简单调试

所谓的简单地调试,就是在控制台来进行调试,以阿里云函数计算为例,可以在控制台通过执行按钮,进行基本的调试,必要的时候,也可以通过设置Event来模拟一些事件。

在线进行调试的好处是,可以使用线上的一些环境进行代码的测试。否则当线上环境拥有VPC等资源时,在本地环境是很难进行调试,例如数据库需要通过VPC来进行访问时,或者有对象存储触发器的业务逻辑等。

2、端云联调

所谓的端云联调指的是在本地进行Serverless应用开发时,往往会涉及到一些线上资源,例如通过对象存储触发器触发函数执行,通过VPC访问数据库等,此时由于线上线下环境的不一致性,会让线下的开发、调试面临极大的挑战。Serverless Devs团队通过搭建Proxy辅助函数的方法,将线上线下资源打通,可以快速帮助开发者在本地进行函数的开发与调试。

ServerlessDevs开发者工具会根据开发者的函数的yaml文件配置,创建辅助服务和辅助函数,这个辅助服务和函数的配置跟您的服务和函数是相同的,并通过辅助服务和辅助函数实现线上线下的网络环境打通,以及完整的端云联调能力:

• 调用这个辅助函数,流量会打回到本地的调试实例,这个时候本地实例接受到event和 context是真实来自线上的;

• 本地调试的实例运行函数逻辑,能直接利用辅助函数运行的那个容器,可以直接访问vpc内网以及一些云服务的内网地址;

• 具体的使用流程是:执行s proxied setup来准备端云联调所需的辅助资源以及本地环境;

• 对于无触发器的普通事件函数或者http触发器函数,准备工作完成后,启动另一个新的终端,切换到该项目路径下,执行s proxied invoke来调用本地函数;

• 完成调试任务之后,可以执行s proxied cleanup清理端云联调所需的辅助资源以及本地环境。

除了通过命令行使用端云联调能力,也可以在VSCode等开发者工具中使用。

最佳实践案例:

三步完成端云联调,端云联调可以通过三个非常简单的步骤快速实现:  

步骤1:在已有的项目下,创建端云联调的辅助资源,开启端云联调模式:sproxiedsetup;

步骤2:在完成端云联调模式开启动作之后,通过sproxiedinvoke或者线上的事件进行函数的触发,调试;

步骤3:完成端云联调之后,可以执行sproxiedclean命令,对因端云联调而产生的辅助资源进行清理;

断点调试:通过与常见的IDE进行结合,可以在常见的IDE上实现端云联调的断点调试。

vSCode断点调试案例

步骤1:在已有的项目下,开启调试模式的端云联调能力,命令执行完成功后,本地的函数计算执行环境会阻塞等待调用(执行环境本质是一个HTTPServer);此时若要进行断点调试,需要进行以下的操作:在VSCode上进行相关的配置:ServerlessDevs开发者工具自动在工程目录下面生成.vscode/launch.json文件。

步骤2:打开一个新的终端,通过proxiedinvoke进行触发,例如sproxiedinvoke,如果是事件函数也可以通过线上触发器进行触发,此时要注意将触发器临时指向辅助函数,详情参考proxiedinvoke命令操作过程,回到VSCode界面,既可以进行断点调试了。

调试完成后返回结果,若要在调用的时候制定传入的event参数,可以使用--event,例如sproxiedinvoke-h

步骤3:完成端云联调之后,通过s proxied clean命令,对因端云联调而产生的辅助资源进行清理。

关于Intelli断点调试案例

步骤1:例如需要在IDEA下进行调试,可以在已有的项目下,开启调试模式的端云联调能力,命令执行完成功后,本地的函数计算执行环境会阻塞等待调用(执行环境本质是一个HTTPServer);此时若要进行断点调试,需要进行以下的操作在IDEA上进行相关的配置:

首先,点开Edit Configurations,新建一个Remote Debugging,自定义调试器名称,并将端口配置为3000。上述配置完成后,在IDEA编辑器侧边栏为函数代码增加断点,点击"开始调试"按钮。

步骤2:打开一个新的终端,通过 proxied invoke进行触发,回到IDEA界面,既可以进行断点调试了。调试完成后返回结果,若要在调用的时候制定传入的event 参数,可以使用--event,例如s proxiedinvoke-h

步骤3:完成端云联调之后,通过sproxiedclean命令,对对因端云联调而产生的辅助资源进行清理。

3、本地调试

命令行工具

就目前来看,大部分FaaS平台都会为用户提供相对完备的命令行工具,包括AWS的 SAMCLI,阿里云的 Funcraft ,同时也有一些开源项目例如ServerlessFramework、ServerlessDevs等对多云厂商的支持等。通过命令行工具进行代码调试的方法很简单,以ServerlessDevs为例,本地调试阿里云函数计算:首先确保,本地拥有一个函数计算的项目,然后在项目下执行调试指令,建议查看本节课文字稿(文本第13页)。

编辑器插件

以VScode插件为例,当下载好阿里云函数计算的VSCode插件,并且配置好账号信息之后,可以在本地新建函数,并且在进行打点,之后可以进行断点调试,当函数调试完成之后,可以进行部署等操作。

4、其他调试方案

包括Web框架的本地调试、模拟事件调试,以上调试请同学们查看本节课文字稿(文本14-17页)。

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
8天前
|
人工智能 运维 Serverless
云端问道8期方案教学-基于Serverless计算快速构建AI应用开发
本文介绍了基于Serverless计算快速构建AI应用开发的技术和实践。内容涵盖四个方面:1) Serverless技术价值,包括其发展趋势和优势;2) Serverless函数计算与AI的结合,探讨AIGC应用场景及企业面临的挑战;3) Serverless函数计算AIGC应用方案,提供一键部署、模型托管等功能;4) 业务初期如何低门槛使用,介绍新用户免费额度和优惠活动。通过这些内容,帮助企业和开发者更高效地利用Serverless架构进行AI应用开发。
|
29天前
|
人工智能 运维 Devops
CAP:Serverless + AI 让应用开发更简单
对于众多开发者而言,Serverless 架构的核心优势在于其能够无缝集成多种云产品与组件,从而使得开发者可以更加专注于核心业务逻辑和创新。此外,Serverless 架构还提供了按量付费的灵活计费模式,进一步降低了资源成本。使用云应用开发平台 CAP,在 AI 领域,企业就可以专注于模型训练、算法优化等关键任务,让 AI 应用的开发、部署以及全生命周期的管理更加简单。可以预见 Serverless 技术将催生一系列创新且有趣的应用,而这些应用将不断拓展 AI 技术的边界。
|
4月前
|
人工智能 运维 Serverless
Serverless + AI 让应用开发更简单,加速应用智能化
2024 云栖大会开幕,在大会第一天,阿里云正式发布全新产品——云应用开发平台 CAP。CAP 拥有丰富的场景化应用模板,可以极速体验,并且具备更低的成本优势以及灵活组装等特点,成为广大开发者与企业必备的一站式应用开发平台,让应用开发更简单。
225 12
|
3月前
|
人工智能 运维 Serverless
Serverless + AI 让应用开发更简单
随着云计算和人工智能(AI)技术的飞速发展,企业对于高效、灵活且成本效益高的解决方案的需求日益增长。本文旨在探讨 Serverless 架构与 AI 技术的结合,如何通过 Serverless 函数计算和 AI 开发平台,助力企业简化应用开发流程,减少企业 AI 业务试错成本,加速业务创新,为企业业务发展提供无限可能。
|
6月前
|
人工智能 运维 Serverless
基于 Serverless 计算快速构建AI应用开发陪跑班开课啦!
云端问道第8期开课啦!参与直播间动手实操即可获得保温杯,参与直播间活动可抽奖无线充电器!!您将在课程中学习到基于Serverless技术函数计算FC实现基于Serverless 构建企业级AI应用的解决方案,降低 GPU的使用成本、减少企业或个人创业的试错成本、简化开发运维,让人人都可以拥有自己“专属”的AIGC环境成为可能!阿里云技术专家将手把手带您实操,还将针对实操中的问题进行一对一答疑!机会难得,快来参加吧!
286 9
|
Serverless
函数计算入门-HelloWorld应用开发
本场景介绍如何使用函数计算服务开发HelloWorld应用。
|
8月前
|
网络协议 NoSQL Serverless
Serverless架构的弹幕应用开发实践
Serverless的理念是即时弹性,用完即走。服务并非长时间运行,这也就意味着像websocket这种长链接的请求模式看起来并不适合Serverless,但是否有其他的办法既能满足长连接模式请求,也能够利用Serverless本身特性呢?答案是肯定的,我们通过API网关来解决webscoket连接的问题,然后由网关触达Serverless服务的后端,本文以弹幕场景为例来介绍如何使用Serverless架构实现全双工通信。
186 0
Serverless架构的弹幕应用开发实践
|
7天前
|
人工智能 运维 物联网
云大使 X 函数计算 FC 专属活动上线!享返佣,一键打造 AI 应用
如今,AI 技术已经成为推动业务创新和增长的重要力量。但对于许多企业和开发者来说,如何高效、便捷地部署和管理 AI 应用仍然是一个挑战。阿里云函数计算 FC 以其免运维的特点,大大降低了 AI 应用部署的复杂性。用户无需担心底层资源的管理和运维问题,可以专注于应用的创新和开发,并且用户可以通过一键部署功能,迅速将 AI 大模型部署到云端,实现快速上线和迭代。函数计算目前推出了多种规格的云资源优惠套餐,用户可以根据实际需求灵活选择。
|
4月前
|
人工智能 自然语言处理 Serverless
阿里云函数计算 x NVIDIA 加速企业 AI 应用落地
阿里云函数计算与 NVIDIA TensorRT/TensorRT-LLM 展开合作,通过结合阿里云的无缝计算体验和 NVIDIA 的高性能推理库,开发者能够以更低的成本、更高的效率完成复杂的 AI 任务,加速技术落地和应用创新。
209 13
|
17天前
|
存储 人工智能 Serverless
7分钟玩转 AI 应用,函数计算一键部署 AI 生图大模型
人工智能生成图像(AI 生图)的领域中,Stable Diffusion WebUI 以其强大的算法和稳定的输出质量而闻名。它能够快速地从文本描述中生成高质量的图像,为用户提供了一个直观且高效的创作平台。而 ComfyUI 则以其用户友好的界面和高度定制化的选项所受到欢迎。ComfyUI 的灵活性和直观性使得即使是没有技术背景的用户也能轻松上手。本次技术解决方案通过函数计算一键部署热门 AI 生图大模型,凭借其按量付费、卓越弹性、快速交付能力的特点,完美实现低成本,免运维。

相关产品

  • 函数计算