一、關于Elasticsearch
Elasticsearch是一個開源的信息檢索、分析引擎,它能夠支持全文檢索,結構化搜索和數據分析。Elasticsearch在業(yè)內是非常主流和熱門的一個搜索引擎,在整個DB-Engine熱門指數排行上面是全球熱度第七的數據庫,在檢索方面更是全球熱度第一的檢索引擎。它應用的場景,如下圖所示,包括各類信息查詢,比如訂單查詢,以及地理位置查詢,以及日志數據的檢索和分析,數據分析和可視化。
整個Elastic Stack開源產品生態(tài)矩陣包括Beats、Logstash、Elasticsearch和Kibana這幾部分,也是大家通常所知道的ELK,各個部分的能力概括如下圖所示。整個這樣的一套開源技術產品在開源領域,已經有很多開發(fā)者都會在自己的業(yè)務中使用。而這些都在阿里云上提供開箱即用的全托管的云服務。
阿里云Elasticsearch提供全托管Elastic Stack服務,100%兼容開源,免費提供XPack商業(yè)插件,即開即用,按需付費。同時深入功能與內核性能優(yōu)化,提供更豐富的分析檢索能力,更安全、高可用服務。
整體優(yōu)勢體現在兩個方面。
第一,低成本。阿里云Elasticsearch不僅免費提供每個節(jié)點價值6000美元的X-Pack商業(yè)插件。還通過智能運維、高級監(jiān)控告警、容災部署等,為用戶降低大規(guī)模集群的運維成本。同時,針對性場景調優(yōu),提高資源利用效率。
第二,具備更強勁的功能與性能。阿里云Elasticsearch基于開源內核引擎研發(fā)了日志增強版內核,帶來日志場景的100%成本降低,以及100%性能提升。同時也通過向量檢索插件、阿里云SQL插件,不斷完善整體在文本、視頻、音頻、圖像,各方面的信息檢索能力。
另外,與開源相比,阿里云Elasticsearch通過各種企業(yè)級數據安全能力,全面對齊等保2.0要求,也提供開放的二次開發(fā)能力,支持各種業(yè)務場景的封裝。通過這些構成了阿里云Elasticsearch端到端分析檢索架構,包含數據采集層,數據加工層,數據引擎層,應用層。目前,阿里云Elasticsearch已經為教育、零售、金融、游戲等然30多個行業(yè)的幾千家客戶提供云上穩(wěn)定、高性能服務。在區(qū)域部署上面,阿里云Elasticsearch服務已經覆蓋阿里云全球20個數據中心,同時也能夠支持本地化的專有云以及混合云的交付模式。
二、電商零售分析檢索能力與解決方案
下面我們會基于一些場景上的實際的案例,包括一些架構,對Elasticsearch在實際的功能和能力上做更詳細的講解。
電商零售——電商業(yè)務搜索。
電商場景存在海量的商品數據、訂單數據,在售前和售后階段,均對數據的精準搜索有需求,在售前階段幫助用戶快速找到意向商品和相關服務;在售后階段幫助用戶找到歷史訂單信息,例如幫助賣家根據手寫退換單中的模糊信息快速找到并處理售后訂單。
綜合數據分析
交易及零售行業(yè)在線上線下均有大量的數據產生,例如業(yè)務系統(tǒng)日志、交易數據、POS機數據、用戶信息、用戶在門店或線上的行為數據、智能設備數據等,需要對數據做多渠道收集、存儲并分析。
場景痛點有三點;
1、流量波動,集群缺彈性:電商零售行業(yè)周期性的流量波峰波谷(周末、大促),集群需要適應性的伸縮,直面供應鏈成本冗余或者不足的問題,以及頻繁變更集群的運維成本問題高;
2、搜索質量要求:搜索作為電商零售場景核心流量入口,搜索準確率直接影響用戶體驗和成交轉化,基礎開源分詞器無法滿足高質量搜索需求;
3、高穩(wěn)定性要求,成本高:電商零售行業(yè)在流量高峰時,需要同時承載大量的查詢和寫入壓力,對系統(tǒng)的可用性、穩(wěn)定性保障要求極高。
與之對應的,Elasticsearch提供了適用于此類檢索場景的各種產品能力。
1、體系化產品能力:云上數據及服務高可用、集群一鍵升降配、數據存儲加密和安全管控、MS級的數據時效性。
2、多云災備:多云災備解決方案。
3、成本優(yōu)化:通過場景調優(yōu)、產品組合和價格策略,TCO下降50%以上。
4、專家級服務:提供專家級支撐能力,輸出基于客戶場景的解決方案、架構優(yōu)化、疑難問題解決。
5、全鏈路支持:云上ELK全產品支持,提供從數據采集、傳輸、處理、可視化的一站式服務。
下面我們從電商零售行業(yè)的訂單檢索出發(fā),來看下檢索方面客戶的技術和業(yè)務有什么問題。
在電商、零售行業(yè),交易訂單作為整個系統(tǒng)的“紐帶”貫穿了整個系統(tǒng)的關鍵流程,承載著所有購買信息與支付信息。
隨著電商新零售業(yè)務規(guī)模日益擴大,對各電商/服務商的系統(tǒng)帶來了新的挑戰(zhàn)。以雙11大促為例,主要會面臨以下幾個問題。
1、日訂單數據800w+,高流量、高并發(fā)系統(tǒng)壓力大。關系型數據庫面對超大數據量具有天然的性能瓶頸,如果底層數據庫直接承載業(yè)務端查詢壓力,可能發(fā)生影響業(yè)務穩(wěn)定性的問題。
2、30+訂單字段,高維度聚合/條件/模糊查詢效率低。傳統(tǒng)DB不滿足靈活的字段組合查詢,Like性能差。業(yè)務的查詢情況多樣、查詢條件復雜,對實時性要求高。
3、業(yè)務波動大,系統(tǒng)不能靈活擴縮,運維難度高。大促帶來的峰谷波動,面臨供應鏈資源不足或冗余。頻繁變更底層系統(tǒng)的人力運維成本高,缺乏支撐和保障。
在查詢檢索的性能提升這一塊,可以看到,傳統(tǒng)關系型數據庫有很大的局限性,Elasticsearch是如何與DB能力互補呢?
Elasticsearch基于Lucene核心庫構建,以倒排索引算法為基礎,默認為所有字段創(chuàng)建索引。數據模型采用Free Scheme模式,JSON主體,字段靈活添加,字段層級位置靈活設置??梢詰冻蟮臄祿坎樵?,在單索引數據量十億級也可以在亞秒內響應查詢。任意索引字段可組合使用,且查詢效率相當高。多表關聯查詢可通過反范式的關聯能力,將多個業(yè)務表數據合并到一個索引中。天然分布式設計,副本與分片機制使得集群具備彈性擴展能力??偟膩碚f,關系型數據庫比較全能,其分庫分表的機制可以很好的保障數據不丟失、不覆蓋,但是面對大規(guī)模的復雜查詢檢索,會有一定的局限性。Elasticsearch更為專注于提供靈活高效的查詢能力,將Elasticsearch作為數據庫二級索引組合使用,可以很好的應對數據幾何倍數增長、查詢條件動態(tài)變化的檢索業(yè)務場景,實現數據庫查詢加速。
下面來看一個電商訂單檢索案例,是如何使用阿里云Elasticsearch實現訂單檢索,搭建日志分析平臺。
案例—愛用科技
愛用科技立足于電子商務行業(yè),是基于淘寶服務平臺的最早一批應用軟件與信息技術服務提供商之一。專注為淘寶電商商家提供包含訂單處理、商品管理、分銷供應、數據分析、營銷打折等功能的軟件產品?,F已服務于400萬淘寶商家,使用阿里云Elasticsearch搭建訂單檢索服務和日志分析平臺。
在訂單檢索場景,愛用不僅為超過40W商家用戶提供穩(wěn)定安全的訂單管理服務,并承諾1~5秒內可實現所有訂單查詢和處理。同時,這樣的一套訂單系統(tǒng)可以支持賣家用戶從接單、訂單管理、打印發(fā)貨、物流跟蹤、到評價管理,實現全流程管理覆蓋,幫助賣家用戶高效、實時管理訂單動態(tài)。另外,在實際的檢索能力上,可以支持通過訂單號、買家昵稱、關鍵詞、收件人姓名、手機號、收貨地址、交易時間、賣家備注、賣家留言等20+訂單信息字段,進行各類高級查詢、篩選和排序??偟膩碚f,實現了超快的訂單加載速度,篩單秒出結果。
業(yè)務痛點
1、峰值并發(fā)查詢壓力大,延遲高體驗不好,嚴重影響穩(wěn)定性,無法達到為用戶承諾的查詢時效性。
2、訂單字段復雜,商家用戶的查詢維度多,和模糊搜索意圖強,原先的Postgresql數據庫方案無法實現滿意的查詢效果和性能。
3、雙十一、618等購物節(jié)業(yè)務壓力暴漲,難以快速擴容。第作為服務商,將所有客戶的數據集中存儲索引管理,
4、數據可用性、安全、權限粒度更要求高,數據敏感影響巨大面對這些問題。
Elasticsearch能力
1、PB級數據準實時搜索引擎,查詢結果毫秒級返阿里云Elasticsearch研發(fā)了回;索引限流插用以件,保障系統(tǒng)高穩(wěn)定性。
2、支持多種數據結構的復雜查詢,及字段的全文匹配和模糊匹配,同時集成阿里達摩院NLP分詞器等多種分詞插件,性能效果雙保障。
3、集群一鍵平滑擴縮容,變更對業(yè)務0影響,靈活應對流量峰谷。
4、數據自動備份、多種安全認證、字段級別權限管最終這塊,愛用科技基于MySQL+Elasticsearch組合方案了整體實現訂單查詢。不僅提升了近一倍的IOPS性能,也同時降低了50%的資源成本。
阿里云Elasticisearch在其他的場景應用也有很多案例能力的沉淀。
阿里云Elasticsearch向量檢索能力,被廣泛應用在以圖搜圖,智能客服這些場景。
隨著AI技術的不斷普及,電商場景中針對向量檢索的需求量在逐步提升。從以圖搜圖、人臉識別、音視頻識別到商品智能推薦等場景,技術上都離不開向量檢索的能力支撐。
阿里云Elasticsearch向量檢索插件,基于達摩院Proxima向量引擎庫,對向量檢索的一些基礎能力,如聚類、距離計算、高并發(fā)、Cache等做了深層次的優(yōu)化。
Elasticsearch整套ELK分析可視化方案,被廣泛應用于智慧門店場景下的業(yè)務分析場景。
對于很多新零售商家諸如海底撈,線下門店分布廣,業(yè)務體量大,迫切的需要”智慧門店”解決方案,實現會員、訂單、商品等多渠道業(yè)務數據的集中管理和實時搜索,用于移動端綜合搜索和內部管理、運營系統(tǒng)的業(yè)務指標分析?;诎⒗镌艵lastic Stack端到端的產品能力,可以很好的實現門店數據、用戶數據、交易數據、客流數據等全渠道收集,并進行數據聚合與實時數據分析,結合Kibana、QuickBI和DataV打造業(yè)務數據可視化監(jiān)控看板,搭建數據應用分析、可視化和搜索服務,并支持報表聯動權限管控,從而一站式的搭建出整套智慧門店解決方案。
電商零售業(yè)務分析應用的架構,分為四個部分,分別是數據源&采集,數據傳輸、流式數據存儲,數據ETL,數據存儲&分析。
三、在線教育全觀測運維監(jiān)控能力與解決方案
接下來,我們會從在線教育這個行業(yè)進行介紹??傮w來說,先來看三大應用場景。
1、1對1、1對多、1對N的在線直播團隊:學員或老師在直播的過程中,會產生很多行為動作,如進入直播間,退出直播間,舉手、上講臺、涂鴉、加載課件等,如果動作無響應,對于用戶體驗就很差,需要基于日志的數據可視化,來幫助測試或研發(fā)監(jiān)控、復現和定位問題;
2、全鏈路應用性能監(jiān)控團隊:終端用戶(學生&老師)、客戶(獨立培訓機構或者內部課程部門)、平臺方(平臺運維部分),涉及的問題層層傳遞,需要保證性能監(jiān)控的時效性;
3、試題、教案教義搜索團隊:試題的標簽個數在錄入時是不確定的,需要底層的搜索/檢索系統(tǒng)可以支持靈活的標簽錄入機制。
在這些場景下,往往有著共同的痛點問題。
1、流量波動,集群缺彈性:教育行業(yè)周期性的流量波峰波谷(周末、寒暑假),集群需要適應性的伸縮,直面供應鏈成本冗余或者不足的問題,以及頻繁變更集群的運維成本問題高;
2、鏈路冗長,問題難定位:數據鏈路端到端流程太長,一旦異常定位問題成本很高;
3、高穩(wěn)定性要求,成本高:教育行業(yè)不僅僅向客戶暴露業(yè)務系統(tǒng),日志系統(tǒng)也會面向用戶使用(如監(jiān)課),全鏈路的穩(wěn)定保障要求極高;
4、搜索高要求:不僅僅是全文檢索,基于標簽的本文、甚至是非文本檢索需求導致搜索復雜。
阿里云Elasticsearch產品在這樣的場景和痛點下,具備以下能力。
1、體系化產品能力:云上數據及服務高可用、數據存儲加密和安全管控、MS級的數據時效性、全鏈路數據加快S級反饋;
2、數據時效性:MS級的數據時效性,全鏈路數據監(jiān)控S級反饋;
3、多云災備:多云災備解決方案;
4、TCO成本優(yōu)化:通過場景調優(yōu)、產品組合和價格策略,可以讓客戶TCO下降50%以上;
5、專家級服務:提供專家級支撐能力,輸出基于客戶場景的解決方案、架構優(yōu)化、疑難問題解決。
下面我們從在線教育的一些典型客戶使用方面來做一些深入的分析。
案例—好未來
好未來(前身“學而思”)是一個以智慧教育和開放平臺為主體,以素質教育和課外輔導為載體,在全球范圍內服務公辦教育,助力民辦教育,探索未來教育新模式的科技教育公司。
好未來旗下直播云平臺,為各類教育培訓機構輸出包括在線教室和雙師課堂在內的全場景教育直播產品及服務體系。好未來直播云支撐線上百萬人線上課堂,并承諾不卡頓,支持師生互動;提供從視頻的采集、轉碼、發(fā)送、SDRTN、接受、解碼、播放/渲染全鏈路的服務,系統(tǒng)需要提供99.9%傳輸成功率;提供500ms低延遲、高清畫質,全球范圍直播授課及同步監(jiān)管能力,7*24小時線上支持保障;自建ES的全鏈路質量監(jiān)控,QoE、QoS等質量實時監(jiān)控。
面對這樣高性能、穩(wěn)定性要求的直播系統(tǒng),好未來的直播鏈路面臨著巨大的挑戰(zhàn)。
1、監(jiān)控指標來源多,實時性保障困難。而阿里云Elasticsearch具備豐富異構數據源采集能力,能夠覆蓋主流DB和日志系統(tǒng)并支持模版化的日志解析處理能力。
2、數據權限粒度要求高。為保障終端用戶的使用體驗,直播平臺方需要賦能客戶數據監(jiān)控和分析能力,需要提供讀數據權限;無法滿足每個客戶一個集群的需求,需要對一個大池子中的數據進行細粒度的數據權限分割。面對這樣高要求的數據權限問題,阿里云Elasticsearch本身可以提供精確到字段級別的數據權限分割能力,并基于RBAC模型支持用戶靈活自定義權限體系;支持與企業(yè)自有權限體系對接打通關。
3、在線教育的流量波動大,自建集群投入成本高。教育行業(yè)寒暑假業(yè)務流量激增,學期內流量平穩(wěn),機器資源閑置浪費;峰值流量集群壓力大,集群容災和穩(wěn)定性差。云上Elasticsearch托管很好的提供了集群平滑的伸縮能力,同時集群熱變更,對服務0影響。
在此之中,集群平滑擴縮容作為在線教育核心訴求。阿里云Elasticsearch通過性能優(yōu)化不僅達到了毫秒級別的數據時效性,并且支撐數百個企業(yè)級客戶權限分配管理。當遇到流量激增,整體監(jiān)控及日志平臺可以平滑擴容,而峰/谷集群也可以通過彈性伸縮功能靈活配置,節(jié)約100%成本。和客戶自建服務效果對比,體現了降本增效的核心優(yōu)勢。直播場景下,好未來整體日志及監(jiān)控平臺數據流程示意圖如下圖所示。
在這個方案背后,依托的就是ELK的全觀測能力實現監(jiān)控運維分析。
運維系統(tǒng)的成熟度主要根據,所收集數據的豐富度、數據處理的結構化能力、以及數據分析層的復雜程度所決定。而Elastic Stack能夠充分利用分散在系統(tǒng)各層的數據,更好的發(fā)揮數據價值。
全觀測能力,不僅關注的是基礎的日志和指標數據,更能收集到用戶行為金控、交易性能監(jiān)控、分布式追蹤等APM數據,通過對采集后的數據進行匯聚處理,進行數據存儲搜索,以及可視化監(jiān)控告警。而隨著告警能力的完善,數據的分析也不僅僅依托于簡單的規(guī)則和指標異常告警,Elasticsearch本身能夠提供高級的機器學習和關聯分析,實現對問題全鏈路的追蹤。
從而最終實現了日志、指標、APM數據在一個平臺統(tǒng)一分析。如下圖所示,不僅建立了統(tǒng)一的可視化視圖、對齊時間、過濾條件;除了統(tǒng)一的基于規(guī)則的監(jiān)控和告警;還有統(tǒng)一的機器學習的智能監(jiān)控和告警。
當業(yè)務發(fā)生一些故障,Elasticsearch會有一個機器學習的模塊,通過你的歷史的情況去智能的推測,比如說,這個時候的指標大概會在什么樣的范圍內。當你的指標沒有在之后,就會判斷這是一個異常的情況。在機器學習頁面,就會給你這樣一個告警詳情。然后你就能夠跳轉到相應的,包括API那些頁面,儀表盤,指標去進行后續(xù)的診斷故障。
機器學習頁面詳細分析告警,包括各種機器學習任務告警對齊;機器學習根據API響應時間的歷史情況自動建模,當監(jiān)控值超過動態(tài)閾值就觸發(fā)告警,并且可以指出是哪個API性能下降;可以從故障點處跳轉到APM、儀表板、指標、Uptime等其他應用來診斷這個故障。
APM性能分析,包括總體性能統(tǒng)計概覽,中央時間點對應故障時間點;根據各個API性能影響的情況排序,影響最大的排最前面。
APM查看分布式調用有如下幾塊。第一,服務響應時間分布情況。第二,匯總分布式環(huán)境下的多種服務。第三,查看分布式環(huán)境下服務間的調用關系和單個應用內部的調用情況。
儀表板綜合分析包括:服務總體響應時間分析,分服務的響應時間對比,把服務分為各個實例性能熱點分析。
查看指標分析這一塊,包括可觀察主機、K8s、docker的指標數據,時間對齊告警發(fā)生時刻。它可以按照每一個Pod查看性能消耗,可以查看每個Pod的日志、指標、APM、Uptime數據。并且,打通指標和指標、APM。
分析日志定位原因如下圖所示,包括時間對齊告警發(fā)生時刻,自動定位到單個Pod可以自由輸入條件過濾日志流,可以看到8點這個時刻MySQL有大表連接,大量的行掃描。
總體概括來說,阿里云Elasticsearch在各個業(yè)務場景下,從整體成本,集群管控、檢索能力、安全性和可用性等各個方面,對比自建集群均帶來了全方位的能力與性能優(yōu)化,如下圖所示。