摘要:本文整理自阿里巴巴资深技术专家邓万禧在 阿里云Elasticsearch 自研引擎年度发布 的演讲。主要内容包括:
- 年度回顾
- 泛日志场景机会与挑战
- Elasticsearch 日志 Serverless 服务1.0
一 、年度回顾
1、Elasticsearch(简称 ES)发展进程:
a. 2018年:Elasticsearch 上云
- 兼容开源版本,开箱即用;
- 多集群运管效率提升;
b. 2019年:ELK 生态组件全托管
- Elasticsearch5.5/6.3/6.7/7.4云上多版本发布;
- Beats/Logstash/Kibana 云上全托管服务;
c. 2020年:APack 引擎通用增强
- 计算存储分离架构;
- 索引压缩插件;
- 时序查询剪枝;
- 物理复制插件;
- Faster-bulk;
d. 2021年:日志增强版
- IndexingService:写入 Serverless 服务;
- 自研海量存储引擎1.0:存储 Serverless 服务;
- Elasticsearch TSDB 时序引擎(与社区共建);
e. 2022:日志 Serverless 服务
- APack2.0日志执行引擎;
- 自研海量存储引擎2.0:智能冷热存储;
- 云原生数据采集。
2、发展阶段
在2020年以前,Elasticsearch 主要是进行产品通用能力的建设:
- ES 产品功能丰富,适用场景广泛,客户分布在多个甚至十多个集群,通用增强能给客户提供更好的体验,比如配置管理、监控报警、插件管理等;
- ES 生态组件丰富,希望客户能得到一站式体验,从而降低使用成本;
- 在不影响客户兼容性的情况下,增强 ES 引擎的能力,因此通过插件中心发布查询分析、稳定性增强、写入优化、监控报警等二十多个插件;
通过以上三方面工作,从管控、生态、内核三方面全面增强阿里云 ES 产品能力,解决 ES 企业级客户上云提效的需求。
2020年以后,随着上云客户对降低成本的需求,ES 重点针对日志场景提供日志增强版,集成 Indexing Service 和自研海量存储引擎子产品解决日志场景需求。
二、泛日志场景机会与挑战
企业数字化转型过程中,大量企业通过 Elasticsearch 满足日志检索、存储、归档审计的需求。
1、泛日志场景的挑战
随着企业数字化转型和互联网企业对数据安全的关注,泛日志数据管理需求愈发重要,如云原生服务及系统日志、安全审计、互联网企业的用户型分析等;同时 ELK 生态全观察功能也越来越丰富和完善,更多企业选择 ELK 开源生态来解决业务需求。泛日志场景的挑战主要有以下三个方面:
a. 高写入吞吐和弹性
千万级写入:客户将 ES 用于泛日志场景,首先解决的是数据接入问题,而日志场景经常是写多读少,很多客户的日志写入量都非常大,达到TB级以上,因此提供高吞吐写入,是 ES 首先要解决的问题;
快速扩展能力:此外还存在写入突增和峰谷差异大问题,比如由于扩容不及时造成写入拒绝;
稳定性保障:为保障线上服务的稳定性,需要相对专业的 ES 引擎支持,和对内部机制的理解;
b. 海量日志存储成本
包括长周期日志存储、数据冷热特点明显、归档存储需求等。
泛日志数据是典型的带时间属性的数据,数据规模会随着时间逐步累积,因此大中型客户的存储规模非常大,给 SRE 人员增加了额外的运维成本;
c. 分析性能瓶颈
如 Ad-hoc 查询、统计分析需求、多租户查询等。
泛日志场景查询通常是对数据进行多维度统计分析,这类查询的资源控制和性能会产生问题。
2、阿里云Elasticsearch 产品解决方案-日志增强版
针对上述挑战,阿里云 ES 推出日志增强版,在产品架构上引入了三个组件:Indexing Service、自研海量存储引擎和 APack。
a. Indexing Service
读写分离架构,一个超大的 ES 集群阵列,专做 Indexing Build,每个客户可灵活使用。
- 高性能写入:ES 内核层优化将单位资源写入性能提升了150%,并通过“削峰填谷”的云原生特性为客户在单位时间内保留海量算力;
- 物理复制:通过 segment 级的实时物理复制,平均数据延迟在百毫秒级内;
- 异地容灾高可用:异地多活架构,服务本身的高可用性;
b. 自研海量存储引擎
低成本索引存储,服务化多级存储及索引调度能力,无需关注存储介质。
- 高查询性能:多级存储及 cache 优化,用更低的费用获得更优的 IOPS;
- 计算存储分离:存算资源完全解耦,提升索引迁移及恢复的速度,集群扩展性有效提升;
- 全自动索引生命周期管理:基于简单的索引周期配置,智能化托管索引生命周期调度的全过程;
- 异地容灾高可用:异地多活架构,存储服务本身的高可用性保障;
c. Apack,内核定制优化。
三、Elasticsearch 日志 Serverless 服务1.0
2022年,阿里云将ES日志增强版升级为日志 Serverless 服务产品,并正式发布日志 Serverless 服务1.0。
1、日志 Serverless 服务1.0的核心价值
a. 高吞吐:
云端写入10倍能力提升,解决时序日志数据高并发写入瓶颈;
b. 性价比:
成本降低70%,优化集群计算/存储资源成本,提供按需使用,按实际流量/存储空间付费;
c. 易运维:
云原生 Serverless,降低大规模集群运维复杂度,支持秒级弹性伸缩和全托管式免运维服务;
2、内核技术架构
在 ES 日志增强版技术架构中,最下层是云原生管控服务平台,上面是 Indexing Service、自研海量存储引擎和 APack。
a. 云原生管控服务平台:
解决资源管理、多租户调度、安全审计、企业级监控报警和智能诊断等问题,以提升客户产品运维体验。目前关注的问题主要是变更效率,包括:可灰度、可监控和可回滚三个核心问题;
b. Indexing Service 索引构建服务:
主要解决高吞吐和弹性问题,通过读写分离架构,将Indexing Service作为独立服务,同时通过存算分离,独立Indexing Service所需资源,用户只需关注写入吞吐,按实际使用量付费。
平台的两个主要工作:
第一是通过物理和逻辑隔离,实现海量客户的多注入构建平台;第二,流式索引管理和资源管理,为客户提供按需扩容和按量付费的云原生 Serverless 能力;另外,还集成了内核增强特性,和针对阿里云的内核定制优化,以提升写入索引构建性能;
c. 自研海量存储引擎:
针对存储成本的思考,从冷数据存储出发,引入存算分离架构,冷存集成支持阿里云对象存储OSS,查询性能通过索引格式调优,多级 Cache 缓存和混合储存;
d. APack 执行引擎:
主要针对多租户查询 Serverless 服务,实现细密度查询租户控制和资源隔离,降低 SRE 集群管理难度和成本;另外根据自研海量存储引擎产品特性和日志查询特点,定制预读和剪枝策略,以提升查询性能。
3、服务特性:
a. 高性价比日志存储引擎
- 读写分离架构:快速弹性伸缩 + 降低资源冗余;
- 存算分离架构:基于 OSS 降低冷数据存储成本;
- 索引压缩:ZSTD 压缩、日志场景配置调优等;
- 性能优化:针对日志场景写入和查询分别定制优化;
b. 开箱即用的 Serverless 服务
- 独立索引构建服务:免运维、按写入吞吐量付费;
- 定制索引存储服务:
- 用户可按需购买:降低冗余的存储成本;
- 智能冷热分离:降低用户区分冷热的运维成本;
- 云原生管控服务:提升用户服务变更体验和效率。
END
阿里云 ES 团队积极参与社区建设,与 Elasticsearch 社区和国内团队紧密合作,基于 Elasticsearch 在云原生的实践,推出了包括开发者报告、Elasticsearch 全观测、技术解析等电子书,对 ES 感兴趣的朋友可以多多关注。同时,在 ES 社区也会有丰富的线上线下活动,欢迎大家参与。