流利说统一可观察性平台实践

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 流利说利用日志服务SLS构建统一可观察性平台最佳实践

在线教育行业现状
随着 90 年代互联网的引入,在线教育产品也依托于互联网诞生。随着互联网技术的发展,在线教育产品也开 始了出现新的模式。在线教育从最初单纯的文字形式,开始往图片、音频方面开始发展。 教育在线化也进一步促进了数据化的发展,内容作为教育企业的核心资产,无论是数据化程度还是数据化规模都在不断提升。同时用户使用时长的提升,又为教育 AI 提供了大量源数据。据统计今年 3 月份在线教育用户日均在线 时长,超过 200 万天。如此海量的数据为行业的智能化发展提供了良好的土壤,推动了教学内容、课程营销、师资 管理、质量评估等智能分析的发展。

流利说公司介绍
流利说是世界领先的科技驱动的教育公司,作为智能教育的倡行者,流利说拥有一支业内领先的人工智能团队,经过多年积累,流利说已拥有巨型的“中国人英语语音数据库”,累积实现记录大约 37 亿分钟的对话和 504 亿句录音。
2013年流利说推出了第一款产品“英语流利说”,集成了语音识别、打分和自适应学习等多种核心技术。具有上下文情景对话、发音指导课程等丰富内容,并提供人工智能英语老师和游戏化的学习体验,为用户在英语学习中获得更多乐趣。这款有趣又有效的产品很快就占领了当时的市场并获得了用户的高度认可。
但业务快速发展,用户数大幅度增长,平台的用户数量已从当初的百万级,增长至过亿,因此业务的高低峰期数据流量变化、业务复杂度和分析难度都给给 IT 架构带来了巨大的挑战。

流利说统一监控平台的相关挑战
作为一个没有单独运维部门的公司,基础平台的统一监控平台主要由cloud-infra团队的研发来完成,而团队的核心诉求也不仅仅是SLA、性能的监控、告警和提供问题定位的相关数据,还包括cloud-infra的技术价值运营,例如利用率、成本节约、业务关系网络等。在这些核心诉求下,对于统一监控平台会具高的要求:
1.采集、监控各种异构数据源,包括K8s、ECS上的机器指标、利用率、Istio相关的调用日志、自建中间件相关指标、云服务提供的指标、业务的Trace数据等,此外还要包括各类成本数据的实时采集。
2.各类资源的动态发现与动态采集,包括组织关系等部门相关的数据也需要实时更新,以便能够实时反馈出最准确的相关指标和归属关系。
3.大规模的数据存储与分析,由于流利说的业务规模大,使用的各类云资源以及业务产生的数据量非常巨大,每天在数十TB,方案需要满足在此规模上的实时分析和展现的能力。
4.监控平台负责的是稳定性问题,本身的稳定性也需要做好,因此需要消除各个部分的单点问题,并且具备异常快速恢复的能力。

技术选型
统一监控平台不仅仅是时序相关的数据,其中非常核心的业务可用性数据需要通过各类日志进行计算和分析,因此整体上需要选择Logs和Metrics两种数据方案。对于这两类数据都分别有不同的社区方案或商业方案,例如ES、Loki、SLS、Prometheus、OpenTSDB、InfluxDB等。最终日志方案选择了阿里云SLS,时序方案选择了Prometheus+SLS,主要的原因如下:
1.SLS具备各类数据统一存储、分析的能力,能够在SLS上去关联到Metrics、Logs数据,这是其他平台所不具备的
2.SLS平台能够适应非常大的数据规模,相比ES来说性能要好很多,也是免运维的服务,省去了自己维护ES高可靠的问题
3.时序方案以Prometheus为主,Prometheus的生态非常完善,而且PromQL使用起来也简介。SLS的时序库可以作为Prometheus的远端高可靠存储,能够解决Prometheus的可靠性问题
4.SLS的方案中有数据加工的功能,可以和外部的数据源去做Join分析和加工,能够更好的来处理各种复杂的日志,把日志加上catalog相关的信息

整体架构
流利说图片 1.png
当前流利说统一监控平台的架构如上图所示:

