随着云计算技术的不断进步和应用需求的多样化,Serverless 架构以其按需分配资源、无服务器管理、高伸缩性等特点,在应对突发流量和节省成本方面具有独特优势,在近年来迅速崛起。
然而,尽管 Serverless 架构带来了诸多优势,但在实际应用中仍然存在着一些具有挑战性的问题,可观测性(Observability)就是其中的一个重要方面。可观测性是指在系统运行过程中能够清晰地了解系统的状态和性能指标,包括日志、指标、追踪和警报等,以便快速检测问题、调试故障和优化性能。在 Serverless 架构下,由于函数的动态性、异步性和分布式特点,使得可观测性变得更加复杂和困难。
技术难点
在实际应用中,Serverless可观测性的问题主要集中在以下几个方面:
1.日志管理的困难
当涉及到Serverless架构时,日志管理可能会面临一些困难。这包括实例日志文件的分布性和日志采集的异步性,由于Serverless应用由多个函数和服务组成,导致日志分散且追踪请求路径复杂;另外,函数实例的短暂生命周期和动态扩展意味着及时地捕获和保存日志信息更为困难。
2.异步执行带来的监控困难
在Serverless架构中,函数通过事件触发器进行异步调用,导致函数执行的顺序不确定。当函数之间存在依赖关系或顺序要求时,确保调用顺序的正确性和异步执行时序的监控变得复杂且困难。这种异步执行模式给函数调用的监控带来不确定性和挑战。
3.故障排查和调优的困难
在Serverless应用中,由于函数的短暂性和动态性,故障排查和性能调优相较传统架构更加困难。当函数调用出现异常或性能下降时,如何快速定位问题的根源、进行故障排查和性能优化成为开发团队面临的重要挑战。
解决方案
华为云函数工作流FunctionGraph与华为云其他云服务紧密集成,为用户提供一体化的解决方案,旨在应对 Serverless 应用中的可观测性挑战。通过与华为云平台上的监控、日志、跟踪和分析等服务深度集成,用户能够轻松实现对函数执行时间、分布式跟踪、日志管理和成本的监测与优化。
1.打造一站式日志采集、存储能力
华为云函数工作流FunctionGraph支持函数一键式接入LTS。LTS能够满足Serverless应用的日志收集、存储、搜索和分析需求,能够轻松处理大规模日志,并提供实时日志告警机制。其广泛的日志加工和统计功能,有助于用户快速、有效地优化日志数据。利用LTS,Serverless应用能够更轻松地进行日志管理和监控,提升了日志运维效率和整体应用的稳定性。
2.构建丰富的指标和监控系统
华为云函数工作流FunctionGraph向AOM上报了20+丰富的指标,这些指标涵盖了调用结果、调用次数、调用时长等调用类指标以及实例数、异步堆积和内存占用等实例类指标,为用户提供全面、深入的函数运行状态感知。
这一系列详尽的指标数据赋予用户全面了解其应用性能和运行状况的能力,可帮助用户进行精准的调优和优化,从而提升其在华为云平台上的运行效率和稳定性。通过提供实时、准确的数据支持,这一细致的监控系统有助于用户更好地了解和优化其应用的运行情况,提升整体的管理水平和运行效率。
3.通过华为云APM实现调用链路追踪
通过整合华为云APM的监控技术和OpenTelemetry的分布式跟踪功能,能够深入监控单个函数内部的调用链,追踪函数执行过程中的各个调用阶段和依赖关系,精确捕获函数调用链上的关键信息,包括调用耗时、调用参数、调用成功与否等,为系统正常运行和故障诊断提供了重要数据支持。
同时,当 Serverless 函数调用出现异常时,华为云APM的分析能力能够对某个请求进行数据汇聚,实现请求级别的数据聚合与分析,开发者可以直观地了解该请求在一段时间内的耗时变化、请求结果等信息,快速找出异常请求。通过对异常请求的深入分析,包括异常调用信息、异常触发时间点等,开发者可以精准定位问题根源,快速进行故障排查和修复操作。
最佳实践
1.函数调用结果异常快速感知
函数调用结果异常快速感知对于系统的稳定性与可靠性至关重要。FunctionGraph基于指标和错误码日志,构建了对异常函数的监控和汇聚能力。基于监控数据的实时分析,能够快速推断异常的原因和可能的影响范围,按故障场景针对性的采取自动隔离、人工介入等处理措施,确保系统持续稳定运行,有助于最大限度地降低异常对业务的影响,为系统的稳定性和可靠性提供保障。
2.函数调用时延追踪
在Serverless平台上,时延类问题一直是一个较为棘手的挑战。针对此问题,FunctionGraph针对函数调用时延展开了细致的追踪和分析,以解决这一痛点难题。
首先,通过构建详尽的指标趋势图,华为云函数工作流FunctionGraph使用户能够全面了解函数调用时延的历史变化趋势和关键数据指标,为时延分析提供了丰富的数据支持。
此外,FunctionGraph还结合了华为云的应用性能管理(APM)能力,在单次函数请求中无侵式开启调用链,完成对函数请求链路的全面追踪。通过对函数请求的细粒度监控和分析,用户可以深入了解函数调用过程中各环节的时延情况和性能指标,洞悉函数调用的具体执行路径,有助于客户更好地解决时延类问题,减少不必要的性能瓶颈和延迟问题的影响。
3.函数资源监控
资源和成本也一直是用户非常关心的因素。FunctionGraph为用户提供了详细的资源监控看板,通过精确的监控数据,用户能够深入了解其云函数的性能状况,及时发现潜在瓶颈和性能问题,从而有针对性地对函数配置进行优化和调整,以提高应用性能并最大程度降低成本消耗。
在不断探索和创新中,Serverless 和可观测性技术的结合将进一步提升云计算中的监控能力,为企业构建更强大、高效的 Serverless 应用提供了保障,为云计算技术带来更多可能性。
注:本文转载自华为云社区,仅供学习阅读,版权归作者所有
文章链接:https://bbs.huaweicloud.com/blogs/431551
作者:牧之
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.