当说到搜索时,大部分人可能只会说谷歌、百度等,但在企业内部的数据搜索还面临许多挑战,这就需要依赖开源的搜索技术,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
如有收获,请帮忙转发,后续会有更好文章贡献,您的鼓励是作者最大的动力!
欢迎关注我的公众号:架构师的修炼,获得独家整理的学习资源和日常干货推送。