赵弘扬(洪阳)
阿里云高级产品专家 阿里云Elasticsearch产品负责人
阿里云Elasticsearch百分之百兼容开源版本,在阿里云上提供了Elasticsearch、Kibana、Logstash、Beats等开源全托管的产品服务能力,为客户提供了结构化与非结构化的检索能力、查询能力以及分析能力。
2017年,Elasticsearch正式商业化之初,我们便与之有了非常紧密的战略合作,在阿里云上也向用户免费提供了X-Pack等一系列白金版高级特性。除此以外,多年来我们也一直坚持向用户提供集群级别一键高可用部署、弹性伸缩、集群高级监控、告警以及运维相关功能,为云上用户提供了更稳定、成本更低廉、性能更好的云上检索与分析服务
Elasticsearch具有以下四大优势:
第一,兼容开源高级特性,免费提供包含授权认证、角色控制、监控告警、SQL、机器学习等能力。
第二,云原生平台。开箱即用,并且整合了一系列Elasticsearch分布式集群运维能力的云原生管控平台,并且在去年对平台做了统一升级,可以更高效、更可靠地运管ES集群。
第三,自研增强引擎特性。在Elasticsearch引擎本身的enhancement上投入了大量精力与时间,在云上提供了一系列增强特性,包括读写分离与存算分离等一系列能力。
第四,安全高可靠。在云上提供更高安全、更高可用的产品服务。
从2017年正式商业化至今,我们一直立志于全托管开源Elasticsearch产品与软件,同时也精益求精地做了一系列产品,涵盖了管控维度到引擎维度的enhancement。我们围绕着更高性价比、更高可用性以及更好的易用性与灵活性,为客户提供了一系列云上更高阶的能力。比如容灾能力、冷热分离存储能力、弹性伸缩、诊断与巡检相关能力等。同时在内核维度提供了比如加速查询效率的查询减脂、优化存储效率的压缩能力、为了更好可用性的集群QS限流功能以及慢查询隔离的能力。
经过以上一系列封装,最终在云上提供了Elasticsearch全栈的开源全托管软件服务能力。
在此基础之上,我们于2022年开始面向市场推出了Serverless的产品服务模式,目前处于公测阶段。希望基于一种新的服务模式,使得用户以用更低的成本、更好地用于自己业务场景里的需求。
我们花了将近6年时间,践行了从开源Elasticsearch到阿里云Elasticsearch的大幅度跨越。在未来,也会秉持着同样的精神,更好地优化云上的资源利用效率,让客户在阿里云上更好地使用这款非常优秀的开源产品。
开箱即用、弹性伸缩等ES作为分布式集群的能力,降低了用户的使用门槛以及扩缩容时不必要的运维成本开销。
在集群执行与运行过程中,经常会遇到一系列因为水位、抖动带来的一系列问题。为了客户更好的使用阿里云Elasticsearch,2018年前后,我们在云上推出了自己的一套系统,包含智能运维、智能诊断、巡检、异常检测等一系列服务。
该套智能运维系统可以更深层次地探究与发现ES集群在运行过程中可能存在的问题与风险,也会提前将问题与风险告知给客户,帮助提前做干预,甚至实现集群自恢复。同时,运维过程中也较为关注对于异常事件的捕获、异常事件的通知机制以及更立体、更丰富、更多维度的监控告警指标,我们将这一系列能力都封装至产品里,用户无需再构建一套自己的运维诊断系统、运维监控系统或告警系统。
基于以上一系列能力,我们最大限度地在deployment的维度帮助用户提供更灵活、更简单、更好用的运管系统,可以更方便地调度企业中所需的诸多Elasticsearch集群以及集群里的不同角色节点。
那么,服务高可用以及数据高可用如何保障?
经过云上的多年积累,我们也向用户沉淀了一系列服务高可用与数据高可用的服务能力。比如,在云上通过单region多可用区部署以及多region之间通过CCR机制做增量备份能力,可以实现在单region内多可用区的服务高可用,以及异地容灾能力,这种读写容灾能力也是Elastic提供的白金版服务里非常核心的功能。
针对数据容灾视角也做了大量工作,比如可以在不同集群之间做增量备份,同时,在单一集群维度也基于快照的方式与阿里云对象存储做原生整合,可以向用户提供一套一键开启,快速做快照备份的数据高可用能力。
另外,我们依赖了阿里云EBS的块存储机制,背后有一套多副本备份能力。我们在集群本身的存储介质静态维度、集群与集群之间以及集群单一物理硬件介质上做了大量容灾灾备能力,为客户提供了同城多活、异地灾备等一系列高可用服务能力。
在Elasticsearch本身的内核引擎上,我们也做了一系列努力与投入。时至今日,在云上提供了三个非常核心的功能。
①IndexingService索引构建服务(读写分离)
IndexingService提供了一套读写分离能力。Elasticsearch不仅要承担查询流量,也要承担写入流量。当写入流量有抖动时,会影响到查询稳定性。而在云上可以发挥IaaS资源整合的优势,将读集群与写集群剥离,为用户提供一套读写分离的架构。用户只需持有自己的集群,当写入洪峰或写入抖动发生时,可以将写入流量在索引构建工作上的开销放到阿里云提供的indexinservice服务里,由其承担索引构建工作,构建好的segment会被实时merge到用户的集群里。可以较好地规避写入抖动时的稳定性问题,同时因为将写入流量分流至外置服务,本身集群也不需要冗余太多资源,从某种程度上也可以降低集群里资源开销。
②OpenStore海量存储引擎(存算分离)。
基于OpenStore提供了一套存算分离的能力,用户可以通过开通OpenStore,将原本挂载在每个node上的存储放至远端的OpenStore存储介质上。存储介质背后是多级存储的级联cache,背后也会有本地盘、高性能SSD或ESSD、对象存储做的多级级联,本质上是为了实现存储介质更便宜,同时IOPS跟得上业务需求的综合能力。
我们基于OpenStore实现了一套存与算分离的架构,用户开启该能力之后,每一个ES节点真正意义上的物理数据都存储在远端OpenStore。在逻辑节点上显示replication只是一个逻辑概念。该种方式带来的更大好处在于:当集群做弹性扩缩时,不需进行物理层面的数据搬迁腾挪,集群变更速度也会更快。
③Analyticsearch检索分析模块
Analyticsearch可以使Elasticsearch分布式集群在承载查询请求时(尤其在做并发查询或持续timerange查询)表现出更好性能。
上述三种能力的本质都是更好地应用云上一系列IaaS资源,将资源效益发挥到最大,同时借助Elasticsearch产品的优秀特性,为用户提供阿里云上特有的一套PaaS服务。
除了读写分离、存算分离等功能,在过去5-6年时间里,我们也积累了大量内核层面的能力改进,涵盖了性能增强、保障集群服务稳定性以及场景丰富度提升方面。
不管是调度侧的优化,或索引本身的压缩、主副本之间的数据迁移、查询稳定性隔离、限流、容错、容灾等方面,亦或是时序分析、检索等方面都做了大量工作。我们已经将其中的部分能力回馈到开源社区,比如时序timestream插件等。
我们也希望阿里云在与elastic多年相互扶持前进的过程中,能够为中国开发者以及开发者生态提供力所能及的帮助。
新的一年,我们希望在Serverless产品形态上有更好的推进,希望能在云上利用好资源的基础之上,充分发挥云原生多租户架构的能力,进一步挖掘在IaaS侧的资源利用效率。希望能够基于Elasticsearch,在云上封装一套真正按需、按业务要求提供、检索、计算存储能力的服务,可以使搜索在云上真正实现“水电煤”化。
下一步,我们希望通过阿里云Elasticsearch在云上真正实现灵活伸缩,可以进一步降低用户使用Elasticsearch做信息检索的费用与成本,并且能够真正意义上实现基于云提供一套能力,用户0运维成本使用。
下一个5年,我们将围绕以下几个方向延展产品能力以及产品边界。
第一,利用好的云核心优势与能力,改变用户使用Elasticsearch的习惯,能够在云上更好地向用户呈现不错的搜索、检索、查询、分析的产品使用体验。
第二,阿里云Elasticsearch研发团队会持续在内核维度联合Elastic一起做深入优化,不断提升对于IaaS层的资源利用效率,向用户提供更高性能、更低成本以及更可靠稳定性的云上Elasticsearch服务。
第三,紧跟时代潮流,基于云与Elasticsearch做更多智能化相关的能力。在ES运维域与业务域也会不断叠加更多AI与智能化相关能力,拓宽产品的应用宽度,帮助用户更多地解决在业务与生产过程中遇到的实际问题。