千牛掛「虹(Rainbow)」,域和角色不勝數

2021-09-23 17:37:30 字數 3349 閱讀 8640

本文主要從千牛的架構開始談起,然後解釋了千牛的開放模式,進而分析了千牛的多域多角色特性,最後和大家分享了雲資料前置服務的方案。

pdf

千牛 千牛是全球領先的to b端工作台,支援多域多角色,面向泛賣家領域的一站式經營工作台,千牛是一雲多端的開放平台。

業務架構

從下往上看,最下面是基礎設施層,整個阿里的電商中臺以及阿里雲為isv提供服務的部分;接下來是paas層,目前有御膳房、聚石塔、開放平台和千牛平台服務;所有的雲端設施都會通過千牛端向isv提供資料層、業務層、開放層的服務;然後通過千牛訊息中心、數字面板、千牛的應用容器和千牛的任務通道等平台對商家輸出,組織成商家經營鏈路裡的各個工具。

技術架構

從端上來說,端上最底層的業務開放層,服務商是基於這一層開發面向商家的軟體或訊息。業務層下,我們提供給服務商最基本的能力有外掛程式互通協議、資料同步和監控等。端與雲是打通的,電商中颱&阿里雲提供相關外掛程式,千牛提供平台服務來支援千牛os作業系統本身,千牛雲端有接入層,接入層有上行通道和下行通道,下面的千人千面模組上有資源層開放給isv使用,右側有一些基礎設施。千牛與**開放平台是緊密合作,天然打通的。

問題和挑戰

千牛作為商家的第一入口,面臨的問題和挑戰有以下三方面:

千牛的開放模式

千牛是基於外掛程式體系的能力開放,最上面為千牛數字面板,中間是外掛程式入口,點進去後就是isv具體的外掛程式,右側是目前千牛對外開放的部分能力,比如發旺旺訊息、基礎元件等。

最初進行移動開發時,面臨著流動網路的三座大山,流量貴、不穩定性、速率慢,所有的網路請求都是相對比較昂貴的,如果不基於千牛開發,我需要解決哪些問題呢?

長連線系統rainbow

當客戶端連上時,會與服務端建立乙個rainbow的長連線,該系統為純非同步系統,對執行緒切換敏感,且執行緒隔離。

網路優化

基於rainbow做了網路優化。首先客戶端有sdk層,sdk層攔截所有請求,同時可以進行切換,sdk層下面有邏輯判斷層。我們針對開放平台和千牛服務做了優化,當上層業務掉到千牛網路層時,如果是開放平台或千牛伺服器的請求,我們會把http請求通過私有協議轉換成乙個rainbow的tcp包,將tcp包通過rainbow的長連線發到rainbow的伺服器上,rainbow伺服器收到tcp請求會還原成乙個http請求,由rainbow**客戶端去請求目標伺服器,再執行相同的邏輯把資料進行返回。在整個網路優化下,首先砍掉了三次握手,當發起http網路請求時,變成了通過tcp請求只握手一次,剩下全部復用這個連線;其次本地沒有dns解析,所有dns解析由服務端提供工作。

實踐總結

效果:

核心是多路復用,壓縮復用;

拆包,請求優先順序,在千牛的場景下(不走大資料,只走業務資料)沒有太多效果。

帶給我們的成本有以下幾點:

開發容器的演變過程

開放容器結構圖

在千牛開發平台2.0中,framework層提供生命週期管理、儲存管理,同時提供一整套的千牛視覺規範以及ui元件,isv可以基於元件直接進行開發,還提供一些打點的工具,底層有web容器和native容器,同時基於整個開發平台還提供了很多個工具。

雲端監控

我們為所有isv和外掛程式提供了一整套的監控系統,千牛os下面有應用容器,應用容器把所有使用者請求進行相關的打點,包括頁面渲染,將資料進行歸集,由native統一採集層採集,然後上傳到服務端,計算完成後把資料展示在開發控制台和運營工作台上,同時可以在控制台上控制端上的一些行為,反向作用於千牛os。

多域多角色

面向賣家的多域多角色

千牛是面向泛賣家領域,所以包括淘女郎、阿里雲、1688以及服務商所有賣家使用者都在千牛上使用。對於大商家而言,賣家是乙個團隊,團隊中可能有客服、運營和倉儲,我們提供了一系列基於賣家的子帳號,每乙個子帳號對應乙個崗位角色,隨著賣家領域的深入,崗位不斷擴充,我們的使用者名稱非常多,崗位非常多。

多域多角色開放引擎

千牛做了乙個多域多角色開放引擎,使得資源接入方便,條件接入方便。資源設定了使用使用者的人群後,千人千面相關的資源在客戶端進行呼叫時,會首先將資源載入出來,然後根據設定條件載入使用者身上屬性,進行合併計算,返回給客戶端,客戶端就只能看到他使用的外掛程式。

雲資料前置服務

雲資料前置概念提出的背景:

業務解決常用手段

問題

資料洪流:

高成本資料同步方案

資料同步實現了乙個雲端表到本地表的同步方案。該方案具備易用性和靈活性。我們會有搜尋引擎維護使用者相關關係,同時我們會維護使用者相關的有效裝置,也會有面向目標的過濾層,儲存使用者同步日誌等,右邊是服務端的工具。

千牛資料同步方案接收層執行on的操作,目前提供api call的方式,未來可以監聽雲端庫變動,同時也可以接收notify、metaq的事件訊息;關係層會呈現資料放大效應;使用者層執行的是表的變更。

平台資料解決方案

千牛整體的關係層目前通過三層過濾解決更新百萬資料的難題。第一層為粗分桶,通過使用者域的切分直接對使用者進行粗過濾,基於基礎的標籤納入到粗分桶的過程,我們通過阿里雲的opensearch開放搜尋引擎來做的;第二層為業務級過濾,主要依賴業務方真正實現這層的關係中心,對於業務方須看不同的case;第三層為端兜底過濾,哪怕是百萬級資料,也可以快速直接推送到端上,並且關係表達是準確的。

1688接入千牛 幫阿里商家發現全球供貨「水源」

如果沒有貨源,對於我們來說就是無源之水,而好的貨源,就是緊缺資源了。一位 賣家這樣告訴記者。為了讓全球買更加容易,讓 千萬商家更方便地 找到好貨 千牛除了為商家開店提供訂單 客服 培訓 資金貸款等服務,還拓展了直接對接阿里巴巴強大貨源體系的構建,直擊商家痛點,為他們解決了在全球範圍內提供一站式好貨源...

阿里巴巴高階技術專家李浩 千牛開放從雲到端

議題名稱 千牛開放從雲到端 議題簡介 歷年雙11都是一次不斷創造歷史的過程,這中間有無數買家的血拼和賣家的努力,千牛作為賣家工作的第一入口,每天有數百萬賣家真正的work at alibaba。從當年的阿里巴巴賣家版,到現在的一站式os工作台,本演講涵蓋了千牛基於端支援二方三方業務開發所做的優化和官...

千姿百態專案經理3 「牛X」專案經理3

前面說到,他成功捍衛了自己的權力,解決了公司領導直接干涉專案組成員工作的事情,但是公司領導對他仍然不放心,只是不再直接干涉,而是 監督 下面講講他是怎樣解決這個問題的。故事二 領導不信任,全程監督工作 他的做法,可能在很多人的意料之外,他並沒有像很多書上建議的那樣,上任之初,領導不信任的時候,要多與...