【店(diàn)小(xiǎo)蜜】阿裏雲-達摩院-雲小(xiǎo)蜜對話(huà)機器人
小(xiǎo)米商(shāng)城升級協議前言
阿裏雲-達摩院-雲小(xiǎo)米對話(huà)機器人産品基于深度機器學習技術、自然語言理解技術和對話(huà)管理技術,爲企業提供多引擎、多渠道、多模态的對話(huà)機器人服務。2017年,雲小(xiǎo)米對話(huà)機器人開(kāi)始在公有雲公測,同期也在混合雲場景中(zhōng)不斷拓展。爲了同時保證公有雲和混合雲發布的效率和穩定性,我(wǒ)們采用了1-2個月的大(dà)版本叠代。經過幾年的發展,爲了更好地支持業務發展,架構升級和重構始終是無法繞過的一(yī)道坎。爲了保證穩定性,
1. 梳理各個模塊相較線上版本接口依賴變化情況,決定十幾個應用的上線順序、每批次發布比例;
2. 模拟演練上述1産出的發布順序,保證後端服務平滑升級,客戶無感知(zhī);
以上動作1、2每次都需要2-3周左右的時間梳理和密集練習,但隻能保證開(kāi)放(fàng)的PaaS API的順利更新;
因爲控制台服務需要保持前端、API、後端版本一(yī)緻才能實現無損體(tǐ)驗(如果每次叠代都升級API版本開(kāi)發,協調成本會非常大(dà)),在權衡之下(xià),它是在低流量時期推出的。縮短發布時間,避免部分(fēn)控制台模塊偶發錯誤導緻的業務問題。針對以上問題,我(wǒ)早就考慮過用藍(lán)綠發布、灰度等手段來解決問題,可惜對話(huà)機器人在阿裏巴巴雲内部業務區,以及普通雲的擴展産品不應再被允許。沒有多餘的機器,流量管理完全不可能。
遷移到阿裏雲
帶着以上疑問,2021年9月,雲小(xiǎo)米将業務遷移到阿裏雲。
實踐
“當時印象最深的就是這張圖了,雖然當時不知(zhī)道中(zhōng)間件團隊要做什麽,但我(wǒ)記得兩個關鍵詞:三位一(yī)體(tǐ)和分(fēn)紅。沒想到最後2021年,我(wǒ)真的很享受這個紅利。”
雲小(xiǎo)米使用的是集團内部的HSF服務框架,需要遷移到阿裏雲上,阿裏雲和阿裏内部業務域之間有互通互治的需求。Cloud小(xiǎo)米的公共服務部署在公有雲VPC中(zhōng),内部部署一(yī)些依賴的數據服務。内部和雲服務需要RPC互調,這實際上是一(yī)個典型的混合雲場景。在簡單梳理了他們的核心訴求後,可以總結爲以下(xià)三點: 希望盡可能使用開(kāi)源解決方案,方便後續業務推廣;需要在網絡通信層面保證安全;低成本的業務升級和轉型。
在這種情況下(xià),經過多次讨論和探索,最終确定了方案
解決了互通和服務注冊發現的問題之後,就該看看如何實現服務治理方案了。
阿裏雲雲流量治理
遷移到阿裏雲後,流量控制方案有很多,比如群内全鏈路方案、群内單元化方案等等。
設計目标和原則是引入交通隔離(lí)方案。在上線過程中(zhōng)企業網絡設計概括,當新舊(jiù)版本的服務同時存在時,可以保證流量在相同版本的“集群”中(zhōng)流動企業網絡設計概括,可以解決重構帶來的問題。内部接口不兼容問題。需要解決上線過程中(zhōng)控制台的流暢問題,避免前端、後端、API更新不一(yī)緻導緻的問題。不需要上線的應用不得參與上線上線。應盡量減少資(zī)源消耗。畢竟做産品要考慮成本和利潤。方案選擇 群内全鏈路方案: 目前,不支持阿裏雲雲組内的單元化解決方案:主要解決業務規模、容災等問題。這與我(wǒ)們遇到的問題不同。搭建獨立集群,版本叠代時切換集群:成本太高自建:在同一(yī)個集群中(zhōng)隔離(lí)新舊(jiù)服務,保證同一(yī)個用戶的流量隻在同一(yī)個版本的服務内流動
以 RPC 爲例:
全鏈路灰度方案
就在1、2、3、4覺得自己還不夠完美的時候,在研究準備自建方案5的時候,轉了一(yī)圈,拿到了阿裏雲MSE微服務管理團隊。它還利用RPC框架的路由策略來實現流量治理,實現産品化(微服務引擎-微服務治理中(zhōng)心)。“在那之後,似乎很多事情變得容易了......
從上圖可以看出,每個應用都需要構建基礎環境和灰色環境。除流量入口-服務網關外(wài),各下(xià)遊業務模塊根據需要部署灰色環境。如果某個時間如果一(yī)個模塊在線沒有任何更改,則不需要部署。
各個中(zhōng)間件、Mysql的治理方案,:持久化或半持久化數據,業務模塊本身保證數據結構兼容升級;Redis:由于對話(huà)産品中(zhōng)會有多輪問答場景,問答上下(xià)文在Redis中(zhōng),如果不兼容,那麽上線會影響會話(huà)期間的C端用戶。因此,目前業務模塊本身保證了Redis的數據結構兼容升級;配置中(zhōng)心:基線(base)環境和灰色(gray)環境維護兩組全配置,會帶來比較大(dà)的工(gōng)作量,爲了避免手動保證數據一(yī)緻性的成本,基線(base)環境爲被監控,并且灰色(灰色)環境被監控爲灰色。如果沒有配置灰色,會自動監控;(雲小(xiǎo)米2018年做混合雲項目,爲了保證混合雲和公有雲使用一(yī)套業務代碼,建立了中(zhōng)間件适配層,這個能力在适配層實現。) RPC服務:使用阿裏雲一(yī)代理基于Java Agent技術,使用Dubbo框架的路由規則實現,無需修改業務代碼;
應用程序隻需要添加一(yī)點配置:
交通管理解決方案
流量分(fēn)配模塊決定了流量治理的粒度和管理的靈活性。
對話(huà)機器人産品需要灰度發布和藍(lán)綠發布。目前,使用以下(xià)兩種解決方案:
灰度發布:部分(fēn)應用單獨更新,采用POP的灰度引流機制,支持百分(fēn)比和UID的策略引流到灰度環境。藍(lán)綠發布:全鏈路落地效果
上線後第一(yī)次發布的效果:“目前各模塊新版代碼已經上線,包括發布和功能回歸大(dà)約需要2.5小(xiǎo)時,相比上一(yī)次上線有很大(dà)的提升直到淩晨。” MSE微服務治理全鏈路灰度解決方案滿足雲小(xiǎo)米業務在快速發展的背景下(xià)快速叠代和仔細驗證的需求,通過技術幫助雲小(xiǎo)米快速實現企業級全鏈路灰度能力。随着業務的發展,流量治理會有更多的需求。下(xià)一(yī)步,我(wǒ)們将繼續與微服務治理産品團隊合作,拓展本解決方案的能力和使用場景,
更多微服務治理能力
使用MSE服務治理後,發現有更多開(kāi)箱即用的治理能力,可以大(dà)大(dà)提高研發效率。包含服務查詢、服務合同、服務測試等。這裏值得一(yī)提的是,雲上的服務測試是在雲上爲用戶提供一(yī)個私有網絡,這樣我(wǒ)們就可以方便的調用自己的服務。我(wǒ)們可以忽略感知(zhī)雲上複雜(zá)的網絡拓撲,不需要服務相關的協議,不需要搭建測試工(gōng)具,隻需要使用控制台來實現服務調用。支持 Dubbo 3.0 框架和 Dubbo 3.0 主流協議。
結束語
最終,雲小(xiǎo)米對話(huà)機器人團隊成功實現了全鏈路灰度功能,解決了長期以來困擾團隊的發布效率問題。在這個過程中(zhōng),我(wǒ)們做出了新的選擇和嘗試,比如将部分(fēn)業務遷移到阿裏雲,将服務框架升級到.0,選擇MSE微服務治理能力。“世界上沒有路,人走的越多,路就變了。” 經過我(wǒ)們工(gōng)程師的反複探索和實踐,我(wǒ)們可以爲更多的學生(shēng)沉澱最佳實踐。相信這些最佳實踐會像大(dà)海中(zhōng)璀璨的明珠,經過生(shēng)産實踐和時間打磨,會變得更加輝煌。
是這個頁面嗎(ma)?
是 否
很高興聽(tīng)到!告訴我(wǒ)們怎麽做。
很抱歉聽(tīng)到這個消息。告訴我(wǒ)們怎麽做。
最後修改于 2022 年 14 月:爲 (#1600) () 添加 desc
了解更多學習網絡推廣知(zhī)識,就來廣西網絡推廣。
上一(yī)篇:液化天然氣站建站 評述:2021年7月71.72價格種類分(fēn)析(組圖)广西南宁弄潮营销策划有限责任公司 : 版權所有