1.为了能够实现自动化,我们开发了一套适用于云上场景的IaaS、PaaS资源动态发现的机制,能够实时将新购买、创建的资源加入到监控、采集中,避免大部分的人工操作

2.日志相关:
•不同业务的日志直接通过SLS的Logtail采集到不同的日志库中
•并不是所有的日志都需要长时间存储和索引,因此我们对于日志进行归类,对于其中需要有审计需求的,会投递到OSS上做长期存储;业务排查问题的日志只保存2周,并开启全文索引;AccessLog只开启部分字段的索引,可以节省很多的索引费用。
•对于需要计算SLA、PXX指标的NGINX访问日志,会使用数据加工,配合已经在RDS中存储的一些映射规则、部门、应用等Catalog信息,将NGINX访问日志中的URL映射成对应的部门、应用、方法等。

3.监控相关
•监控方案选择了Prometheus,针对于流利说的场景,我们开发了一些Exporter用于从各类云上产品、自建组件中获取Metrics
•同时为了更好的使用Prometheus,和内部的CICD系统集成,我们在Prometheus上增加了一个Sidecar,监听Git仓库的变更,并根据变更动态的Reload Prometheus配置
•Prometheus上为了提高查询速度,配置了各类Recording Rule,这些都统一使用Git管理
•AlertManager的告警直接对接内部的告警中心,可以做排版、升级等高级功能
•为了解决Prometheus单点的问题以及后面和Catalog进行关联分析的问题,我们使用SLS的时序库,直接让Prometheus Remote Write到SLS的时序库中

4.指标计算
•核心指标的计算一部分来源于NGINX的AccessLog,从入口就可以拿到各个业务的QPS、错误率、Latency(平均、PXX等),对于业务没有任何的侵入性
•资源利用率、中间件、基础设施等指标来源于Prometheus写入的时序库,基于Catalog可以聚合计算出每个部门、业务的相关指标
•计算完成后的指标信息,由于数据量非常小,可以很容易的存储在MySQL、ES中,并且投递一份到OSS上备份

相关成果
目前这套监控平台几乎承载了公司所有的核心监控,在上线后一直稳定运行,并且在各类活动期间也能够非常轻松的应对数据量的突增。整体的业务价值主要体现在:
1.监控:监控的第一价值是做各类的监控和告警,尤其是SLA相关,由于将数据已经关联到了具体的部门和业务应用,可以很容易的得到每个部门、应用的SLA,并进行公司范围内统一的推进和改进
2.问题排查与故障隔离:基于Istio的访问日志,配合Catalog信息,可以计算出每个应用的调用关系,因此可以实时的生成业务关系网格,并能够知道每个关系(边)的质量情况。了解到业务的关系后,在出现问题的时候也可以快速的定位根源和故障隔离
3.FinOps:在Cloud Infra部门,被挑战最多的就是开销问题。因此成本优化也是我们的一个核心工作,主要的做法是:计算每个部门、团队的资源利用率,包括平均利用率以及各类PXX的利用率(入下表格所示),以此能够判断每个部门的资源使用情况,推进各部门优化成本。

image.png

流利说统一监控背后的技术
流利说统一监控基于阿里云SLS进行构建,SLS定位为云原生观测分析平台,为Log/Metric/Trace等数据提供大规模、低成本、实时平台化服务。一站式提供数据采集、加工、分析、告警可视化与投递功能,全面提升研发、运维、运营和安全等场景数字化能力。其中统一监控使用到了多种SLS的核心功能,主要包括:

全方位日志采集
流利说图片2.png

SLS支持Log/Metric/Trace统一采集,支持服务器/Kubernetes/应用/移动设备/网页/IoT等数据源接入,支持阿里云产品/开源系统/云间/云下日志数据接入,核心特点有:
1.便捷:40+成熟接入方案,多客户端统一采集,支持内网、公网、全球加速传输等多种传输方式

  1. 可靠:阿里经济体自用基础设施,历经多次双十一,春晚活动考验。支持断点续传,可根据业务流量实现弹性伸缩

