云栖大会Serverless场分享:日志处理挑战与展望

本文涉及的产品
Serverless 应用引擎 SAE,800核*时 1600GiB*时
函数计算FC,每月免费额度15元,12个月
简介: Serverless由于本身的优势,其使用越来越广,在Serverless场景下的日志分析和处理也有其自身的特点。本文通过介绍Serverless场景下日志处理的挑战,结合阿里云日志服务,举例说明日志在Devops、运营等多个场景下的使用,来展示如何从容应对Serverless下日志处理的挑战。

本文PPT来自于2017年云栖大会TI Serverless专场阿里云龙悟分享的《Serverless下日志处理的挑战和展望》整理而成。

image

由于Serverless的诸多优点,现在越来越多的应用采用Serverless的架构,如上图所示,一个典型的Serverless架构 :

  • Api网关作为用户访问的入口,是各类web、手机等客户端的访问入口
  • 应用的静态资源如图片、视频等可放在对象存储OSS上
  • 表格存储保存各类meta信息
  • 函数服务FC承载应用的核心处理逻辑

在应用采用Serverless架构的情况下,已经没有应用服务器,应用逻辑以事件为驱动进行触发,这样的改动对于应用的开发、运维、运营、客服都提出了更高的要求和不小的挑战。通常来说,日志数据对于一个应用来说至关重要,关系到应用的稳定,以及能否持续、健康发展。那么在Serverless场景下,日志数据处理又有哪些挑战呢?

image
我们先看看搭建一个日志处理平台有哪些挑战:

  • 采集多源:是否能够足够高效地从各类数据源(web、手机客户端,api网关、函数服务等)快速、方便、实时进行数据采集;
  • 运营管理成本:维护这样一个日志平台需要投入多少人力、时间、机器资源;
  • 响应速度: 对于开发、运维、运营、客服等人员,是否都可以方便、便捷地使用这个日志平台来满足各自多样的需求

通常,构建一个完整的日志平台,需要使用多种开源系统,其中典型的代表有kafka,elk,hadoop,spark,storm等,以及用于数据采集的各类agent(logstash,fluentd,beats等),这些软件和系统用于解决特定的问题,只有有机地把这些系统组合才来才能最终达到业务目标,但要能够稳定运行好这些系统,可不是一件容易的事情。

image

阿里云的日志服务提供了另外一种解决思路,以云服务的形式,提供一站式日志解决方案,集合日志多源采集、存储、实时分析和dashboard展示、数仓对接等丰富功能,来满足多种人员的各类需求。这样在即满足需求的情况下,又免去了维护多个复杂系统的代价,大大降低了日志分析的时间成本。

image
通过简单的配置,一个日志服务平台可以非常便捷地进行创建,按照我们的经验,一个人1小时足够了。
首先,我们看一下serverless应用下日志如何进行采集:

  • 通过嵌入web tracking js代码,可方便地采集客户端的行为日志;
  • 通过SDK,API网关的日志、应用APP中的日志实时将日志写入logstore中;
  • 产生在函数服务的日志,通过一行配置,FC会自动将stdout的日志采集至日志服务中;

当日志写入用户project的logstore之后,可以根据数据流量,进行秒级动态扩容、缩容。配置索引之后,各类人员可以直接使用。

接下来,我们以日志处理中几个通用场景为例,来说明如何方便地使用日志服务解决实际问题。
image
在DevOps场景下,基于阿里巴巴内部的使用经验,我们将ops的时间进行划分,其中最耗时的部分是问题调查,而问题调查往往需要从多个维度进行综合的分析,才能准确定位问题的根源:

  • Metric : 各类系统、应用指标,常见的如cpu、mem指标,应用访问延时等
  • AdHoc Query :各类条件组合进行的查询,如查询来之某个用户的访问正确率,某个页面的延时等
  • Tracing :对于单次访问的一个完整调用路径,通常可通过访问request id在各个系统中进行关联
  • Log、上下文 :详细的日志数据,以及和关键日志有关联的上下文日志

以下,我们以DevOps下的AdHoc query和tracing、上下文为例来演示如何使用日志服务:
image

