Serverless 可观测性的过去、现在与未来

简介: 函数计算可观测性经历了 1.0 -> 2.0 的发展,从闭门造车的可观测发展成开源的可观测,从平台的可观测发展为开发者的可观测,从FaaS Only 的可观测演进成了云原生的可观测。

作者:夏莞

背景

Serverless 将成为下一个十年云的默认编程范式

 

随着 Serverless 概念的进一步普及,开发者逐渐从观望状态进入尝试阶段,越来越多的企业用户开始将业务迁移到 Serverless 平台。在阿里集团内部,淘宝、飞猪、闲鱼、高德、语雀等核心功能稳步落地,在阿里集团外部,新浪微博、世纪联华、石墨文档、TPLink、蓝墨云班课等各行各业的企业也纷纷解锁 Serverless 使用的不同场景。Serverless 正在成为成为下一个十年云的默认编程范式。

 

更多案例请参考 函数计算用户案例

 

Serverless 降本增效免运维的特性为开发者带来了实打实的好处:基于函数计算的 Serverless 方案为蓝墨节省了 60% 左右的 IT 成本,为石墨文档节约了 58% 的服务器成本;提升码隆科技的开发效率,实现两周内功能上线;平稳支撑负载的波峰波谷相差 5 倍以上的新浪微博,每天轻松处理数十亿请求。

 

广告时间:欢迎加入云原生Serverless 团队(函数计算,Serverless工作流,Serverless应用引擎),以公共云、集团、开源社区三位一体的方式打造业界领先的Serverless 产品体系。职位需求见 JD,招聘长期有效,有兴趣的同学可以联系本文作者或 @Chang, Shuai(shuai.chang)。

 

可观测性成为 Serverless 发展的绊脚石?

 

随着 Serverless 的深入使用,开发者逐渐发现 Serverless 架构下的问题定位比传统应用更加困难,主要原因如下:

 

  • 组件分布化:Serverless 架构的应用往往粘合多个云服务,请求需要流经多款云产品,一旦端到端延时变长或表现不符合预期,问题定位十分复杂,需要依次去各个产品侧逐步排查。

 

  • 调度黑盒化:Serverless 平台承担着请求调度、资源分配的责任,实时弹性扩容会带来不可避免的冷启动,Serverless 的资源伸缩是无需开发者参与也不受开发者控制的。冷启动会影响端对端延时,这次请求有没有遇到冷启动,冷启动的时间都消耗在哪些步骤,有没有可优化的空间都是开发者急于知道的问题。

 

  • 执行环境黑盒化:开发者习惯于在自己的机器上执行自己的代码,出了问题登录机器查看异常现场,查看执行环境的 CPU/内存/IO 情况。面对 Serverless 应用,机器不是自己的,登也登不上,看也看不了,开发者眼前一片漆黑。

 

  • 产品非标化:在 Serverless 场景下,开发者无法控制执行环境,无法安装探针,无法使用开源的三方监控平台,调查问题的方式不得不发生改变,传统的调查问题经验无法施展,非常不顺手。

 

函数计算是阿里云的 Serverless 产品,在过去的一年,函数计算团队为了更好地回答以上问题做了很多努力。

 

本文主要介绍函数计算在可观测性上的尝试与函数计算可观测性现状。

 

Serverless 下可观测性

 

可观测性是通过外部表现判断系统内部状态的衡量方式。

--维基百科

 

在应用开发中,可观测性帮助我们判断系统内部的健康状况。在系统平稳运行时,帮助我们评估风险,预测可能出现的问题。当系统出现问题时,帮助我们快速定位问题,及时止损。

 

一个好的可观测性系统要帮助用户尽可能快地发现问题、定位问题并且端到端地解决问题。

 

在 Serverless 这种免运维的平台体系中,可观测性是开发者的眼睛,没有可观测,何谈高可用?

 

可观测性 1.0

 

1.png

图1:可观测性基础

 

可观测性主要包含三个部分:日志、指标、链路追踪。

 

