阿里搜索中臺產(chǎn)品設(shè)計
阿里搜索事業(yè)部承載著整個集團的搜索業(yè)務(wù)需求。
面臨問題: 雖然搜索事業(yè)部搜索技術(shù)強大,但這個優(yōu)勢很難在業(yè)務(wù)數(shù)量成規(guī)模的情況下取得突破。根本原因在于對接業(yè)務(wù)是以項目方式開展而不存在外延性,只能投多少人做多少事情。
產(chǎn)品設(shè)計目標(biāo):搜索技術(shù)體系首先要有沉淀規(guī)模化的復(fù)制能力,這是應(yīng)對復(fù)雜系統(tǒng)的基本能力。在此基礎(chǔ)上打造搜索中臺,降低業(yè)務(wù)支持成本和提高用戶接入體驗。
?
產(chǎn)品設(shè)計核心目標(biāo):提升效率
復(fù)雜的平臺系統(tǒng)效率提升可以分為三大方向:
↘???????系統(tǒng)運維效率
↘???????業(yè)務(wù)迭代效率
↘???????資源分配效率
資源分配效率提升由于阿里有專門的基于docker容器+自研編排調(diào)度框架來解決,Tisplus平臺(搜索中臺)也利用了集團已有方案來改善集群資源分配效率。
?
一、提升系統(tǒng)運維效率
存在兩種運維管控方式
過程式管控
舉個搜索引擎例子:
一個引擎服務(wù)全量過程需要4個階段。每個階段等上個階段執(zhí)行完畢后按順序執(zhí)行。
這就是過程式管控方式,絕大部分目前的管控任務(wù)執(zhí)行都是基于這種架構(gòu),這樣的架構(gòu)執(zhí)行目標(biāo)確定,實現(xiàn)結(jié)果的路徑也是確定的,是典型的過程式處理的思路。
問題:
然后,這種處理方式最大的問題在于如果中間執(zhí)行任務(wù)節(jié)點出現(xiàn)錯誤,問題矯正都需要人工接入處理,讓系統(tǒng)先達(dá)到穩(wěn)定,再繼續(xù)操作。
而當(dāng)系統(tǒng)越來越復(fù)雜,過程式管控會出現(xiàn)一系列問題。如過程任務(wù)診斷、恢復(fù)被排除在系統(tǒng)外,由人來負(fù)責(zé)加重運維&開發(fā)人員負(fù)擔(dān)。
另外當(dāng)運維管控操作出現(xiàn)反復(fù),如:在全量任務(wù)流程中,出現(xiàn)更換機器, A版本升級過程中臨時需要改回B版本,或回滾B版本過程中又要升級到C版本的情況,過程式管控只能等待任務(wù)流程結(jié)束,或中斷任務(wù)流程。
因此,隊列等待的時耗問題及問題解決基于人的能力,都會對復(fù)雜情況處理造成困擾。
?
目標(biāo)漸進(jìn)管控即目標(biāo)漸進(jìn)式自動化運維系統(tǒng)
核心思想:
系統(tǒng)狀態(tài)在當(dāng)前狀態(tài)(current)與目標(biāo)狀態(tài)(target)間多輪迭代輪回。
即當(dāng)前系統(tǒng)狀態(tài)是A,這時向系統(tǒng)設(shè)定一個目標(biāo)狀態(tài)B,系統(tǒng)即開始向狀態(tài)B執(zhí)行必要路徑。
這時可以重新給系統(tǒng)設(shè)定新目標(biāo)C,系統(tǒng)獲得新目標(biāo)。與當(dāng)前執(zhí)行目標(biāo)進(jìn)行對比,確定目標(biāo)變化則馬上終止當(dāng)前執(zhí)行路徑、自動清理系統(tǒng)不一致狀態(tài),重新向新目標(biāo)漸進(jìn)。
過程中不限定對目標(biāo)狀態(tài)設(shè)置次數(shù),多次目標(biāo)變化對于系統(tǒng)是必要關(guān)鍵路徑執(zhí)行過程。
困難:
如果狀態(tài)和狀態(tài)間存在關(guān)鍵路徑分支,如何選擇最短最優(yōu)路徑是目標(biāo)漸進(jìn)管理的挑戰(zhàn)設(shè)計。
需要搭建更為智能化的決策中心,不僅僅獲得目標(biāo)狀態(tài)變更的執(zhí)行關(guān)鍵路徑,還能在復(fù)雜分支執(zhí)行路徑中尋找最優(yōu)路徑進(jìn)行執(zhí)行。
收益:
這種管理方式能做到沉淀能力和釋放人力。
? 搜索中臺系統(tǒng)運維管控設(shè)計
管控技術(shù)體系服務(wù)化
做到端對端更高層的抽象設(shè)計,屏蔽后端系統(tǒng)間復(fù)雜的協(xié)同交互,用戶一站式操作。管控可視化
?
離線數(shù)據(jù)高效設(shè)計
建立tisplus離線組件平臺:平臺核心能力是讓用戶可以在畫布中通過拖拽節(jié)點的方式去定義數(shù)據(jù)之間的關(guān)系和數(shù)據(jù)處理流程。
通過一次性的數(shù)據(jù)關(guān)系和處理流程的可視化描述,就能將搜索引擎所需要全量和增量完美統(tǒng)一。只需要拖拽描述下節(jié)點,全量數(shù)據(jù)準(zhǔn)備和實時增量更新就能完全交由平臺系統(tǒng)搞定。
支持各種異構(gòu)數(shù)據(jù)源的自由組合,換句話說用戶任何來源(ODPS、HDFS、HBASE、MYSQL、RDS、OTS、OSS)的結(jié)構(gòu)化數(shù)據(jù)(非結(jié)構(gòu)化數(shù)據(jù)也支持UDF進(jìn)行處理)都能自由去定義他們之間的關(guān)系和處理流程
二、提升業(yè)務(wù)迭代效率
成本控制
通過搜索資源調(diào)度框架(Hippo)做到屏蔽機器概念,進(jìn)而通過資源彈性調(diào)度機制使得物理機可以被多業(yè)務(wù)合理復(fù)用,而使用容器技術(shù)也使得每個業(yè)務(wù)就可以被容器度量的資源
打造了資源計費系統(tǒng)costman,有了該系統(tǒng)平臺上任何的業(yè)務(wù)都可以被單獨計費,一些資源浪費和成本優(yōu)化都可以被追蹤,同時也讓數(shù)據(jù)化運營價值有了可以被衡量的數(shù)據(jù)化依據(jù)
?
容量優(yōu)化
為了能自動化的指導(dǎo)應(yīng)用申請合理的機器資源,提供穩(wěn)定的搜索服務(wù)的同時提高資源使用率設(shè)計了容量評估平臺Torch:
容量評估平臺主要核心執(zhí)行流程是:
1.容量管控:根據(jù)并發(fā)設(shè)置測出極限容量。
2.傳送壓測數(shù)據(jù)及kmon日常數(shù)據(jù)到IDST資源成本分析算法服務(wù)形成合理資源申請建議。
3.檢驗算法建議更新資源再次做自動壓測校驗。
4.驗證后資源建議持久化保存。
5.tisplus console展示并提供容量優(yōu)化建議,方便用戶一鍵進(jìn)行容量優(yōu)化。
?
控制穩(wěn)定性
測試技術(shù)體系設(shè)計
冒煙平臺:
實現(xiàn)業(yè)務(wù)快速回歸、快速發(fā)現(xiàn)線上異常。
1.提供豐富的測試方法,如查詢驗證、流式case、對比測試。
2.業(yè)務(wù)方可在tisplus平臺進(jìn)行小白化case編寫,輕松寫case。
3.冒煙case執(zhí)行接入Tisplus業(yè)務(wù)發(fā)布流程,實現(xiàn)了發(fā)布自動冒煙,保證了上線版本質(zhì)量,同時也逐漸培養(yǎng)業(yè)務(wù)方無冒煙,不發(fā)布的質(zhì)量意識。
壓測平臺:
支持多種服務(wù)發(fā)現(xiàn)方式(ip/cm2/vip/hsf/mtop),多種數(shù)據(jù)讀取方式(hdfs/odps/http),是一個分布式、高性能的壓測平臺
1.依托于搜索調(diào)度系統(tǒng),實現(xiàn)施壓機自動分配、擴容,壓測過程不僅支持人工調(diào)速;
2.支持多種自動調(diào)速模式,
3.tisplus平臺無縫對接了壓測平臺,所有平臺業(yè)務(wù)無需準(zhǔn)備測試數(shù)據(jù)、測試機器、測試腳本、只要填寫壓測目標(biāo),即可快速完成系統(tǒng)性能壓測
優(yōu)化日常化
優(yōu)化大師平臺設(shè)計:
1.字段配置合理性分析:用戶不謹(jǐn)慎的字段類型配置。
2.容量評估合理性分析:業(yè)務(wù)規(guī)模變化數(shù)據(jù)、查詢變化率分析。
3.算法feature耗時分析:精確定位到算法字段性價比分析。
4.查詢Query性能分析:,對用戶查詢Query的分析后,對查詢慢、性能損耗過多的查詢Query在搜索查詢多個階段的耗時進(jìn)行精準(zhǔn)定位性能瓶頸
?
全鏈路問題診斷
全鏈路一鍵診斷系統(tǒng)
?
報警
智能化報警平臺的建設(shè): 建立反哺業(yè)務(wù)持續(xù)健康發(fā)展的生產(chǎn)資料,它是可以通過挖據(jù)其內(nèi)部的價值,建立報警數(shù)據(jù)模型從而實現(xiàn)通過歷史業(yè)務(wù)指標(biāo)數(shù)據(jù)去預(yù)估業(yè)務(wù)動態(tài)報警閥值、系統(tǒng)異常點檢測的目標(biāo)