...

阿裡雲開源業内首個(gè)應用多活項目 又裡AppActive,與社區共建雲原生(shēng)容災标準

2022-01-20

作(zuò)者:中西(xī)(github @zhongxig)銀街,AppActive 負責人(rén),來(lái)飛離自阿裡雲雲原生(shēng)高可用架構團隊,從事(shì)容災架構和故障得會快(kuài)恢的研發和開源工作(zuò)。習微

摘要: 繼高可用架構團隊的 Sentinel、Chaosblade 業家開源後,第三個(gè)重磅高可用産品:應用多活 AppActiv熱舊e 正式開源,形成高可用的三架馬車,幫助企業構建穩定可靠的企業級生(s聽老hēng)産系統,提高企業面對容災、容錯們作、容量等問題的穩态系統建設能(néng)力。

1 月(yuè)(yuè) 11 日,在上(shàng)海的雲雜可原生(shēng)實戰峰會上(shàng),阿裡雲智能(néng)研究員很筆(yuán)丁宇發布了(le)“應用多活技綠件術白皮書”,同時(shí)為(wèi)了(le)推動業界容災的發農自展,建立雲原生(shēng)業務(wù)容災标準,阿裡雲對外兵件開源“應用多活”中間(jiān)件:AppActive。

什(shén)麼是 AppActive

“業務(wù)大規模擴展機房(fáng)資源不頻作可用怎麼辦?機房(fáng)挂了(le)怎麼辦?業務(wù白快)突然奔潰怎麼辦?台風(fēng)地震導緻斷電怎麼辦?”

2013 年,當時(shí)淘寶完成去 O 沒多久,雙十一(yī)的規就你模較上(shàng)年進一(yī)步飛增。阿裡的工程師正面臨着上(sh空報àng)述的這(zhè)一(yī)系列問題,一(yī)方面是機來近房(fáng)資源非常緊張,容量不足,另一(yī)方面是杭州出現(xi下拿àn)罕見的高溫天氣,機房(fáng)面臨斷電的月兵風(fēng)險。異地多活架構在這(zhè)個議花(gè)背景下(xià)孵化(huà)出來(lái)秒下,它的載體(tǐ)是集團版本的 UnitRouter&U錯見nitBrain 。

随着淘寶的業務(wù)規模演進,異地多活也(yě)從近土低距離同城雙機房(fáng)到遠(yuǎn)做遠距離異地雙活,再到三地四單元、多地多活,沉澱了(le)豐富的機房內工(fáng)級應用多活經驗。

2019 年,阿裡巴巴系統全面上(shàn明討g)雲,異地多活架構也(yě)跟着上(shàng)雲的節奏孵化(huà)出阿計章裡雲雲産品 AHAS-MSHA,服務(wù)集團和雲上(shàng)客戶

2022 年 1 月(yuè)(yuè) 11 日,A化喝HAS-MSHA 代碼正式開源,命名為(wèi化物) AppActive 。

AppActive 是一(yī)個(gè)面向業務的好(wù)應用構建雲原生(shēng)高可用多活容災架構的開源中間(員可jiān)件,它的主要價值:

  • 分(fēn)鐘級 RTO。 恢複時(shí)間(jiān)高技快(kuài),阿裡内部生(shēng)産級别恢話計複時(shí)間(jiān)平均在 30s 以内,外部客戶生近會(shēng)産系統恢複時(shí)間(jiān)平均在 1 分子錢(fēn)鐘。

  • 資源充分(fēn)利用。 資源不存在閑置的問題,多機房(fáng件多)多資源充分(fēn)利用,避免資源浪費。

  • 切換成功率高。 依托于成熟的多活技術架構和可視(shì票時)化(huà)運維平台,相較于現(xiàn)有容災小窗架構,切換成功率高,阿裡内部年切流數千次的成功率高達 99.9% 以上(sh姐紙àng)。

  • 流量精準控制。 應用多活支持流量自頂到底封閉,依托精準引流能(銀書néng)力将特定業務(wù)流量打入對應機房(fáng),企業可基于此優勢少雪能(néng)力孵化(huà)全域灰度、重點流量保障等特性。

為(wèi)什(shén)麼開源

通過服務(wù)阿裡集團近 9 年實戰經驗及服務(wù)雲上(shà科火ng)客戶 2 年多的商(shāng)業化(huà)叠代積累,AHAS-MSH少樹A 已經在涵蓋阿裡的十餘家大型企業的容災場(chǎng)景中落地,使自醫用量在持續增長,代碼的穩定性和功能(néng通訊)特性也(yě)經過充分(fēn)的檢驗。

2021 年,國内外多家知名公司、雲平台出現(xiàn)較嚴重服知兵務(wù)中斷、宕機事(shì)件。這(z金我hè)也(yě)為(wèi)企業敲響警鐘,越來(lái)越多的企業把容災建們電設提上(shàng)日程。在解決容災問題的同時(shí),為(wèi樂街)了(le)保持對成本的控制、支撐未來(話門lái)的多雲架構演進和災難容災的确定性,許多企業選擇家靜以多活容災的方式進行嘗試。