和几乎所有 FaaS 产品一样,函数计算(FC)在商业化之初就支持了函数日志和指标的查看。

 

  • 函数日志

用户在 FC 配置 SLS 的 Project 和 Logstore,FC将函数打到 stdout 的日志转存到用户的 Logstore中。用户可以通过 SLS 控制台查看函数日志,并借助 SLS 的能力对日志进行分析和聚合。

 

  • 基本指标

FC 将指标日志推送到云监控,通过云监控提供函数调用数/错误数/函数延时/函数内存等基本指标。

 

函数日志和基本指标是应用的听诊器,虽然朴素简陋,却也能帮助用户发现问题,定位问题。

 

即使出现开发者无法排查的问题,在用户量不那么大的年代,开发同学可以为用户提供贴身服务,结合后台日志帮用户定位问题。

 

函数日志和指标使用详细信息请参考 配置并查看函数日志,监控指标。

 

可观测性 2.0 -- 云原生的可观测

 

随着 Serverless 的发展,越来越多的场景在 Serverless 落地,使用规模越来越大,产品架构越来越复杂,应用听诊器的可观测性 1.0 已经不能满足各行各业开发者的监控诉求。这种近乎黑盒的执行环境给开发者带来了强烈的距离感与不信任感。

 

开发者需要掌控自己的应用,想要知道每一个请求在函数计算经历了怎样的历程,想要看看端到端的延时长是不是因为冷启动,想要查看函数实例的执行环境,想要在请求出现异常时第一时间定位问题,想要复用熟悉的开源观测平台。

 

在面对这些需求时,团队内部也经过了长时间的激烈讨论,一部分同学认为我们应该支持这些需求,另一部分同学则认为这些需求某种程度上与 Serverless 本质相违背,Serverless 就是要屏蔽底层的计算资源,用户不需要关心底层计算资源的情况。另一方面我们暴露了这些指标有什么用呢,用户就算看到了有冷启动,看到了系统时间消耗,看到了底层实例的 CPU,用户又不能有任何实质操作,这些指标真的意义吗?这两种观点争论不休,而我,是坚定的反对者。

 

后来团队搬到了 EFC,每天都要等待着那不知什么时候会来的电梯(输入你要去的楼层,去对应的电梯安静地等待,看不到电梯目前所在楼层)。电梯告诉我们,你就在这里等哦,我肯定会来的,但是我现在到了哪层,我什么时候下来你大可不必知道,你知道了也没用,我的这个调度肯定是最优的,你要相信专业电梯的调度算法。可是,我怎么能相信你呢?

 

于开发者而言,函数计算也是那不知什么时候会来的电梯吧,我们和开发者说您的请求我们一定会稳定执行的,您的执行环境一定很健康,请求过多我们会自动扩容的,但是当前实例的监控指标,我什么时候扩容您大可不必知道,我们的调度肯定是最优的,您要相信专业研发团队的调度算法。同样的,开发者又怎么相信我们呢?

 

Serverless 的可观测性不单单要帮助开发者排查问题,也要逐步揭开 Serverless 那层神秘的面纱,赢取开发者对 Serverless 的信任。

 

于是有了函数计算可观测性 2.0,我们希望可观测性 2.0 可以成为应用的心电图。

 

3.png

图2:函数计算可观测性现状

 

  • 为了回答请求在函数计算的生命历程,串联分布式系统的上下游服务,拥抱开源可观测能力,我们集成了 OpenTracing,支持链路追踪。
  • 为了暴露系统状态,提供应用级别监控,我们集成了 ARMS(Java),内置了 APM 能力。
  • 为了加快端到端定位问题的速度,我们支持了请求级别指标(FC Insights),发布了监控中心,问题发现/调查一站式解决。
  • 为了兼容开发者已有的用户体验,我们拥抱开源,集成 OpenTracing,支持 Grafana Dashboard;我们支持三方监控平台,实现代码几乎零改造接入APM 监控系统。
  • 为了兼容传统开发者的可观测体验,支持探针安装,我们拓展了编程模型,支持函数LifeCycle,为集成三方监控提供可能。

 

