基于 ES 的日志Serverless 服务

本文涉及的产品
Serverless 应用引擎 SAE,800核*时 1600GiB*时
函数计算FC,每月15万CU 3个月
简介: 本文整理自阿里云高级产品专家赵弘扬(洪阳)在 阿里云Elasticsearch 自研引擎年度发布 的演讲。

摘要本文整理自阿里云高级产品专家赵弘扬(洪阳)在 阿里云Elasticsearch 自研引擎年度发布 的演讲。主要内容包括:

  1. 阿里云Elasticsearch 业务
  2. 阿里云Elasticsearch 日志Serverless 服务
  3. 阿里云Elasticsearch 技术演进之路


一、阿里云Elasticsearch 业务


1业务规模

阿里云Elasticsearch 业务(简称 ES),从2017年至今已经服务了几千个客户,数据规模达20PB,在公共云上拥有10000+集群,10W+节点规模,是一个成熟的云原生服务。


2Elasticsearch 在日志场景通常会遇到的问题

在企业的数字化转型过程中会生成大量日志数据,企业通过 Elasticsearch 满足日志检索、存储、归档审计的需求,而这些需求归根结底都会落到成本的增加,体现在以下三个方面:

  • 海量日志数据:
    日志和业务数据的根本区别在于,日志规模的大小与业务系统的复杂度相关,在业务量不大的情况下,也会生成海量日志数据,会产生大量的数据存储开销;
  • 并发性能瓶颈:
    海量日志的采集、消费或存储,都会产生并发性能瓶颈,进而引发稳定性风险;
  • 大规模集群:
    海量日志数据的检索、归档、监控等,需要维护复杂的运维系统,这样大规模的集群的运维复杂度风险较高;


image.png


3、风险解读

在正常情况下,流量到 ES 协调节点,然后将数据写入 Data Node;当流量变成正常情况的10倍时,对 ES 集群的压力就变得很大,一系列问题会接踵而来。


image.png


这种情况可以通过集群扩容的方式进行缓解,但扩容的同时又会产生新的问题:

a. 稳定性风险

  • 事先演练扩容:扩容过程复杂,演练仿真度模拟困难,风险降低困难;
  • 应急扩容:应急扩容对业务有不可逆的负面影响;


b. 运维复杂度风险

  • 集群规模增加,硬件运维/系统运维成本倍数增加;
  • 索引数据的管理复杂度增加,数据稳定性管理成倍增加;

c. 成本风险

  • 流量波动日趋常态;
  • ES 集群水位冗余量极大(50%以上),成本冗余;



二、阿里云Elasticsearch 日志Serverless 服务


1日志Serverless 服务能力解读

基于上述问题和风险,阿里云引入了两个新功能:


image.png


a. IndexingService

Indexing Service,是一个超大的 ES 集群阵列,专做 Indexing Build,每个客户可灵活使用,它具有以下特性:

  • 高性能写入:ES 内核层优化,将单位资源写入性能提升了150%,并通过“削峰填谷”的云原生特性,为客户在单位时间内保留海量算力;
  • 物理复制:通过 segment 级的实时物理复制,平均数据延迟在百毫秒级内;
  • 异地容灾高可用:异地多活架构,服务本身的高可用性;

图中的灰色虚线内是用户的 ES 集群,当流量洪峰到来时,用户可以将流量转发至 Indexing Service 的 SLB 中进行 build index,然后通过 segment merge 的方式,回到用户 ES 集群的 Data Node。这样通过外部的云上弹性服务,减轻了用户 ES 集群压力,实现秒级弹性扩缩容的需求。

 

b. 自研海量存储引擎

自研海量存储引擎服务化,多级存储及索引调度能力,无需关注存储介质。服务化能力指用户无需为 ES 数据节点预留空间,可以做到按需存储数据,以解决资源冗余的问题,进而降低成本,它具有以下特性:

  • 高查询性能:多级存储及 cache 优化,用更低的费用获得更优的 IOPS;
  • 计算存储分离:存算资源完全解耦,提升索引迁移及恢复的速度,有效提升集群扩展性;
  • 全自动索引生命周期管理:基于简单的索引周期配置,智能化托管索引生命周期调度的全过程;
  • 异地容灾高可用:异地多活架构,存储服务本身的高可用性保障;


2、日志Serverless 服务价值解读

a. Serverless 日志写入服务:Indexing Service

通过读写分离架构,ES 集群的数据写入在云端服务进行托管加速,为用户实例和云端服务搭建桥梁,依托云端弹性计算能力,突破本地集群的物理资源限制。

对比开源 ELK 生态:

  • 云端10倍写入弹性扩缩,并实现秒级切换;
  • 计算资源降低50%以上,按需使用,按实际写入流量付费;

 

b. Serverless 日志存储服务:自研海量存储引擎

基于计算存储分离架构及多层存储介质混合,提供可靠的海量弹性低成本存储并保证查询性能,无须提前预留集群存储容量,根据实际数据的存储量按量计费。

  • 超低存储成本:相较于普通云盘存储成本降低70%;
  • 单集群 PB 级数据存储查询:相比 Searchable snapshot 查询,性能提升10倍,无须额外数据备份,长时间数据存储随时可查;