但(dàn)是業内對于多活沒有統一(yī)的認知拿場,對于“多活”這(zhè)個(gè)詞不同企業有遠舊不同的定義,很多企業往往以為(wèi)已經鐘媽實現(xiàn)了(le)“多活”,可當故障來高服(lái)臨的時(shí)候,才發現(xiàn)當前系地樹統的故障逃逸能(néng)力非常弱,業務(wù)站身恢複和故障定位無法解耦,拖累了(le)企業生(shēng)産,造成了(le黑錯)外部輿情、資金(jīn)損失等問題;另外,有的企業在了(le)解“多活”之後懂讀,下(xià)意識想要企業内部先投入資源進行技術預演,但(dàn)由于缺少又睡經驗,往往會造成人(rén)力物力等資源的重複浪費。随就小着雲原生(shēng)技術發展,越來(lái)越多的客戶采用雲原生農木(shēng)技術進行系統構建。如(rú廠多)何在雲原生(shēng)上(shàng)構建穩定高可用的系統,對低是一(yī)個(gè)核心挑戰。“多活”的認知偏差會加劇了下(jù)企業在基礎設施成本、應用改造成本、運維成本等數站成本面的投入,但(dàn)存在效率低(dī)下(xià)、錯用甚至無用或者不現公用的問題,從而享受不到“多活”帶來(lái)的穩定性紅(hóng)南拍利。因此“多活”需要一(yī)個(gè)相對統一(yī)的标準與認知,加深使用服大者對它的理(lǐ)解和使用,從而提高業務(wù)系統的物近穩定性。

在當前雲原生(shēng)發展的現(xiàn)狀和市吧算(shì)場(chǎng)認知下(xià),AppActive 的森術項目負責人(rén)中西(xī)表示,應用多活的開源和解讀,樹討可以初步定義“多活”的标準和實現(xiàn),幫助開發窗明者形成統一(yī)的“多活”認知。在企業構建多活架構時(shí務明),基于應用多活共享已有的成熟經驗,避免多餘的資源浪費。同要會時(shí),不同的企業具備不同的業務(wù)場(chǎng)景妹購和優勢,反向推動應用多活進一(yī)步完善和演進成熟的多活形态及能(néng得路)力。希望依靠社區的力量,讓“多活”成為(wèi)一(yī)項事(也好shì)實意義的普惠技術,而不是望而卻步的部分(fēn)人(rén街老)可用技術,幫助更多的企業和個(gè)人(rén)構建生(shēn紅些g)産級别的高可用架構。

開源的内容

AppActive 标準介紹

在應用多活的标準定義裡有 LRA(同城多活)道放、UDA(異地多活)、HCA(混合雲多活服河)和 BFA(業務(wù)流量多活),詳細見《應用多活技術白皮書店動》。在 AppActive v0.1 版本中,村線我們優先實現(xiàn) BFA 和 UDA 的基礎能(n術國éng)力,在後續版本中完善 BFA 和 UDA 的同時(shí)空銀,新(xīn)增 LRA、HCA 能(néng)力。商又本文重點介紹 BFA、UDA。

1. 業務(wù)流量多活(BFABus問老iness Flow Active)

BFA,指的是應用多活的最終呈現(xiàn)是業務(wù),多活容話火災系統具備按照業務(wù)特征進行生(shēng司資)産流量的精細化(huà)調配。

AppActive 在 BFA 指标中,支持流量自動糾偏,強路(視文lù)由到指定機房(fáng)自閉環,屬于流量的精細化(huà)調配。

在非法流量打入機房(fáng)時(shí),機房(fáng)的各紅中層插件均會依托于統一(yī)的調度規則進行處理(lǐ資黃):

  • 接入層識别錯誤流量,自動糾錯到正确的機房(fán慢下g)。

  • 服務(wù)層識别錯誤流量,自動糾錯到正确的機房(fáng)。

  • 數據層識别錯誤流量,為(wèi)保證數據影章質量,抛出異常,寫入失敗。

2. 異地多活(UDA,Ultra Dist個書ance Active)

UDA,指的是在超遠(yuǎn)距離(機房(fáng)間(ji熱草ān)距超過 300 公裡)時(shí),吃學業務(wù)系統仍具備較好(hǎo)(hǎo)的訪問性能(nén東到g)。進入容災态時(shí),RTO、RPO 在分(fēn都吧)鐘級。

AppActive 在 UDA 指标中,支持訪問性能(néng)良好(爸山hǎo)(hǎo)。

在接入層支持流量解析,将請求流量進行解析,在長将流量打入機房(fáng)的應用機器(qì)。基于應用側 S資這ervlet 插件、Dubbo 插件、MySQL 插件的能(né市弟ng)力,業務(wù)流量請求在單一(yī)機房(fáng)裡面自月我閉環,最終讀寫到本機房(fáng)的數據庫。

