Elasticsearch 最少必要知识实战教程直播回放



0、题记

由于2019年Elastic开发者大会下午分3个会场,使劲浑身解数也只能串了两个分场,所以下面的分享肯定信息不全面。

全面信息后续建议参考Elastic中文社区的PPT。文中可能的细节错误,欢迎大家留言指正。

您的参会干货和认知习得,也欢迎留言讨论交流。

1、感触

Elastic中国开发者大会2019干货分享_大会

从没有见过哪个大会,能干货连连、高潮此起彼伏、全程无尿点;

从没有见过哪个大会,与会者能持续葆有相当高的热情;

从没有见过哪个大会,过道里也站满了人专心听讲,且没有一个人喊累;

从没有见过哪个大会,嘉宾毫无保留的分享技术干货,即便部分内容打了马赛克,但技术细节没有过分阉割;

从没有见过哪个大会,与会讲者老师知无不言、言无不尽;

从没有见过哪个大会,所有人站着吃盒饭,还非常高兴;

从没有见过哪个大会,会后大家围着分享嘉宾问问题,直到主持人打断、直到开始下一场分享;

从没有见过哪个大会,大家走的时候不断回望,非常恋恋不舍,感叹时间过得太快。

......

这是Elastic一年一度的盛会,这是Elastic爱好者的朝圣日和狂欢日。

近距离接触,才能体会到开源的强大、分享的强大、社区的强大。

近距离接触,才能明白差距,很多一线大厂已远远走在技术的最前沿,在内核层、源码层、业务层做过大量的创新、优化实战。

.....

感慨万千,无以言表.....

2、关键词

满满的一天行程下来,以下几个关键词一直在脑海回荡。

的确,我们不期望所有嘉宾的分享全部记住,也许几个关键词,就能改变我们的底层认知。

2.1、快

快,正如吴斌老师所说,一方面是:检索速度快;另一方面是版本迭代快。

在上半年我们感叹7.X都出来的时候,前几天7.5都发布了。

思考:我们不一定立马将线上环境切换到最新版本,但新版本的特性要做到有所了解,为后续​​选型​​提供技术储备很重要。

2.2、搜索中台

今年中台的热度不亚于前几年的“区块链”的热度。

​搜索中台​​:基于后台为前台提供结构化/非结构化数据汇集、管理、利用、服务支撑。

Elastic中国开发者大会2019干货分享_elastic_02

Elastic中国开发者大会2019干货分享_2019_03

企业中台的优势:

  • 1、快速开发
    接入、搜索实现了可视化配置。
  • 2、统一解决方案
    不直接面向应用,提供统一解决方案,支持二次开发,各系统变化时工作量大幅减少。
  • 3、灵活复用
    功能、数据多次复用,解决方案不局限于某一领域。

思考:这很可能是​​未来搜索的方向​​,你跟不跟?

2.3、智能运维

在超大规模集群的管理方面,将人的经验值通过代码固化或者机器学习的方式运用到管理平台就是智能运维的范畴。

阿里云的EYou和字节头条的DataPlace都已经做的非常成熟,腾讯云也做了相关布局。

这点,非一线大厂可以学习的地方就是:开发、运维线上实战环境问题都可以做成checklist积累。

我们不一定做成可配置、自动化监测平台,但经验的提炼总结时间越长远、价值越大。

2.4、可观测性

社区主席刘征从认知的角度讲解了如何破解云原生的​​可观测性​​。

Elastic中国开发者大会2019干货分享_大会_04

从我们已知道的健康检查、指标、追踪、日志探寻到不知道不知道的未知事件,建议我们从日志发生时间、日志信息、对应服务、对应程序、程序运行位置、受到影响、追踪标识构建高维度结构化日志,释放排错日志的无限潜能,全方位实现日志的可观测性,以便最短时间定位线上问题的根因。

Elastic中国开发者大会2019干货分享_2019_05

我在线下听的时候,反思了另外一个相得益彰的问题:

一方面我们要完备日志的方方面面,以期望出现问题能快速定位到原因;

另一方面我们在发布之前也要做好完备的代码覆盖率检测,确保每个子逻辑都能覆盖。

两者结合才能最大化效能。

2.5、k8s

服务器的虚拟化、容器化是大势所趋。

K8S在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。

Prometheus是近年比较火的开源监控框架,结合grafana进行可视化监控。

Prometheus相对zabbix更灵活点,模块间比较解耦,比如代理模块、告警模块等等都可以选择性配置。服务端和客户端都是开箱即用,不需要进行安装。而zabbix则是一套安装把所有东西都弄好,相对庞大且繁杂。

包括新东方在内的很多大厂都在用,踩过一些坑,但给后来人的​​ES容器化进程​​指明了方向。

2.6、9999

贝壳、腾讯云老师都强调了9999的概念,是:集群稳定性的99.99%的挑战。

正如贝壳老师分享,ES集群稳定性保障可能面临的问题(这里​​非常重要​​,所以我敲了一遍):

  • 1、双集群双机房备份;
  • 2、查询自动熔断降级;
  • 3、主备集群一键分流;
  • 4、故障节点自动迁移;
  • 5、每天定时快照备份;
  • 6、基础监控报警;
  • 7、慢查询监控报警;
  • 8、慢查询统计巡检;
  • 9、慢查询预测熔断。

如何做到9999呢?(​​前方高能​​,建议放慢节奏)

以下的方法论,相信我们可以“拿来主义”,推广到公司使用。

