Spring Boot Serverless 实战 | Serverless 应用的监控与调试

本文涉及的产品
函数计算FC,每月15万CU 3个月
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: Spring Boot 是基于 Java Spring 框架的套件,它预装了 Spring 的一系列组件,让开发者只需要很少的配置就可以创建独立运行的应用程序。在云原生的环境中,有大量的平台可以运行 Spring Boot 应用,例如虚拟机、容器等。但其中最有吸引力的,是以 Serverless 的方式运行 Spring Boot 应用。

53875F~1.PNG

作者:西流


微信搜索关注 Serverless 公众号,订阅话题,连续解锁该实战系列文章全篇!


SpringBoot 是基于 Java Spring 框架的套件,它预装了 Spring 的一系列组件,让开发者只需要很少的配置就可以创建独立运行的应用程序。在云原生的世界,有大量的平台可以运行 SpringBoot 应用,例如虚拟机,容器等。但其中最有吸引力的,是以 Serverless 的方式运行 SpringBoot 应用。


我将通过一系列文章,从架构,部署,监控、性能、安全等5个方面来分析 Serverless 平台运行 SpringBoot 应用的优劣。为了让分析更有代表性,我选择了 github 上 star 数超过 50k 的电商应用 mall 作为示例。通过“SpringBoot Serverless 实战 - 部署”这篇文章,相信大家已经感受到 Serverless 应用上线的便捷。这是系列文章的第三篇, 向大家展示如何监控和调试 Serverless 应用。


实时日志


对运行在远端云平台上的应用而言,日志是调试的主要手段。分布式应用下有多个实例,日志的收集和分析是很有挑战的。虽然有很多成熟的开源产品,但要搭建和持续运维这些软件,成本不小。函数计算内置了对日志收集/分析的完整支持。用户只需要在应用逻辑中输出日志,这些日子被自动收集,并可以实时查看,通过多种方式聚合,查询。


在之前的文章中,我们通过 Serverless Devs 工具已经为应用自动创建创建了日志仓库,可以在函数计算控制台查看请求,应用级别的日志,也可使用 SQL 语言进行高级查询。除此之外,Serverless Devs 工具还提供了实时日志功能,对于应用调试非常有帮助。


在项目根目录下,即 s.yaml 所在的目录,执行下面的命令,将输出 s.yaml 中定义的所有服务的日志。


sudo -E s logs


用户也可查看指定服务的日志。


sudo -E s mall-admin logs


通过 -t 参数,用户也可以进入观察模式实时查看日志。


sudo -E s mall-admin logs -t


此时 Serverless Devs 工具会实时监听 mall-admin 应用下所有实例的日志,将新产生的日志实时展示。此后,当我们通过浏览器或者 curl 等方式给 mall-admin 应用发送请求,就能看到对应的请求处理日志输出。



Serverless Devs 也支持根据关键词查询日志。比如我们可以执行下面的命令,查看 mall-admin 应用 ERROR 级别的日志。


s mall-admin logs -t --keyword=ERROR


指标多维查询展示


除了 Serverless Devs 的命令行工具,用户也可以在函数计算控制台上从函数、实例、请求等多个维度查看日志。


mall-admin 为例,在函数计算控制台左侧导航栏,点击“服务及函数”,选择 mall-admin 服务,再选择该服务下的同名函数,进入 mall-admin 函数详情页。点击 监控指标 标签页。


如下图所示,请求列表展示了请求的执行情况,包括成功/失败,是在什么函数版本上执行的,执行时长,内存用量,在哪个实例上执行等等。也可以方便的查询请求相关的日志。



下图展示了实例维度的信息。除了指标,用户也可以到滚动到页面下方,查看对应的实例列表,以及登录到实例上执行相关的操作。


注意:函数计算的按量实例完全由系统管理,实例在闲置一段时间后就会被系统回收。被回收的实例不再被使用,不能登录。在下图中以灰色显示。




通过函数计算平台提供的日志收集和查询能力,用户的开发流程被无缝衔接起来。修改代码,使用 Serverless Devs 工具部署应用,查看日志,整个流程丝般顺滑。


本地调试


在将应用部署到云平台之前,我们通常希望能在本地部署应用,进行调试。Serverless Devs 工具提供了本地运行应用的功能。


在项目根目录(s.yaml 所在目录),执行命令,即可启动对应的服务。auto 参数是指自动为实例生成和 Web 框架兼容的测试域名。例如执行下述命令:


sudo -E s mall-admin local start auto


工具会在本地启动函数实例,并提供一个可供调用的 url。这样我们可以在本地调试 Web 应用,提高效率。


注意:每次启动本地实例,监听端口是随机生成的。



端云联调


