PB级数据检索平台 ElasticSearch在滴滴的实践 张亮

QCon大会

2019/06/25 发布于 技术 分类

QCon  QCon2019 

文字内容
1. 自我介绍 PB级数据检索平台 ElasticSearch 在滴滴的实践 张亮 高级专家工程师
2. 自我介绍 目录
3. 自我介绍 张亮 高级专家工程师/TGO会员 • 2011.04 ~2014.04 华为 云盘研发与架构 • 2014.05~now 滴滴出行 负责数据通道、Kafka、ES引擎建设 • 具有丰富的大数据架构与引擎建设的经验
4. 自我介绍 目录 Ø 平台简介 Ø 平台建设 Ø 总结与规划
5. 平台简介 自我介绍 1 ES简介 2 业务场景 3 关键挑战 4 平台概况
6. ES简介 自我介绍 Ø ElasticSearch是基于Lucene构建的开源、分布式、高性能、高可用、可伸缩、Restful 接口的全文检索和分析系统。
7. 业务场景 自我介绍 Ø Ø Ø Ø 为线上核心搜索业务提供引擎支持 作为RDS从库,海量数据检索需求 解决公司海量日志检索问题 为安全场景提供数据分析能力
8. 关键挑战 自我介绍 • 1000+应用方,其中20+线上应用、200+准实时应用 业务体量 • 3500+节点,40000+索引,2600+索引模板 • 时效性、性能、分片规则、插件等多样需求 • 2000w/s TPS,5w/s QPS • 14W+查询模板,单索引100+应用查询 稳定性 • 日志&安全集群99.9%,准线上集群99.95%,线上集群99.99%跨机房容灾 • 95%的存储是SSD,SSD的成本是HDD的3倍 • 95%的查询只命中最近3天,日志原文 全链路至少存储了3份,25%的索引字段从未被检索 成本 • 8PB+存储容量,月成本350W+
9. 平台概况 自我介绍 产品层 索引服务 • 索引模版创建、更新、删除 • 数据清理、索引重建 存储优化 服务层 DSL服务 • • • • • 存储索引分离 • Mapping优化 • 冷热数据分级 • 存储周期优化 模板抽象 回放压测 实时限流 实时熔断 集群元数据 网关层 管控层 租户认证 • Mapping变更 • Quota变更 稳定性建设 • 资源隔离 • DSL审核 • 版本升级 • 灾备切换 数据同步 资源治理 • • • 跨集群访问 ES Cluster Manager 安装、升级、监控、运维 平台运营 • • • • 容量规划 健康分析 血缘建设 索引元数据 应用限流 • RDS2ES • Hive2ES • Log2ES 慢查报告 异常查询 账单统计 权限审计 DSL元数据 多版本兼容 DSL审核 IndexTemplate Manager 租户管理、Quota管控、 DSL模板管控 引擎层 didi-es 2.3.3/6.6.1 Fast-Index 资源层 Docker VM Safe-Plugin 物理机
10. 自我介绍 目录 Ø 平台简介 Ø 平台建设 Ø 总结与规划
11. 自我介绍 1 服务效率 2 运维效率 3 平台效率
12. 服务效率 自我介绍 资源申请一周,需求接入一周,稳定性没保障 需求接入5分钟,资源申请5分钟,稳定性有保障 自建集群成本高,资源利用率低 稳定性没保障 不同场景 SLA要求的多样性 最佳实践需要沉淀 接入效率低 学习与使用成本高 服务地图 系统集成 用户自助 VS 索引模板 服务架构 资源抽象 租户设计
13. 服务架构 自我介绍
14. 服务地图 自我介绍 Ø Appid账号申请 Ø 索引模板创建 Ø Mapping设置 Ø 数据同步OR写入 Ø 数据探查 Ø 索引查询与优化
15. 自我介绍 1 服务效率 2 运维效率 3 平台效率
16. 运维效率 自我介绍 问题定位效率低,日常运维效率低 高频运维操作自助完成,90%问题5分钟定位 日常运维操作效率低,风险高 无二次确认与审计 运维平台化 ES集群管控 索引模板管控 VS 指标体系缺失 监控体系化不足 运维视角 监控体系化 用户视角 统一元数据
17. 运维平台化 自我介绍 索引模板管控 ES集群管控
18. 监控体系化 自我介绍 Ø 指标体系建设 -> 统一元数据 Ø 监控体系化 -> 运维视角, 用户视角
19. 自我介绍 1 服务效率 2 运维效率 3 平台效率
20. 平台效率 自我介绍 自建成本高、稳定性没保障 稳定性:日志场景99.9%,准实时场景99.95%, 线上场景99.99%;存储成本云厂商的1/3 TPS/QPS潮汐效应 查询的多样性 查询不可控 稳定性建设 事中 查询限流 查询熔断 事前 资源隔离 查询审核 事后 快速止损 快速恢复 VS 数据时间维度价值耗散 索引的“滥用 SSD VS HDD 成本优化 架构优化 资源治理
21. 稳定性建设--事前 自我介绍 Ø 资源隔离 Ø DSL审核
22. 稳定性建设--事中 自我介绍 Ø 查询限流 Ø 查询熔断
23. 稳定性建设--事后 自我介绍 Ø 版本升级 Ø 灾备切换
24. 成本优化—耗散点分析 自我介绍
25. 成本优化—关键抓手 自我介绍 Ø 架构优化 ① ② ③ ④ • 容量规划 • 资源虚拟化 存储索引分离 Mapping自动优化 分级存储 资源虚拟化 Ø 资源治理 ① 索引健康分 ② 容量规划 • 存储索引分离 • 索引血缘关系 95%的存储是 SSD 日志原文重复 存储3次 资源利用不均 衡 按场景重复存 储 25%的索引字 段从未被检索 95%的查询只 命中最近3天 数据 大量索引未使 用 • Mapping自动优 化 • 索引健康分 查询范围误用 • 冷热数据分级存 储
26. 成本优化--架构优化 自我介绍 Ø Ø Ø Ø 存储索引分离 分级存储 Mpping自动优化 资源虚拟化
27. 成本优化--资源治理 自我介绍 Ø 索引健康分 Ø 容量规划
28. 自我介绍 目录 Ø 平台简介 Ø 平台建设 Ø 总结与规划
29. 总结与思考 自我介绍 • SDKàProxyà引擎à自研 迭代 平台 打磨 • 市场规模,人员能力,边际效应 à 分工与分层 • 插件式扩展、差异化竞争 • 服务无界,定位有界、责任有界 服务 • 自由的代价 à 标准化、个性化、特色化 • 产品思维 VS 技术思维 • 效率革命 à 平台化 效率 • 平台治理 à 平台价值 • 时间考量 à 正确的事 VS 容易的事 à “不耐”的程度
30. 发展规划 自我介绍 解架构之 • 突破引擎元数据瓶颈,提升运维效率,降低成本à ES-Federation • GateWay能力插件式下沉引擎,减少中间环节,与社区融合,优化性能 “熵” 引擎 建设 提迭代效 • 100个节点集群滚动重启2天提升至1个小时 • 架构层面解决跨大版本升级之“痛“ 2.2.3 à 6.6.1 http restful 率 • 多租户查询、CBO、RBO的查询优化器建设 聚焦价值 问题 • 数据体系化 à 数据智能化 • 基于Ceph、Docker,改造ElasticSearh支持Cloud Native的存储计算分离
31. 自我介绍
32. 自我介绍