Elastic中国开发者大会2019干货分享_大会_06

  • 1、监控报警——重视监控报警,专人专项。精准报警,提前预警。
  • 2、墨菲定律——任何可能出现的故障都必然出现。
  • 3、蝴蝶效应——配置审核,流程规范;重点变更,回滚策略。
  • 4、未雨绸缪——最坏打算,最好准备;风险预 案,故障演练。
  • 5、包产到户——每个系统,每个子系统,每个模块,责任到人;
  • 6、技术修养——敬畏心,不犯低级错误;责任心、全面性。

2.8、向量检索

当我们在做日志、文本检索的时候,大厂早已开始布局图片等的向量检索。

阿里云的达摩院技术支撑的向量检索、贝壳的未来布局:准备使用Faiss(Facebook开源向量检索)。

思考:未来5G的普及,​​图片、视频的向量检索​​将是未来的趋势。

2.9、源码级和内核级优化

社区报告也显示,有6%+的开发者参与了源码和内核级别的探究,甚至提了PR。

阿里云、腾讯云等基于不同用户的业务场景做了读写优化、分词优化等。

奇安信也是基于源码改动做了​​自己维护分支​​的管理,以满足线上业务环境。

说这个,主要感觉我们平时的参数优化、性能优化、日志问题排查等都太naive、too young、too simple。保持敬畏之心,别满足现状,学习和提升空间大的很!

2.10、稀缺

Elasticsearch认证工程师全国只通过了​​21位​​,很震撼、很稀缺!

Elastic中国开发者大会2019干货分享_elastic_07

思考:从经济学角度,稀缺就意味着贵;同时,稀缺也意味着机会!

感叹难度大的同时,另一个角度看:我们努力都有了方向。

3、7.X 必知新特性

以下是挑重点整理,详情建议查看朱杰老师PPT分享。

3.1  enrich processor

新的pipeline特性——使用enrich processor来简化数据的摄取。

即:使用enrich processor在ingest期间将现有索引中的数据添加到传入文档中。

3.2 Flattened field

产生背景:防止集群mapping暴涨。

具体实现:Flattened field作为一个新的字段类型,暴涨的字段往里填充,但是其里的所有字段都是keyword类型,不支持全文检索和高亮等一些非keyword支持的特性。

3.3 rare terms aggregation

中文名:稀有聚合。

产生背景:试想:要取某个分类的Top1的值,用terms聚合+排序在多分片的场景是不精确的。

而:稀有聚合就是为了解决精确性应运而生。

更多细节建议查看:

​https://www.elastic.co/guide/en/elasticsearch/reference/7.5/breaking-changes-7.5.html​

3.4 kibana 拖拽智能分析

贴合用户很强大的功能。

4、为什么参加Elastic开发者大会?

今天见到了Medcl、吴斌、魏彬、张超、刘征等Top N Elastic大拿,非常兴奋。喜悦之情很像脑残粉见到自己的偶像。

以下部分是我参会前在地铁里的思考,首发在了星球里。

一天下来,感觉收货满满、以下几点小目标都达成了。

4.1 提升认知

一个人在公司里专研产品或者项目,最多是一个团队或者多个团队协作。

公司内部的技术体系一致,时间久了,你会发现大家水平一致,甚至经常怀疑架构师也就那水平。

这些,可能就是技能或者认知天花板,急需破局。

人们认知的四个维度:我知道我知道,我知道我不知道,我不知道我知道,我不知道我不知道。

我们想打开:我不知道我不知道的窗户。

Elastic原厂工程师、BAT的大佬能现在更高,以俯视全局的姿态帮我们捅破窗户纸!

我们苦苦探寻摸索的路,很可能是低效能的路、很可能有极大优化空间,大佬们的分享就是给我们认知前行的某个方向提前踩坑,告诉你坑都帮你踩了,告诉你​​最短路径​​,你听不听?

4.2 跟未来的自己对话

实际公司环境决定,很多条件我们不具备,比如:PB级大数据,上百台高性能服务器集群,数据实时同步,高可用等,但是未来业务发展可能会用到。

我们的疑惑,我们的未来可能遇到的坑,一些一线大厂的工程师早就遇到过且很好的解决了。

随着水平提高,未来的你肯定在公司一点点晋升或者跳到大厂,提前习得一些哪怕一点点有帮助东西,都是有好处的。此刻的我们现在台下,未来的我们必然站在台上将自己的经验侃侃而谈。

4.3 习得搜不到的知识

平时,我们学知识途径,看书、看博客、看文档、社区提问、买视频越来越丰富。

但你是不是和我一样:很多东西,由于没有实战过,google,stackoverflow都不好搜到,更不用说:​​看书的滞后​​了。

很多现在光鲜实战经验,都是线上踩坑的血淋淋的教训总结。

他山之石可以攻玉,也是这个道理。我们要习得别人的“他山之石”。

4.4 和大佬面基

各个行业都有领域的真大佬,相信明天的现场也会有很多社区里帮助过我们的大佬。

面基一时爽,一直面基一直爽。

大佬们醍醐灌顶的一句点拨,胜过我们闷头苦读十年书。有点夸张,但期望灵光一现。

4.5 掌握业界最新动态

低头前行和抬头看路两不误,脚踏实地和仰望星空两不误。

很多时候,低头久了不知道前行的方向了。而,新技术的普及和布道就是我们前行路上的灯。

实际很多公司还在用es5.x,2.x甚至更低版本,不好升级也体会不到高版本的性能优势。

5、小结

可能会有人说,这玩意我实际业务用不到,大厂的场景和问题我们小厂根本遇不到,有必要知道吗?

我反问一句:达芬奇临死前还在琢磨“啄木鸟的舌头的长度?" 有用吗?

现在不见得有用,但要以发展的眼光看待问题。

对技术保持敬畏之心、保持孩童般好奇之心,会使我们走的更远。

更多细节,建议大家及时关注社区分享!