很多时候,构成应用的微服务/函数需要和其他服务相互调用。除了在本地进行简单的单元测试,联调或者集成测试必须要把代码部署到云端。这样的方式使得开发调试的流程比较长,云端的复杂环境也增大了问题诊断的难度。比如:


  • 要平迁原有的应用,函数实例需要访问云端环境中的其他服务,遇到实例启动不起来时,该怎么排查原因?
  • 应用采用微服务架构,涉及到多个服务。能否在本地代码开发完成后快速进行端对端测试?
  • 事件驱动的应用,通过事件源触发函数,环节多,链路长,能不能在本地快速测试整个链路?
  • ……


为了解决上述问题,Serverless Devs 提供了端云联调功能。开发者通过端云联调能在本地启动实例,和云端环境无缝连通,快速进行测试和问题调试。端云联调能帮助开发者:


  1. 变更代码,实时查看结果,调试迭代的闭环最短。
  2. 能够复用本地丰富的开发调试工具,效率最高。


端云联调在本地开发机和云端应用的 VPC 环境间建立一条安全的隧道连接。访问云端应用的流量将自动转发到本地开发机上;同时本地实例对外访问的网络流量也被自动转发到云端应用的 VPC 环境中。比如在本地实例访问云端的 RDS 数据库实例,传统方式开发者只能放开 RDS 实例的公网访问。而使用端云联调,不需要任何配置的改变,可以直接以内网的方式访问 RDS 实例。


以 mall 应用为例,整个应用由 mall-admin-web,mall-admin,mall-portal,mall-search 等多个服务构成。服务之间有上下游依赖,比如 mall-admin-web 会向下游的 mall-admin 服务发送请求。假设我们已经在测试环境部署了一整套 mall 应用的服务,现在想在开发机全链路调试 mall-admin 服务,需要把 mall-admin-web 等整套服务和数据库都部署到开发机,或者通过公网与云端 VPC 内的服务和数据库交互,这是非常繁琐甚至不现实的。端云联调能让我们在本地开发机环境启动 mall-admin 服务的实例,安全的与云端 VPC 环境的其他服务和数据库无缝交互。用户不需要做任何设置。


首先在 s.yaml 所在的目录执行下述命令,针对 mall-admin 服务启动端云联调。


sudo -E s mall-admin proxied setup


然后在控制台访问 mall-admin-web 应用,可以看到相关的请求已经被转发到了本地的 mall-admin 函数实例上。而且本地实例可以无缝的访问云端 VPC 内的数据库或者其他服务。


注意:当使用了端云联调后,所有的流量都会发送到本地的实例上。要让流量恢复到函数计算上的实例,需要执行 s deploy 重新部署相关的函数。



总结


从下图的两个报告中, 我们可以看出, 在 Serverless 领域, 调试和可观测一直是 Serverless 开发实践者最大的两个痛点。



函数计算这个  Serverless 产品始终践行开发者第一的理念, 在调试和可观测方面探索和落地走在所有云厂商的前面, 在调试方面,Serverless Devs 工具支持本地调试、端云联调甚至是远程调试; 而在可观测方面, 推出了其他厂商不具备的秒级监控、实例指标以及实例登录等,极大提高了 Serverless 开发者的工作效率和幸福感, Server Less, Value More!