3.png

图3:函数计算兼容开源可观测能力

 

相比于自己发明创造 FaaS 可观测性新体验,函数计算兼容开源可观测能力,集成 Jaeger,支持 Grafana 大盘,也支持以非常小的改动接入 New Relic 等优秀三方监控平台。函数计算是首家兼容开源、拥抱容器生态和云原生开发者的 FaaS 提供商,可观测体验的平滑迁移支撑应用在容器和 Serverless 平台的平滑迁移。

 

集成OpenTracing,支持链路追踪

 

FC 与链路追踪服务集成,为开发者提供了完整的调用链路还原、调用量统计、链路拓扑分析、冷启动定位等工具。帮助开发者快速分析和诊断分布式架构下的性能瓶颈。

 

FC 链路追踪具有以下特点:

 

• 拥抱开源:完全兼容OpenTracing 协议,没有附加学习成本;

• 主动记录:上报请求在函数计算中消耗的端对端时间;

• 调度透明:暴露代码准备时间与实例启动时间,是首个暴露冷启动延时与具体时间消耗的 FaaS 产品;

• 承上启下:串起上下游应用,既可以通过span context 与上游应用连接,又将 span context 传入函数,连接下游服务。

 

图片 1.png

图4:链路追踪链路示例

 

5.png

图5:链路追踪综合能力详情

 

集成 ARMS,内置 APM 能力

 

FC 无缝对接 ARMS 应用监控,开发者只需为函数新增一个环境变量即可开启 APM 应用监控功能,ARMS 探针以对代码无入侵的方式监测应用性能,提供应用级别的可观测性,包括函数实例的 CPU、内存指标、Java 虚拟机指标、代码 Profiling 信息、SQL 查询等函数实例的指标。

 

4.png

图6:ARMS 示例

 

发布监控中心(Insights),问题发现调查一站式解决

 

FC 支持请求级别指标,通过为用户每个请求多打一条指标日志的方式为请求装上摄像头。通过请求级别指标,用户可以清楚地看到请求的执行时间、使用内存,是否异常、错误类型、冷启动情况,traceID 等信息。也可以基于请求级别指标串联起所有的可观测性能力。

 

监控中心则是 FC 可观测性能力的集大成者,监控中心集成了 Metrics、Logs、Tracing的能力,可以在一个站点完成预览指标、查看日志、分析链路的能力,争取做到问题发现调查一站式解决。

 

监控中心具有如下特点:

 

  • 多维度:支持 Region、Service、Function、Qualifier、Request 多维度的指标,展示各个维度下的调用数和错误分布;
  • 多层次:集成 Metrics、Logs、Tracing 的能力,全方位多层次对应用进行监控;
  • 全链路:结合指标、日志、链路等信息,层层递进,抽丝剥茧,真正做到可以在一个站点发现问题,定位问题并解决问题。

6.png

图7:监控中心示例

 

扩展编程模型,集成三方监控

 

函数实例的生命周期完全由平台控制,用户无法控制实例的启动与回收,也不感知实例的暂停与重启,这就使得在函数计算上执行除主线程外的背景线程格外困难。监控探针就是诸多重要的背景线程的一种。

 

FC 扩展了编程模型,发布 Runtime LifeCycle 功能,Runtime LifeCycle 会监听函数实例生命周期事件,允许函数实例在暂停和回收前回调用户的函数逻辑。这一功能的发布使 FC 集成三方 APM 监控成为可能。用户只需要在实例暂停前将采集的指标发出去、在实例回收前将内存中的数据清理掉就可以在 APM 平台上实时地查看监控指标了。

 

8.png

图8:Tingyun APM 示例

 

 9.png

图9:NewRelic APM 示例

 

总结

 

函数计算可观测性经历了 1.0 -> 2.0 的发展,从闭门造车的可观测发展成开源的可观测,从平台的可观测发展为开发者的可观测,从FaaS Only 的可观测演进成了云原生的可观测。

 