3.开放:多协议(HTTP/Syslog/Prometheus/OpenTelemetry)无缝接入,完整对接开源生态

Prometheus时序方案
流利说图片3.png
SLS时序存储从设计之初就是为了解决阿里内部与众多头部企业客户的时序存储需求,并借助于阿里内部多年的技术积累,使之可以适应绝大部分企业级时序监控/分析诉求。SLS时序存储的特点主要有:
1.丰富上下游:数据接入上SLS支持众多采集方式,包括各类开源Agent以及阿里云内部的监控数据通道;同时存储的时序数据支持对接各类的流计算、离线计算引擎,数据完全开放
2.高性能:SLS存储计算分离架构充分发挥集群能力,尤其在大量数据下端对端的速度提升显著
3.免运维:SLS的时序存储完全是服务化,无需用户自己去运维实例,而且所有数据都是3副本高可靠存储,不用担心数据的可靠性问题
4.开源友好:SLS的时序存储原生支持Prometheus的写入和查询,并支持SQL92的分析方法,可以原生对接Grafana等可视化方案
5.智能:SLS提供了各种AIOps算法,例如多周期估算、预测、异常检测、时序分类等各类时序算法,可以基于这些算法快速构建适应于公司业务的智能报警、诊断平台

实时数据分析
流利说图片4.png
查询分析提供关键词、SQL92、AIOps函数等多种方式,支持面向文本+结构化数据实时查询分析,异常巡检与智能分析。主要特点如下:
1.高性能:秒级分析十亿级数据,且完整支持SQL、PromQL等分析接口,HTTP、Kafka、JDBC、Prometheus等协议
2.稳定可靠:企业级设计,多租户隔离,PB级容量设计,数万企业用户选择
3.智能:经过阿里经济体实践的AIOps能力,支持智能异常巡检与根因分析数据加工
流利说图片5.png
数据加工通过灵活语法,在不编写代码情况下支持各种复杂数据提取、解析、富化、分发等需求,支持结构化分析。数据加工的主要特点如下:
1.灵活:提供丰富算子、开箱即用的场景化UDF(Syslog、非标准json、AccessLog UA/URI/IP解析等)。可扩展语法应对各种复杂格式
2.免运维:全托管云上服务,无须投入额外运维资源。支持自动根据流量弹性伸缩
3.可扩展:支持多层嵌套、分流等逻辑,支持复杂的数据分派与编排需求

在云原生时代,数字化正在各行业推动业务创新。只有提升用户体验、加速创新、更新基础设施与架构、利用好多样化的数据,才能在整体大环境中脱颖而出。阿里云推出的智能运维平台,不仅仅是要帮助工程师减少工作量,更多的是希望让运维工程师们从各种机械化的工作中解脱。我们将会包揽所有的“脏活累活”,让故障的时间大幅缩小,让运维人将更多创造力,放在数字创新以及企业业务创新上,为企业提供提供更优的竞争力。

**2021.7.16|北京·8KM coffee (望京店)
数智创新行(北京站)——智能运维专场**

针对日常运维工作中出现的问题,阿里云邀请多位大咖和大家聊聊关于智能运维相关话题
阿里云带来云原生智能运维解决方案,满足海量事件有效感知、高效响应,可观测数据统一分析、故障定位,以及基于AI的异常检测等需求,助力企业构建自己的运维平台,成为开发、运维人员高效可靠的助手

👇👇点击报名👇👇


数智创新行(北京站)——智能运维专场

了解更多详情,欢迎点击:
https://developer.aliyun.com/topic/osssalon

