開源最大的特征就是開放性,雲生态則讓開源技術更具開放性與創造性,Elastic 與阿裡雲的合作正是開源與雲生态共生共榮的典範。值此合作三周年之際,我們邀請業界資深人士相聚雲端,共話雲上Elasticsearch生态與技術的未來。
本篇内容是由鄧萬禧帶來的雲上Elasticsearch驅動新未來
分享人: 阿裡巴巴集團資深技術專家鄧萬禧
視訊位址:
https://developer.aliyun.com/live/246147正文:本篇主要通過2個部分介紹雲上Elasticsearch如何驅動新未來
- 阿裡雲Elasticsearch三周年回顧
- 新産品釋出
一、阿裡雲Elasticsearch三周年回顧
阿裡雲Elasticsearch在2017年雲栖大會由阿裡雲和Elastic公司共同釋出。在産品設計之初,阿裡雲作為産品開發團隊就堅持源于開源而不止于開源的理念,希望能夠給客戶提供百分百相容開源生态和軟硬體一體化設計的雲原生産品,降低企業上雲的成本,提升效率。
随着雲原生的發展和雲服務的發展,我們認為應該從更廣義的角度去了解雲原生的概念。因雲而産生的軟體、硬體、架構,就是真正的雲原生。從企業客戶的角度,雲原生的服務需要能夠給客戶帶來極緻的彈性和完善的運維能力,通過上雲能夠給企業帶來降本增效的收益,而阿裡雲ES就是通過長期大規模的雲上實踐而發展起來的雲原生産品。
我們主要圍繞以下三個方向進行了探索,主要包括:
- Elastic開源技術站和阿裡雲基礎設施的高效內建;
- 軟硬一體化的架構演進;
- 場景化核心的增強。
以下是産品發展過程中的幾個關鍵性名額和milestone。
2017年,阿裡雲ES釋出商業化的Elastic Stack5.5版本,全部架構都基于雲原生的基礎設施,包括ECS、VPC、SRB和雲盤等等,完全相容ES的API。此産品主要從雲管控的角度解決企業客戶,多叢集的運維效率低的痛點問題,比如一鍵拉起、平滑更新等等。希望在雲上的客戶可以更高效的方式使用和運維自己的Elasticsearch服務。
2018年,主要工作的重點是發揮阿裡雲基礎設施上的優勢,覆寫更多的區域和更多的産品形态進行輸出。通過部署Elasticsearch的叢集提升了ES服務的穩定性,也希望借助于異構的存儲架構,降低使用者在實際場景的存儲成本。同時阿裡雲釋出了智能運維産品EYou1.0,進一步提升了多叢集的運維效率。
2019年,我們主要實作了ES全棧的元件托管,具備全棧的雲原生能力,并且演進為計算存儲分離的架構,為進一步提升彈性擴縮能力奠實基礎。另外,也降低了熱節點存儲的成本,提升了一些性能,尤其是在時序和日志場景。
2020年,我們對雲原生服務能力進行了更新,釋出了智能彈性伸縮和DevOps相關的能力,另外也包括自研的報警監控服務等。
通過以上幾個服務,阿裡雲團隊進一步打磨了産品,并且也繼續深入到業務場景中,持續優化業務的架構,為雲上客戶帶來更好的産品體驗。
經過三年多的發展,技術架構經過多輪的疊代和演進,阿裡雲ES已經發展成為覆寫開源ES全棧元件的雲原生産品。
下圖展現了阿裡雲ES的整體産品架構,從上到下包括場景化的能力,核心,和平台架構三部分。
(一) 場景化能力,包括多模态的搜尋,可觀測性,和安全分析。
1、多模态搜尋
阿裡雲ES內建了達摩院的向量檢索、核心和阿裡NLP分詞,增強了對文本和圖檔的了解能力,并且針對使用者DB加速場景的需求,我們也針對性地做了多項改進,大大提升了在訂單,交易等場景的穩定性。
2、可觀察性
針對海量日志存儲和寫入成本問題,釋出了阿裡雲日志增強版本,不僅時序場景的性能達到150%,并且降低了40%的成本。從資料前鍊路上,雲原生的beats資料采集,從産品層面和阿裡雲ACK無縫打通,可以友善地采集coordinates日志做安全審計。另外,進階監控服務基于Elasticsearch作為存儲實作了獨立的一個産品,通過更細粒度和更高精度的matrix,極大地提升了ES叢集的監控能力,提升了運維效率。
3、安全分析
除了針對Ad-hoc查詢做了定制優化之外,我們也和阿裡安全團隊合作,對安全場景的可視化能力做了增強,友善使用者使用。
(二)核心相關的增強
我們的政策是盡可能地跟進社群的版本,為雲上的客戶帶來最新版本的能力。另外,也結合阿裡雲的基礎設施對核心做了增強,我們也希望能夠把通用的部分貢獻給社群,為開源社群發展貢獻我們的一份力量。
下面列舉一些比較重要的改進給大家分享。
1、通用實體複制
主要效果為寫入性能提升了70%,它的原理主要是在Elasticsearch的主節點做索引建構,而副本隻讀,主節點建構完成之後利用高效的網絡分發section到副本,節省了索引建構的計算消耗。
2、 阿裡雲QoS插件
由于查詢側針對DB加速的場景對穩定性的高要求,我們釋出了阿裡雲QoS插件,基于阿裡雲智能引擎的長期實踐,我們結合自研的網絡管理元件Dig, 實作了對查詢和節點級别更精準的流控和降級能力。它可以在網絡基礎設施抖動的情況下,對查詢的影響降到最低。
3、Fast Bulk
另外一個顯著上的優化稱之為Fast bulk,可提升寫入性能接近30%。
以上就是部分優化的一些例子,也希望有更對同學對核心感興趣的話與我們交流。
(三) 雲管控平台
在架構層面,我們基于阿裡雲存儲和計算的基礎設施,完成了多次的架構疊代。首先在高可用上,我們完成了一健的多可用區部署,通過多可用區的高可用,更好地實作了高可用的能力。我們主要解決的問題是一鍵部署和秒級切流,讓使用者可以在出現故障的情況下快速地完成業務切流,把影響降到最低。 第二,基于hot-warm架構和計算存儲分離架構,我們大大地降低了存儲成本,讓使用者在同等花銷下存儲更多的業務資料。除此之外,基于共享存儲,在20年上半年我們也釋出了基于ES的智能伸縮特性,主要适用場景是業務高峰和低谷期差異特别明顯的場景,比如直播和交通出行,解決的問題是業務低峰期資源浪費的痛點問題。
當然,為了更好地提升叢集的運維效率,我們也一直在疊代智能運維系統EYou,通過EYou的持續疊代提升使用者多叢集的管理和運維效率。
總結一下,從整體上看,我們後續會持續從場景化,核心和架構的三個方向去持續疊代産品。具體的技術方向包括等級點的成本優化,自研引擎核心的內建和持續場景的寫入吞吐的優化,後面在産品釋出上也會和大家分享這方面工作的最新進展。
從業務規模上看,阿裡雲ES已經覆寫國内和國外17個區域,資料量達到了數十PB,叢集數也達到了數萬的規模。從場景上看,我們服務了包括線上教育,新零售,遊戲等多個行業的網際網路和傳統企業,也希望在今後的時間内能夠繼續服務好雲上的客戶,給整個行業的客戶賦能。
二、新産品釋出
(一)産品簡介
這個新産品的功能稱之為Indexing Service,它将會在今年2月份全新上線,主要适用于時序場景,給雲上客戶降低機器成本,提升運維效率。 從客戶角度上看,Indexing Service的特性包括以下三個部分:
- 解決時序資料的高并發寫入瓶頸,性能提升150%。
- 優化叢集寫入的計算成本,熱節點的成本降低70%。
- 降低運維複雜度,它是一個雲原生的Serverless産品形态,可以實作秒級的彈性擴縮,讓使用者更少地關注叢集的運維
(二)技術架構
下面介紹的是Indexing Service的技術架構。
首先從适用場景上來看,它适用于日志,監控,和APM等時序場景。它解決的痛點問題是指叢集寫多讀少的場景時,機器成本和運維成本高的問題。它的使用方式也非常簡單,首先按照吞吐和qps實際需求開通按量付費,在産品控制台上可以一鍵開啟,無需做業務上的改進,完全相容原生的API。而随着業務流量的增加,Indexing Service可以做到秒級的快速彈性伸縮。最後,從内部實作上看,Indexing service是讀寫分離的架構,對寫的性能做了針對性的優化。
(三)内部流程
下面從架構的角度看一下使用者在産品控制台上開啟Indexing service的能力和内部的流程。
首先,使用者在産品控制台開通Indexing Service之後,實際索引的Index metadata會同步到Indexing Service, 之後寫入的流量如Bulk和Doct API可以通過節點直接forward給Indexing Service,無需在Datanode上建構。索引建構完之後,Indexing Service可以直接通過跨叢集的實體複制直接将索引資料分發到使用者叢集,進而實作一個秒級的資料時效性。使用者也可以在自己的叢集内部通過API直接查詢每個Index的訂閱狀态,并且用索引管理機制管理索引的訂閱關系。當然,使用者也可以随時取消訂閱關系,這時候業務的寫入吞吐會roll back回自身叢集來進行索引建構。
最後總結一下,Indexing Service是阿裡雲ES基于雲上業務實踐推出的新産品,基于Indexing service的能力,使用者可以按需購買,按量付費,大大降低日志和監控等時序場景的機器成本。這個特性将會在2021年2月份正式上線,也歡迎各位新老使用者開通試用。
以上就是雲原生Elasticsearch驅動新未來的分享的全部内容。
【
阿裡雲Elastic Stack】100%相容開源ES,獨有9大能力,提供免費 X-pack服務(單節點價值$6000)
相關活動
更多折扣活動,請
通路阿裡雲 Elasticsearch 官網 阿裡雲 Elasticsearch 商業通用版,1核2G ,SSD 20G首月免費 阿裡雲 Logstash 2核4G首月免費 下載下傳白皮書:Elasticsearch 八大經典場景應用