首先,这个查询样例是, 某个用户对某个特定页面进行访问,出现错误或者延时超过1秒的请求情况。我们可以看到,这样的查询方式非常的灵活,可以对各种条件进行自由组合,通常会使用关键词查询、数值比较、模糊查询来进行组合。使用阿里云日志服务,日志写入1秒和即可查询,每次查询,在1秒内,可处理数亿的日志,从容应对海量日志。

接下来,如果当有用户反馈有访问异常的情况下,就可以通过Tracing + 上下午的方式,快速进行定位。
image

演示视频:

在这个视频中,首先通过用户的id找到错误的访问请求(1);再根据这个request id快速在应用日志中找到核心日志(2),发现错误根本原因是后端缓存队列已经满了,不能请求进行更多的请求;通过核心日志的上下文查询功能,快浏览在出核心错误日志上下文日志(3),用于快速定位问题。

image
在介绍DevOps场景之后,我们再看一下运营分析的场景。在这个场景下,我们希望运营同学也能很方便地直接使用日志平台进行问题的分析。比如,在进行一个推广活动的时候,该主推哪些产品、主要面向的用户群体又是哪些等的这类问题,都需要从用户浏览、购买等行为日志中进行分析。在日志服务平台上,通过简单的sql分析配合多种模式的视图展示,能非常直观将展示分析的结果。

image
演示视频:

在以上视频样例中,我们快速分析在一个网站上,售卖价格超过100元的商品中,访问次数最高的top 10的商品,分析的结果以饼图的形式来表示。日志服务的sql查询,支持了sql 92绝大部分语法功能,可在1秒内,对1亿条日志进行多个维度统计分析。

image
对于我们经常需要关注的核心指标,可将sql视图保存至dashboard做整体展示,下次打开的时候,直接看到结果。同时,在这个dashboard的上,也可以调整任意视图的时间段。

image
日志服务平台,除了以上所展示的日志实时query和sql分析功能外,也能直接和多个云产品和开源系统对接,比如将数据导入对象存储OSS或MaxCompute中进行归档和超大规模计算,通过Storm/Jstorm等流式系统可直接实时读取写入Logstore中的日志数据。这样可以更方便满足多种个性化的日志处理需求。

image
最后,我们对比一下,使用日志服务一站式平台和自建方案之间的差异。使用日志服务,可以极大降低硬件持有、系统运维、开发资源等多方面的成本,同时,使用日志服务的另一个好处是,在资源的弹性扩容、安全、权限管理上也有很大的优势。整体来说,可以使用更低的费用,享受更好的服务。

相关实践学习
基于函数计算一键部署掌上游戏机
本场景介绍如何使用阿里云计算服务命令快速搭建一个掌上游戏机。
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
目录
相关文章
|
10天前
|
SQL Java Serverless
实时计算 Flink版操作报错合集之在写入SLS(Serverless Log Service)时出现报错,该如何排查
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
29天前
|
存储 运维 Serverless
函数计算产品使用问题之日志告警不生效,一般是由于什么造成的
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
29天前
|
运维 Ubuntu Serverless
函数计算产品使用问题之函数没有产生任何日志输出,是什么原因
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
29天前
|
运维 监控 Serverless
函数计算产品使用问题之如何配置YAML以自动打开日志功能
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
1月前
|
运维 安全 Serverless
函数计算产品使用问题之登陆函数实例之后如何查看函数的日志
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
1月前
|
运维 Serverless API
Serverless 应用引擎产品使用合集之sls日志告警调用函数计算,出现抛出的结果异常,是什么原因
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
1月前
|
弹性计算 Serverless 应用服务中间件
Serverless 应用引擎操作报错合集之集成sls时出现报错,是什么导致的
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
2月前
|
SQL 分布式计算 监控
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用
本文演示了使用 EMR Serverless Spark 产品搭建一个日志分析应用的全流程,包括数据开发和生产调度以及交互式查询等场景。
56538 7
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用
|
2月前
|
弹性计算 前端开发 Serverless
Serverless 应用引擎操作报错合集之在阿里云函数计算中,调用了FC函数但是没有执行或者报错,并且在FC函数后台也看不到调用记录日志如何解决
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
2月前
|
Dubbo Java Serverless
Serverless 应用引擎操作报错合集之Nacos中nacos启动正常,访问白页,启动日志显示正常如何解决
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
Serverless 应用引擎操作报错合集之Nacos中nacos启动正常,访问白页,启动日志显示正常如何解决

相关产品

  • 函数计算