阿里云Elasticsearch -- 从0到1的云产品演进之路
背景
Elasticsearch作為開源界最流行的搜索與分析引擎,在日志、安全、監控等領域也都有著非常廣泛的應用,而開放搜索團隊在支持云上用戶的過程中,也了解到有大量自建Elasticsearch服務的用戶對于運維效率、性能、穩定性有著非常迫切的需求,因此我們在2017年雙十一前在公有云上正式推出了阿里云Elasticsearch。
阿里云Elasticsearch的目標是解決用戶的數據分析和搜索需求,產品形態上和Opensearch的SAAS產品化思路不同,我們希望給予用戶最大的靈活性,能夠保有原生ELK的體驗,在云上提供完全的物理隔離的實例型搜索服務。加入Elasticsearch這款產品以后,我們也可以形成產品梯隊,Opensearch上我們可以基于搜索事業部中臺技術提供高性能、高可靠、免運維、有靈活的算法定制能力的搜索服務;ES上我們提供標準化的Elastic Stack全棧解決方案,提供低成本、靈活的分析和搜索服務。ES的PAAS產品化思路一個好處是可以減小用戶遷移成本,保證用戶可以無縫平滑上云,另一個是相對于多租戶型實例,ES的獨享型實例可以在云上基于VPC提供更安全隔離機制。
從結果上看,阿里云Elasticsearch上線一年來發展迅速,已經成為營收增長最快的大數據產品之一,我們不但支持了公有云用戶相關需求,也通過諾曼底系統支持了集團內的多個BU的搜索需求,另外專有云上,ES也是3.5版本第一個All in ECS落地的產品。目前公有云產品上,Elasticsearch集群數1400+、節點數6000+、文檔數據量也達到PB級。
產品演進
前面介紹了阿里云Elasticsearch產品背景和現狀,作為搜索事業部第一個真正上云的產品,下面主要分享下技術上的嘗試和整體架構上的演進。架構思路上,我們希望用一套架構支持公有云和專有云產品需求,另外也希望能夠同時享受到搜索事業部和阿里云IAAS快速發展的紅利,因此在產品立項之初,我們就堅定的選擇ECS和HIPPO作為ES的基礎設施。產品上,我們基于VPC和ECS做到物理隔離,提供最高的安全機制,并且優先解決了ES的自動化運維問題,開發了包括Essen和Shuttle在內的自動化運維系統;在支持用戶過程中,逐步沉淀了ES上的使用的經驗,基于這些經驗并且結合數據分析,我們開始嘗試設計和開發了智能化運維系統EYou;從生態上,除了支持Logstash和Beat的數據采集和數據處理機制外,逐步開始和搜索離線團隊一起,基于離線組件平臺開始打造一站式ES實時計算產品Elastichub。不多說了,下面直接上圖:
從OXS到All in ECS
首先為什么要基于ECS呢,All in ECS絕對不單單是一個戰略上的口號和趨勢:
安全性
基于VPC內的ECS,在公有云上我們可以實現安全的物理隔離機制,而安全性是公有云產品的最基本要求。在OXS區內雖然我們也可以通過ak和secret實現用戶的acl,但相對于物理隔離安全性還是無法比擬的。按照以往經驗,我們的第一版架構方案就是基于OXS實現的,安全架構審核時安全同學也及時指出相關問題,讓我們對數據安全有了更深的理解。
訪問VPC資源的先決條件
作為搜索服務,數據上游的生態是最重要的一環。在公有云環境中,阿里云幾乎所有的云產品,包括關系型數據庫、NoSQL和大數據產品都在用戶VPC內。在VPC內,訪問用戶數據是最安全和最便利的途徑。網絡同學也提供包括反向VPC、ENI在內的多種訪問用戶數據的方式。
彈性伸縮和快速部署
作為一個搜索老兵,習慣了集團內每年的資源規劃,但在云上,每個財年前產品規劃時哪個區域物理資源需求多少,接入時間都是未知的。而如果沒有ECS,ES絕對無法做到從國內區域到國際化,從公有云到金融云10+區域的快速部署,也無法做到快速響應用戶需求,及時擴容。
運維自動化到智能化
作為一個實例型的云產品,我們首先解決是運維效率的問題。從以往的經驗來看,隨著搜索業務的發展,包括數據量、場景增長,一個大的多租戶集群很難滿足業務性能和穩定性的需求;從目前產品現狀分析,阿里云ES上每個用戶平均都有兩個以上的ES集群,因此,我們上半年的工作大部分都集中在完善自動化運維體系上,在盡量不影響靈活性的前提下,提升用戶運維多ES集群的效率。我們目前已經基于Elasticsearch的搜索服務框架和分布式運維平臺實現了包括彈性擴容、集群配置管理、插件管理、日志可視化等一些列功能。
在支持用戶過程中,我們經常需要回答用戶異常問題調查、擴容建議的問題,這些問題無論對開發同學還是云產品售后同學都是很大的工作量,而這些事情無論對于新手還是資深業務開發同學都有很大的門檻。結合了搜索中臺發展的經驗,我們和tisplus團隊同學一起合作開發了智能化運維系統EYou,并且在售后支持上落地,取得了很好的效果。
AIOps是一個很熱的詞,很多人賦予多重含義。而對EYou來說,我們希望他能有以下三方面的能力:首先,從功能上講我們希望它可以沉淀我們線上運維上千集群的經驗,也能基于數據,比如用戶profile、配置、監控信息,來做到集群問題的自動化診斷;其次,從效率上可以代替人工,做到集群的日常巡檢和問題的智能預測集群;最后,我們希望它可以解決云上用戶的痛點問題,比如成本、slow query等等。詳見阿里云Elasticsearch智能化運維實踐
從離線平臺化到產品化
作為搜索系統,離線計算作為不可或缺的重要組成部分一直是系統演進的重點。從內網需求到彈外上云產品的離線需求,搜索場景下離線計算也一直是系統迭代的瓶頸。因此我們希望能夠有一套搜索場景下相對通用獨立的離線產品,能夠作為Opensearch、Elasticsearch甚至是推薦產品的通用產品化組件來支持相應的離線數據處理需求。從上半年開始,開放搜索團隊和離線組件平臺相關同學一起緊密合作,以Elasticsearch的需求為樣板,開發了新的搜索場景下離線計算產品ElasticHub。在ElasticHub中我們引入離線組件平臺作為底層架構,基于bingo和dolphin實現了通用的云產品接入層,希望后續ElasticHub也能夠很快支持Opensearch的離線計算需求。
在ElasticHub中,我們除了解決了數據源接入、ETL和全增量模型統一的需求外,索引全量是Elasticsearch的特有需求。和Ha3不同,Elasticsearch基于在線服務的全量索引構建易用性非常好,但在大規模數據量場景下性能和穩定性都是很大的痛點問題,因此我們希望能有一個類似BuildService的系統來解決離線全量的問題,做到在離線分離,這就是ElasticBuild。在執行引擎上,ElasticBuild非常靈活,除了支持Blink,還支持ODPS、Local等等,目前在產品上主要是和基于Blink的離線組件平臺結合,在ElasticHub上提供一站式的產品體驗。性能上,我們在做了一系列索引層的優化后也有相當大的提高。詳見阿里云Elasticsearch離線平臺化建設
展望與總結
從橫向拓展看,阿里云Elasticsearch會快速補全各個場景的輸出,包括公有云國內、國際化的各個區域,加速迭代專有云版本和完善專有云解決方案。技術深度上智能化運維、離線產品化和高可用建設都走在路上。內核能力上,我們會從性能和成本優化等問題入手,并且嘗試新的存儲系統和硬件基礎設施。希望有志于開源事業的小伙伴加入。
最后作為一款新生的云產品,業務的快速發展離不開兄弟團隊的大力支持,非常感謝各位老板和搜索中臺團隊昆侖、洪震團隊,也要感謝阿里云ECS團隊、安全團隊、網絡團隊和技術支持的小伙伴們。歡迎大家使用和反饋,更多內容請參考文檔,有問題請釘釘入群:阿里云Elasticsearch內網用戶群。
2017年9月,阿里云基于開源Elasticsearch及商業版X-Pack插件,提供云上ELK服務,同時阿里云ES技術人員會分享解決云上業務痛點的案例實踐,敬請期待!了解產品更多詳情?https://data.aliyun.com/product/elasticsearch
阿里云Elasticsearch?1核2G首月免費試用,開始云上實踐吧
總結
以上是生活随笔為你收集整理的阿里云Elasticsearch -- 从0到1的云产品演进之路的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【爬坑】Vim 文档加密 解密
- 下一篇: RV32FD指令集