作为首家兼容开源可观测、拥抱容器生态和云原生开发者的 FaaS 提供商,函数计算也将更有实力实现开发者业务的平滑迁移。

 

未来规划

 

FC 可观测性相比于一年前前进了一小步,从黑盒的可观测演进成了微弱烛光的可观测,但距离 “Serverless 应用白盒化” 的目标还有着很长的路要走。我们希望能够兼容开发者的监控体验,支撑着用户平滑地放心地将业务迁到 Serverless 上来。

 

接下来我们会继续投入做以下事情:

 

  • 完善监控中心,支持报警配置,预警异常指标;
  • 提供实例级别指标,做到代码问题可定位,环境现场可追溯;
  • 集成开源项目,集成 Prometheus,Opentelemetry,配置 Grafana 大盘;
  • 丰富指标内容,目前还有一些指标是不好透出的,没有暴露的,我们要逐步都暴露出来;

希望函数计算的可观测性成为一盏灯,照亮每一个 Serverless 应用。

原文链接

本文为阿里云原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/513912.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Gartner:全行业投入人工智能,计算机视觉占比最高

编辑 | 宋慧 供稿 | Gartner Gartner最近一项新调研发现,三分之一拥有人工智能(AI)技术计划的技术和服务提供商企业机构表示,他们在未来两年对人工智能技术的投资将达到100万美元以上。绝大多数将人工智能技术作为主要投资领域的…

爱奇艺大数据生态的实时化建设

简介: 实时化是大数据未来最重要的方向之一。 作者|爱奇艺大数据团队 数据作为互联网时代的基础生产资料,在各大公司企业拥有举足轻重的地位。数据的价值在互联网公司的体现,大致而言可以分成三类: 发掘数据中的信息…

python机械臂仿真_基于Python的3R机器人运动仿真

一、问题描述 如右图所示的三自由度机械臂,关节1和关节2相互垂直,关节2和关节3相互平行。如图所示,所有关节均处于初始状态。 要求: (1) 定义并标注出各关节的正方向; (2) 定义机器人基坐标系{0}及连杆坐标…

AI 事件驱动场景 Serverless 实践

简介: 事件驱动是指事件在持续事务管理过程中,进行决策的一种策略。可以通过调动可用资源执行相关任务,从而解决不断出现的问题。通俗地说是当用户触发使用行为时对用户行为的响应。在 Serverless 场景下,事件驱动完美符合其设计初…

运维质变育新机,华为云能否引领政企运维破局?

头图 | 付费下载于视觉中国 提到IT运维,我们马上想到的,就是“7*24小时待命”、“救火”。作为IT安全运行的保障,长久以来,运维一直都是“不出事看不到价值,一出事全是锅”的角色。例如某企业自动化运维失效导致宕机…

封神-运维大脑 | 日志检测工具

简介: 封神-运维大脑 | 日志检测工具1. 背景目标 阿里云应用业务有问题,云平台监控可以发现问题,但并不能定位到问题根本原因,运维大脑监控底层日志,可快速定位问题原因,帮助现场运维同学解决问题。 运维大…

hive sql练习_经典的SparkSQL/Hive-SQL/MySQL面试-练习题

经典的SparkSQL/Hive-SQL/MySQL面试-练习题​mp.weixin.qq.com第一题需求:已知一个表order,有如下字段:date_time,order_id,user_id,amount。 数据样例:2020-10-10,1003003981,00000001,1000,请用sql进行统…

世纪联华的 Serverless 之路

简介: 2019 年 双11 过后,世纪联华快速上云,将线上核心业务改造为全 Serverless 架构的中台模式,采用“函数计算API 网关OTS”作为计算网络存储核心,弹性支撑日常和大促峰谷所需资源,轻松支撑 618 / 双11 /…

“5G+AI”到底有啥用?这篇漫画告诉你答案…

作者|小枣君来源|鲜枣课堂根据工信部最新的数据,截至8月份,我国5G基站数量已超过百万,达到103.7万个。面对这张全球规模最大的5G网络,我们不禁会思考——它究竟会发挥怎样的作用?它的价值到底体现在哪?它会…