3、Elasticsearch 日志Serverless 服务发布

全球范围内首个在云上提供 Serverless 能力的云原生 Elasticsearch 服务,其核心价值体现在三个方面:

  • 云端写入10倍能力提升,解决时序日志数据高并发写入瓶颈;
  • 成本降低70%,优化集群计算/存储资源成本,提供按需使用,按实际流量/存储空间付费;
  • 云原生Serverless,降低大规模集群运维复杂度,支持秒级弹性伸缩和全托管式免运维服务;

 

4、真实案例收益

a.  客户场景描述

汽车行业的 IT 系统,大多是分批建设,技术架构及系统复杂有历史包袱,IDC、多云架构比较普遍。新兴的业务部门,一方面需要满足政策合规要求,一方面希望对整体日志数据进行价值挖掘,通常会遇到如下问题:

  • 新业务场景日志增量快:要有可靠的扩展效率;
  • 日志数据规模超大:需要兼备低存储成本和高性能的要求;
  • 历史包袱重:要有快速对接原有云上/云下的 IT 系统的能力;
  • 未来应用场景复杂:未来人与车、车与车基、车与车等丰富的应用场景丰富,要能适配未来的变化;

 

b.  方案构架及价值点:

  • 相同 ES 集群规模,提升近10倍写入能力;
  • 相同业务流量,降低近70%计算成本;
  • 100%的开源 Interface,与存量 IT 系统高效衔接;
  • Elasticsearch 在安全、日志方向持续发力,未来应用场景将越来越丰富。


三、阿里云Elasticsearch 技术演进之路


image.png

Elasticsearch 未来的发展会继续在云原生Serverless 上进行演进和迭代,在日志场景下优化成本,通过服务化的能力提升日志场景中的ES产品的易用性,帮助客户解决日志场景下前置日志链路上的问题。

同时,与 ES 社区就 Elasticsearch TSDB 时序引擎进行共建,相信很快可以在未来的 ES 新版本中推出 TSDB 能力。



END


阿里云 ES 团队积极参与社区建设,与 Elasticsearch 社区和国内团队紧密合作,基于 Elasticsearch 在云原生的实践,推出了包括开发者报告、Elasticsearch 全观测、技术解析等电子书,对 ES 感兴趣的朋友可以多多关注。同时,在 ES 社区也会有丰富的线上线下活动,欢迎大家参与。

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
1天前
日志管理服务
日志管理服务 1.保证rsyslogd服务运行 查询是否启动 ps aux | grep "rsyslog" | grep -v"grep" 查询rsyslogd 自启动状态 systemctl list-unit-files | grep "rsyslog"
|
3天前
日志管理服务
日志管理服务 1.保证rsyslogd服务运行 查询是否启动 ps aux | grep "rsyslog" | grep -v"grep" 查询rsyslogd 自启动状态 systemctl list-unit-files | grep "rsyslog"
|
19天前
日志管理服务
日志管理服务 1.保证rsyslogd服务运行 查询是否启动 ps aux | grep "rsyslog" | grep -v"grep" 查询rsyslogd 自启动状态 systemctl list-unit-files | grep "rsyslog"
|
3天前
日志管理服务
日志管理服务 1.保证rsyslogd服务运行 查询是否启动 ps aux | grep "rsyslog" | grep -v"grep" 查询rsyslogd 自启动状态 systemctl list-unit-files | grep "rsyslog"
|
12天前
日志管理服务
日志管理服务 1.保证rsyslogd服务运行 查询是否启动 ps aux | grep "rsyslog" | grep -v"grep" 查询rsyslogd 自启动状态 systemctl list-unit-files | grep "rsyslog"
|
7天前
日志管理服务
日志管理服务 1.保证rsyslogd服务运行 查询是否启动 ps aux | grep "rsyslog" | grep -v"grep" 查询rsyslogd 自启动状态 systemctl list-unit-files | grep "rsyslog"
|
9天前
日志管理服务
日志管理服务 1.保证rsyslogd服务运行 查询是否启动 ps aux | grep "rsyslog" | grep -v"grep" 查询rsyslogd 自启动状态 systemctl list-unit-files | grep "rsyslog"
|
10天前
日志管理服务
日志管理服务 1.保证rsyslogd服务运行 查询是否启动 ps aux | grep "rsyslog" | grep -v"grep" 查询rsyslogd 自启动状态 systemctl list-unit-files | grep "rsyslog"
|
15天前
日志管理服务
日志管理服务 1.保证rsyslogd服务运行 查询是否启动 ps aux | grep "rsyslog" | grep -v"grep" 查询rsyslogd 自启动状态 systemctl list-unit-files | grep "rsyslog"
|
11天前
日志管理服务
日志管理服务 1.保证rsyslogd服务运行 查询是否启动 ps aux | grep "rsyslog" | grep -v"grep" 查询rsyslogd 自启动状态 systemctl list-unit-files | grep "rsyslog"

相关产品

  • 函数计算
  • 下一篇
    无影云桌面