相关文章
|
4月前
|
存储 监控 安全
智慧工地管理平台的技术架构和工作原理
智慧工地管理平台是将互联网+的理念和技术引入建筑工地,从施工现场源头抓起,最大程度的收集人员、安全、环境、材料等关键业务数据,依托物联网、互联网,建立云端大数据管理平台,形成“端+云+大数据”的业务体系和新的管理模式,打通从一线操作与远程监管的数据链条,实现劳务、安全、环境、材料各业务环节的智能化、互联网化管理,提升建筑工地的精益生产管理水平。实现“互联网+”与建筑工地的跨界融合,促进行业转型升级。
|
27天前
|
缓存 前端开发 小程序
【分布式技术专题】「架构设计方案」盘点和总结RBAC服务体系的功能设计及注意事项技术体系
【分布式技术专题】「架构设计方案」盘点和总结RBAC服务体系的功能设计及注意事项技术体系
31 0
|
3月前
|
存储 云计算
生信工程师高效工作的背后——可观测性、资源适配与自动化
使用Memory Machine Cloud(简称MMCloud)的生信工程师们为什么工作效率比别人高呢?我们悄悄总结了MMCloud的三个核心优势——可观测性、资源适配与自动化。
159 0
|
8月前
|
SQL 数据采集 运维
袋鼠云数栈 DataOps 数据生产力实践,实现数据流程的自动化和规范化
袋鼠云数栈在7年多的研发历程中为上千家客户提供了数据生产效率提升解决方案,也在这个过程中不断地将 DataOps 的理念融合到产品中,助力越来越多的企业成功实现数字化转型升级。本文将就数栈基于 DataOps 的敏捷、高质量数据生产力实践进行分享,希望对大家有所帮助。
279 0
|
11月前
|
编解码 人工智能 运维
《2023云原生实战案例集》——04 互联网——核桃编程 基于ARMS构建可观测体系,全方位提升用户体验
《2023云原生实战案例集》——04 互联网——核桃编程 基于ARMS构建可观测体系,全方位提升用户体验
|
运维 监控 BI
企业综合运维监控项目经典案例
对服务器、网络设备等IT设施提供全面的故障和性能管理,通过设置相应的性能阀值和告警通知方式,当设备发生异常时能及时通过邮件和短信通知到管理员,减少故障修复时间
325 0
企业综合运维监控项目经典案例
|
3天前
|
Prometheus 监控 Cloud Native
基于 OPLG 从 0 到 1 构建统一可观测平台实践
“可观测”是近几年比较火的一个议题,而 OPLG 就是包含了 OpenTelemetry、Prometheus、Loki 和 Grafana 在内的开源可观测技术合集,它们之间将碰撞出什么样的火花?请阅读本文介绍的基于 OPLG 从 0 到 1 构建统一可观测平台实践。
基于 OPLG 从 0 到 1 构建统一可观测平台实践
|
数据可视化 搜索推荐 IDE
一款具备零代码和低代码能力的大数据可视化分析平台
什么是低代码平台: “低代码开发”旨在开发人员可以通过编写少量代码就可以快速生成应用程序的一种方法。 使用低代码开发平台类似于使用IDE,因为它包含了一套可以供开发人员直接使用的功能,和一套供开发人员使用的工具。然而,它实际上能提供的远远超过一个传统的IDE。简单来说,低代码开发就是将已有代码的可视化模块拖放到工作流中以创建应用程序的过程。由于它可以完全取代传统的手工编码应用程序的开发方法,技术娴熟的开发人员可以更智能、更高效地工作,而不会被重复的编码束缚住。相反,他们可以将精力集中于创建应用程序的10%部分,并使其具有与众不同的功能。与“低代码”开发相对的另一种方式是编写数千行复杂的代码和语
一款具备零代码和低代码能力的大数据可视化分析平台
|
存储 SQL 分布式计算
沉淀了3年的自研前端错误监控系统,打通你的脉络
沉淀了3年的自研前端错误监控系统,打通你的脉络
沉淀了3年的自研前端错误监控系统,打通你的脉络
|
存储 运维 Kubernetes
深度解读!阿里统一应用管理架构升级的教训与实践
如何既让全公司的研发和运维充分享受云原生技术体系革新带来的专注力与生产力提升,又能够让现有 PaaS 体系无缝迁移、接入到 Kubernetes 大底盘当中,还要让新的 PaaS 体系把 Kubernetes 技术与生态的能力和价值最大程度的发挥出来,而不是互相“屏蔽”甚至“打架”?这个“既要、又要、还要”的高标准要求,才是解决上述 “Kubernetes vs PaaS” 难题的关键所在。
深度解读!阿里统一应用管理架构升级的教训与实践