Kubernetes 稳定性保障手册 -- 可观测性专题

简介: 伴随大家对稳定性重视程度的不断提升、社区可观测性项目的火热,可观测性成为了一个很热门的话题,站在不同的角度会产生不同的理解。 我们从软件开发的生命周期出发,尝试形成对可观测性的一个宏观理解,并从 SRE 和…

读懂 Redis 源码,我总结了这7点心得

作者|Magic Kaito来源|水滴与银弹阅读本文大约需要 8 分钟。你好,我是 Kaito。用了这么久的 Redis,也翻了很多次源码,经常有人问我到底怎么读 Redis 源码。一提到读源码,很多人都会比较畏惧,认为读源码是高手才会做的事…

linux c url下载文件,OpenCV教程之使用cmake生成MakeFile时下载文件

在编译OpenCV以及其附加模块时,有时会需要一些第三方的库,如果本地没有,会自动下载,下载地址一般为GitHub,结果当然就是卡死在那里,根本无法下载,下面教大家如何解决这种问题。问题重现比如我在…

OpenTelemetry 简析

简介: OpenTelemetry 是 CNCF 的一个可观测性项目,旨在提供可观测性领域的标准化方案,解决观测数据的数据模型、采集、处理、导出等的标准化问题,提供与三方 vendor 无关的服务。 2021.02.10,OpenTelemetry 的 tracing…

涨姿势 | 一文读懂备受大厂青睐的ClickHouse高性能列存核心原理

简介: 本文尝试解读ClickHouse存储层的设计与实现,剖析它的性能奥妙 作者:和君 引言 ClickHouse是近年来备受关注的开源列式数据库,主要用于数据分析(OLAP)领域。目前国内各个大厂纷纷跟进大规模使用&…

xp正版验证补丁_实操web漏洞验证——IIS HTTP.sys 整数溢出漏洞

一、漏洞描述Http.sys 是一个位于 Windows 操作系统核心组件,能够让任何应用程序通过它提供的接口,以 Http 协议进行信息通讯。微软在 Windows 2003 Server 里引进了新的 HTTP API 和内核模式驱动 Http.sys,目的是使基于 Http 服务的程序更有…

普通公司编程水平与BAT大厂相比,差距到底有多大?

前言BAT的牛人多,普通人也多,虽然他们不是每个人都能达到令人仰望的技术水平,但毕竟平台高,所以眼光会变得宽阔;代码要求更为严格,所以普通的程序员也会被逼变得更优秀;身边的牛人多&#xff0c…

mindi linux 使用教程,Linux使用入门教程之tuned

tuned是RHEL6推出的调优工具,可以简单、动态的调整系统。默认的tuned软件包包含9个调优配置文件,对laptop、desktop、server系统的省电策略、磁盘调度算法、缓存、内存脏页回写等等的调节。tuned包安装后有两个服务,tuned和ktune,…

货运物流移动端解决方案:为货运物流行业打造高性能、高粘性的“双端”触点

简介: 在业务碎片化的情景下,怎么通过平台做整合,建立你的专业化运维池? 从 2020 年发展网络货运以来,在互联网和大数据的协作下,传统的物流企业逐渐转向信息化模式,在政策的不断推动下&#xf…

互联网泛娱乐直播安全的解决之道

简介: 阿里云的CDN和视频云产品在直播安全场景下有广泛的应用,阿里巴巴集团的淘宝、优酷等业务的直播正是基于这些产品底层能力,构建了强大的直播安全体系。这个基于阿里巴巴集团自身业务实践打磨出来的架构设计,也被众多上云客户…

wps office2019PC版和Mac版_学用系列WPS教育版的“十八般武艺”

相信不少朋友都在使用wps进行办公学习,但相信不少教师学生肯定不知道其实WPS还很用心提供教育版,里面有不少实用且好用的学习工具可以让我们的学习如虎添翼。今天胖胖老师就为大家介绍一下新版本WPS教育版的“十八般武艺”,欢迎大家一起来尝鲜…