相关实践学习
【AI破次元壁合照】少年白马醉春风,函数计算一键部署AI绘画平台
本次实验基于阿里云函数计算产品能力开发AI绘画平台,可让您实现“破次元壁”与角色合照,为角色换背景效果,用AI绘图技术绘出属于自己的少年江湖。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
相关文章
|
12天前
|
存储 人工智能 Serverless
函数计算进化之路:AI 应用运行时的状态剖析
AI应用正从“请求-响应”迈向“对话式智能体”,推动Serverless架构向“会话原生”演进。阿里云函数计算引领云上 AI 应用 Serverless 运行时技术创新,实现性能、隔离与成本平衡,开启Serverless AI新范式。
204 12
|
4月前
|
存储 编解码 Serverless
Serverless架构下的OSS应用:函数计算FC自动处理图片/视频转码(演示水印添加+缩略图生成流水线)
本文介绍基于阿里云函数计算(FC)和对象存储(OSS)构建Serverless媒体处理流水线,解决传统方案资源利用率低、运维复杂、成本高等问题。通过事件驱动机制实现图片水印添加、多规格缩略图生成及视频转码优化,支持毫秒级弹性伸缩与精确计费,提升处理效率并降低成本,适用于高并发媒体处理场景。
222 0
|
25天前
|
Prometheus 监控 Java
日志收集和Spring 微服务监控的最佳实践
在微服务架构中,日志记录与监控对系统稳定性、问题排查和性能优化至关重要。本文介绍了在 Spring 微服务中实现高效日志记录与监控的最佳实践,涵盖日志级别选择、结构化日志、集中记录、服务ID跟踪、上下文信息添加、日志轮转,以及使用 Spring Boot Actuator、Micrometer、Prometheus、Grafana、ELK 堆栈等工具进行监控与可视化。通过这些方法,可提升系统的可观测性与运维效率。
日志收集和Spring 微服务监控的最佳实践
|
7天前
|
人工智能 运维 安全
聚焦 AI 应用基础设施,云栖大会 Serverless AI 全回顾
2025 年 9 月 26 日,为期三天的云栖大会在杭州云栖小镇圆满闭幕。随着大模型技术的飞速发展,我们正从云原生时代迈向一个全新的 AI 原生应用时代。为了解决企业在 AI 应用落地中面临的高成本、高复杂度和高风险等核心挑战,阿里云基于函数计算 FC 发布一系列重磅服务。本文将对云栖大会期间 Serverless+AI 基础设施相关内容进行全面总结。
|
18天前
|
人工智能 Kubernetes 安全
重塑云上 AI 应用“运行时”,函数计算进化之路
回顾历史,电网的修建,深刻地改变了世界的经济地理和创新格局。今天,一个 AI 原生的云端运行时的进化,其意义也远不止于技术本身。这是一次设计哲学的升华:从“让应用适应平台”到“让平台主动理解和适应智能应用”的转变。当一个强大、易用、经济且安全的 AI 运行时成为像水电一样的基础设施时,它将极大地降低创新的门槛。一个独立的开发者、一个小型创业团队,将有能力去创造和部署世界级的 AI 应用。这才是技术平权的真谛,是激发全社会创新潜能的关键。
|
6月前
|
SQL 分布式计算 Serverless
鹰角网络:EMR Serverless Spark 在《明日方舟》游戏业务的应用
鹰角网络为应对游戏业务高频活动带来的数据潮汐、资源弹性及稳定性需求,采用阿里云 EMR Serverless Spark 替代原有架构。迁移后实现研发效率提升,支持业务快速发展、计算效率提升,增强SLA保障,稳定性提升,降低运维成本,并支撑全球化数据架构部署。
558 56
鹰角网络:EMR Serverless Spark 在《明日方舟》游戏业务的应用
|
6月前
|
人工智能 开发框架 安全
Serverless MCP 运行时业界首发,函数计算让 AI 应用最后一公里提速
作为云上托管 MCP 服务的最佳运行时,函数计算 FC 为阿里云百炼 MCP 提供弹性调用能力,用户只需提交 npx 命令即可“零改造”将开源 MCP Server 部署到云上,函数计算 FC 会准备好计算资源,并以弹性、可靠的方式运行 MCP 服务,按实际调用时长和次数计费,欢迎你在阿里云百炼和函数计算 FC 上体验 MCP 服务。
525 30
|
9月前
|
人工智能 运维 物联网
云大使 X 函数计算 FC 专属活动上线!享返佣,一键打造 AI 应用
如今,AI 技术已经成为推动业务创新和增长的重要力量。但对于许多企业和开发者来说,如何高效、便捷地部署和管理 AI 应用仍然是一个挑战。阿里云函数计算 FC 以其免运维的特点,大大降低了 AI 应用部署的复杂性。用户无需担心底层资源的管理和运维问题,可以专注于应用的创新和开发,并且用户可以通过一键部署功能,迅速将 AI 大模型部署到云端,实现快速上线和迭代。函数计算目前推出了多种规格的云资源优惠套餐,用户可以根据实际需求灵活选择。
|
6月前
|
Cloud Native Serverless 流计算
云原生时代的应用架构演进:从微服务到 Serverless 的阿里云实践
云原生技术正重塑企业数字化转型路径。阿里云作为亚太领先云服务商,提供完整云原生产品矩阵:容器服务ACK优化启动速度与镜像分发效率;MSE微服务引擎保障高可用性;ASM服务网格降低资源消耗;函数计算FC突破冷启动瓶颈;SAE重新定义PaaS边界;PolarDB数据库实现存储计算分离;DataWorks简化数据湖构建;Flink实时计算助力风控系统。这些技术已在多行业落地,推动效率提升与商业模式创新,助力企业在数字化浪潮中占据先机。
353 12
|
6月前
|
人工智能 开发框架 运维
Serverless MCP 运行时业界首发,函数计算让 AI 应用最后一公里提速
Serverless MCP 运行时业界首发,函数计算支持阿里云百炼 MCP 服务!阿里云百炼发布业界首个全生命周期 MCP 服务,无需用户管理资源、开发部署、工程运维等工作,5 分钟即可快速搭建一个连接 MCP 服务的 Agent(智能体)。作为云上托管 MCP 服务的最佳运行时,函数计算 FC 为阿里云百炼 MCP 提供弹性调用能力。
 Serverless MCP 运行时业界首发,函数计算让 AI 应用最后一公里提速

相关产品

  • 函数计算