除了谷歌和百度还必须了解的 Elasticsearch 的前世今生必看

1,519 阅读6分钟

当说到搜索时,大部分人可能只会说谷歌、百度等,但在企业内部的数据搜索还面临许多挑战,这就需要依赖开源的搜索技术,Elastic 公司就诞生了。本文讲讲 Elasticsearch 前世今生,可以让我们从整体上理解这个产品这家公司。生活中你遇到不懂的问题找百度或者谷歌,而在一个网站上面,比如淘宝,京东等电商买东西,去B站搜索好玩的视频,去抖音搜索等等,这些网站的搜索技术基本都是依赖于下面要说的这家公司Elastic。

诞生的前夜

许多年前,一个刚结婚的名叫ShayBanon的开发者,跟着他的妻子去了伦敦,他的妻子在那里学习厨师。在寻找一个赚钱的工作的时候,为了给他的妻子做一个食谱搜索引擎,他开始使用 Lucene 的一个早期版本。

直接使用 Lucene 是很难的,因此 Shay Banon 开始做一个抽象层,Java 开发者使用它可以很简单的给他们的程序添加搜索功能。 他发布了他的第一个开源项目 Compass。

据说,Shay 的妻子还在等着她的食谱搜索引擎…

食谱搜索引擎没做完, 却创建了一个开源项目Compass,这是2004年

诞生时刻

后来 Shay Banon 获得了一份工作,主要是高性能,分布式环境下的内存数据网格。这个对于高性能,实时,分布式搜索引擎的需求尤为突出,他决定重写Compass,把它变为一个独立的服务并取名 Elasticsearch。

第一个公开版本在2010年2月发布,从此以后,Elasticsearch 已经成为了 Github 上最活跃的项目之一,他拥有超过300名 contributors(目前736名 contributors )。 一家公司已经开始围绕Elasticsearch提供商业服务,并开发新的特性,但是,Elasticsearch 将永远开源并对所有人可用。

快速发展

  • 2012年,Shay 成立了商业的公司Elasticsearch来对外提供商业的产品和服务。

  • 2014年,成立公司仅仅18月以后,获得7000万美金的融资。

  • 2015年,公司名称从Elasticsearch改为Elastic ,因为公司的主要产品已经从单纯的Elasticsearch变为ELK(Elasticsearch ,Logstash和Kibana)。

  • 2017年10月13日宣布与阿里云签署达成多年的战略合作伙伴关系,并提供新的阿里云 Elasticsearch 服务。这项新的服务将把 Elasticsearch、Kibana、及所有 X-Pack 的功能托管在阿里云上,让客户能在阿里云上一键部署。

  • 2018年美国时间10月5号,成功上市。股票(股票代码:ESTC)更是大涨,发行价为 36 美元,最高涨至 74.20 美元,最终收盘价为 70.00 美元,涨幅 94.44%,几乎翻倍。从公司成立到上市仅用了 8 年,超过 3.5+ 亿的产品下载,100万+ 名开发人员及 5,500+ 个客户。上市当天CEO Shay Banon 亲自发文感谢

  • 2019年5月23日 宣布 Elastic 与腾讯云达成全球合作关系。

腾讯云 Elastic 服务将会与 Elastic 在自己 Elastic Cloud 上提供的 Elasticsearch Service(以及与 Elastic 合作的其他平台之上的服务)保持一致,让用户不仅可以使用 Elastic Stack 的全部功能以及 Elastic 越来越丰富的解决方案(例如 App Search、Site Search、Enterprise Search、Logging、APM、Metrics、Security、Business Analytics 等等),还能在多种云服务之间的无缝转换。

Elasticsearch 版本迭代


date ES version
on 10 Apr 2019 7.0.0
on 15 Nov 2017 6.0.0
on 26 Oct 2016 5.0.0
on 22 Oct 2015 2.0.0
on 13 Feb 2014 1.0.0
on 8 Feb 2010 0.90.x -> 0.4.0

目前最新版本已经到 v7.3.2

Elastic 可以帮你解决什么问题?

试想一下:

在一个风和日丽的下午,你手机上收到一条告警短信,于是点击链接,打开 Kibana 的监控仪表盘,发现某台服务器的 CPU 达到 100% 了。

于是,你顺手点击过滤这台服务器的所有相关信息,可以看到相关的日志显示,是这台服务器上面部署的某一个业务服务的 QPS 有显著下降,然后过滤到这个业务的日志,发现有很多异常的日志信息,前端 Nginx 代理日志还显示有很多请求被拒绝,看样子是后端的微服务处理能力达到瓶颈。

这个时候,继续点击 APM 的分析面板,切换到事务和会话分析界面,看到有很多数据库链接处于开启状态。

你点击查看调用代码,立马就找到了性能瓶颈的原因,原来是某个类的某个方法调用 MySQL 却没有及时释放链接造成了泄露,于是修改这行代码,提交上线,问题解决。然后,你可以若无其事地继续浏览相亲网站啦。

尽管这是一个假想的例子,但是可以看到,基于 Elastic Stack ,你可以覆盖一整套完整的,从全局性能监控到具体代码级别的排障和解决问题的过程,并且使用起来要比很多现有的方案更加高效和便捷。

这个故事说明了 Elastic Stack 平台的魅力,技术可以改变你的生活。

最近Elastic 发展真是太快了,推出了各种开源产品使用:

如果你没有一个强大的技术团队,还可以通过云端部署,交给更专业的人处理,更快捷高效。

Elasticsearch在智能运维领域的应用也非常广阔, 2017年5月4日官方推出 Elastic Stack Machine Learning,并将 Prelert Machine Learning 技术完全集成到 Elastic Stack。下面一篇阿里的应用参考:

阿里云Elasticsearch在智能运维领域的应用

未来属于搜索

这个时代是数据的时代,信息的大爆炸,如何筛选信息,过滤信息成为了一个高手必会的技能,不然会被天大数字的信息,压的喘不过气。搜索的技术正式这个时代的一把利器,未来搜索可以帮我们做很多意想不到的事情。

接下来,会一步一步通过Elastic 相关技术的学习,起先先通过 Elasticsearch 的入口。

下一篇会带来,如何规划高效能学习Elasticsearch 的技术,欢迎订阅关注我。

END

如有收获,请帮忙转发,后续会有更好文章贡献,您的鼓励是作者最大的动力!

欢迎关注我的公众号:架构师的修炼,获得独家整理的学习资源和日常干货推送。