在超遠(yuǎn)距離場(chǎng)景下(xià),由于流量封對作閉在機房(fáng)内部,因此業務(wù)系統仍舊具備他相較好(hǎo)(hǎo)的訪問性能(néng)。

進入容災态的 RPO 由開源數據同步組件或商(shāng)業化(huà)同步工師懂具進行保障,RTO 在 AppActive金數 0.1 版本中僅提供初級的流量切換能(n生數éng)力,後續版本會演進到生(shēng)産級别 西音RTO 保障工具。

AppActive 模塊介紹

AppActive 屬于應用多活的一(y畫土ī)種定義和實現(xiàn),它有數據平面和管控平面的媽市整體(tǐ)實現(xiàn)。數據平面分(fēn)為會長(wèi) 4 部分(fēn),均支持在不變更原有企業使用亮可技術組件基礎上(shàng),以插件的形式店自增加能(néng)力:

  • 接入網關(guān)。接入網關(guān)作內歌(zuò)為(wèi)業務(wù)流量打入機房(fáng)的第一睡湖(yī)跳(tiào),負責應用多活入口流量的識作懂别和分(fēn)發,具備機房(fáng)路(lù)由和應用路(lù坐文)由兩個(gè)核心能(néng)力。

  • 服務(wù)層。業務(wù)流量在機房(fáng)内部和跨機女不房(fáng)的同步調用方式,一(yī)般有 Consumer錯老、Provider、注冊中心等角色,具備流量黑作路(lù)由、流量保護、故障隔離三個(gè)核心能(néng)力,避免讀錢調用錯誤導緻的數據髒寫,加速切流期間(jiān)的她師業務(wù)恢複。

  • 消息層。業務(wù)流量在機房(fáng文笑)内部和跨機房(fáng)的異步調用方式,基于消息削峰事相填谷,一(yī)般有 Producer、Consumer、Broker術志 等角色,具備流量路(lù)由、流量保護、故障隔離三個(gè)她腦核心能(néng)力,避免消息錯投導緻的數據髒寫,秒都保護切流期間(jiān)消息不丢。

  • 數據層:涵蓋業務(wù)應用數據讀寫、數據見門存儲和數據同步,其具備流量路(lù)由、藍制數據一(yī)緻性保護、數據同步三個(gè)核玩得心能(néng)力。

管控平面核心涵蓋多活容災規則的日常運維和災難畫車場(chǎng)景的流量切換。

當前 AppActive 處于 v0.1去懂 版本,開源:

  • 上(shàng)述的數據平面所有層的定義基礎實現(xiàn)。

  • 接入層網關(guān)的 Nginx 插件實現(xiàn費刀)。

  • 服務(wù)層 Dubbo2.x 插件實現(xiàn黃看)。

  • 數據層開源 MySQL 插件實現(xiàn)。

  • 管控平面流量切換的基礎能(néng)力。

開發者可基于 v0.1 的能(néng)力,進行應用多活的基本功你那能(néng)運行和驗證。

AppActive 後續規劃

  1. 豐富接入層、服務(wù)層、數據層插件,支持更多技術可個組件到 AppActive 支持的列表中。

  2. 增加消息層的插件實現(xiàn),支持消息應用多活能(néng)力。

  3. 增加其他層在應用多活的标準和實現(xiàn)。

  4. 支持 Web 白屏化(huà),follow窗你 應用多活 UDA 的标準,提升 RTO。

  5. 遵循應用多活 HCA 标準支持混合雲多活形紙山态。

  6. 遵循應用多活 LRA 标準支持同城多活形态

起點

“異地多活”和“單元化(huà)”源于阿裡,也(yě)受到了(l好會e)業界的認可。阿裡也(yě)一(yī)直希望應用多活的媽新産品生(shēng)态可以做到标準和開放(fàng),對業界做出貢獻。

基于應用多活的标準技術,業務(wù)應用在不同樹北的雲廠商(shāng)之間(jiān),不同的基礎設施之間(放北jiān),不同的芯片之間(jiān)都可以實現公看(xiàn)互通互聯。業務(wù)應用在資源充分(fēn)利用的同時(拍懂shí),達到分(fēn)鐘級甚至秒(miǎo)級的 R舊門TO 指标,真正意義的做到不懼故障。

今天,AppActive 開源的第一(yī)個(gè)版本隻是應用多活領樹得域的一(yī)個(gè)起點,歡迎大家參與進來(lái)麗我一(yī)起共建應用多活生(shēng)态。想要了(le)解更多 西會AppActive,釘釘搜索群号:34222602,加入 AppActi日子ve 開源討(tǎo)論群參與討(tǎo)論吧(ba)!

點擊此處,立即前往下(xià)載《應用多活技術白皮書》。


來(lái)源:oschina