精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

語聊房架構演進實踐

開發 架構
隨著架構的演進,我們需要有合適的評估機制,來評估變化對架構的影響,防止架構隨著時間推移而退化。架構由很多維度構成,包括性能,安全性,穩定性,代碼規范等,對于不同的維度,我們需要建立不同的指標來評估。

序言

羅馬不是一天建成的。語聊房當前架構也是不斷演進的結果。

在技術架構層面,語聊房作為搭建在直播體系上的業務,使用既有技術架構體系可以幫助我們快速搭建早期產品,但隨著業務迭代,已有技術體系又成為新的技術架構的負債。

同樣在業務架構層面,語聊房產品已經迭代一年,產品形態依然在快速變化,已有的業務架構又會成為新的業務架構的阻礙。

每一次產品需求的迭代,都會對已有技術架構和業務架構造成雙重沖擊。

本文將結合語聊房持續演進的過程,談談業務視角下的架構演進。以及如何構建能應對各種變化的系統,不斷達到新的平衡。

語聊房來龍去脈

了解架構演進之前,我們先了解語聊房業務的來龍去脈。從語聊房的前身PC版本多人連線算起,整塊業務到現在已經迭代一年。

圖片圖片

上圖介紹了這一年來的語聊房產品迭代的2個主要階段。

第一個階段是2022年7月,從0到1的產品探索期。直播已有的互動能力比如主播和主播視頻PK,能力模型是圍繞一對一建設的。一方發起另一方接受就可以開始互動,一方退出這一場互動就會結束。這種互動模型在產品上存在諸多限制,比如無法支持一個房間多個主播同時互動的業務。于是為了滿足用戶需求,我們開始探索了多主播間的互動能力,包括主播與主播,主播與觀眾的音視頻互動的能力。在這個階段主要目標是對齊競品,同時完善我們開播工具的基礎能力,豐富主播互動玩法。

第二個階段是2023年,語聊房項目經過戰略升級,成為專項進行運營。既是一次巨大的機會,又是巨大的挑戰。一方面我們在功能層面與競品還有明顯的距離。另一方面在技術架構層面,語聊房的架構是從主播與主播間互動模型演變過來,與語聊房主播與用戶間的互動還有很多需要調整的地方。同時相比探索期,專項整體迭代節奏加快,而且對技術質量要求更高。所以在這個階段,主要目標變成在功能層面快速迭代以滿足用戶訴求, 同時技術架構上需要快速調整以響應產品變化。如何又快又好的完成需求,成為這一階段技術上的主要矛盾。

圖片圖片

上圖介紹了戰略升級后, 語聊房在用戶體驗升級與產品迭代上進行的具體功能迭代事項。

架構演進實踐

直播架構體系

語聊房業務構建與直播體系之上,所以要了解語聊房的架構,就必須先了解我們當前的直播業務和架構,才能幫助我們建立全面的認識,更好的理解決策時的一些思考。

圖片圖片

上圖是典型的直播業務UI視圖,中間部分為視頻流播放器,上方為主播信息,榜單等信息,下方包括房間公告,彈幕互動,底部互動按鈕等業務信息。

用戶通過點擊直播間,進入直播間,觀看主播推送的視頻流,同時可以通過彈幕,禮物等方式與主播進行實時互動。

圖片圖片

上圖所展示直播架構只是當前的直播架構的冰山一角,完整的架構遠比這個復雜。但為了更好的聚焦于語聊房架構,我們重點介紹將會與語聊房有交集的流程和模塊。

術語介紹
  • 采集(Capture):采集是指將視頻信號從攝像頭、屏幕或其他視頻源設備中捕獲。采集設備通常是視頻編碼器、硬件捕捉卡或網絡攝像頭等。采集設備將視頻信號轉換為數字信號,并將其傳遞到下一個步驟,即編碼。
  • 編碼(Encoding):編碼是指將采集到的視頻信號壓縮成適合網絡傳輸的格式。在直播中,通常使用H。264或H。265這樣的視頻編碼標準來實現。編碼后的視頻文件大小更小,傳輸速度更快。
  • 推流(Streaming):推流是指將編碼后的視頻數據傳輸到互聯網上的服務器。推流可以使用實時傳輸協議(RTMP)、HTTP動態自適應流媒體協議(HLS)或動態自適應流傳輸協議(DASH)等協議來實現。
  • 轉碼(Transcoding):轉碼是指將推流服務器上的視頻文件轉換為不同的分辨率、比特率和格式,以適應不同的設備和網絡速度。轉碼可以將高清視頻轉換為標清視頻,或將視頻文件轉換為適用于移動設備的格式。
  • 分發(Distribution):分發是指將轉碼后的視頻文件分發到全球各地的觀眾。CDN通過使用各種技術,如邊緣緩存、負載均衡和就近路由等技術,確保視頻可以在最短的時間內傳遞給觀眾。觀眾可以通過從CDN緩存服務器請求視頻文件來觀看直播。
  • 拉流(Playback):拉流是指觀眾從CDN緩存服務器請求視頻文件,并在其設備上播放視頻。觀眾可以使用各種設備觀看視頻,如計算機、智能手機、平板電腦和智能電視等。拉流過程中,CDN通常會根據觀眾的設備和網絡速度,自動選擇最佳的視頻文件分辨率和比特率。
  • P0接口: 用戶進房后需要獲取視頻流格式,清晰度,大小,地址,橫豎屏,以及房間類型等信息,為播放視頻流做準備
  • P1接口: 完整的直播間視圖,不僅包含視頻流播放, 還需要獲取房間相關的業務信息,比如房間類型,標題,分區,公告,彈幕,送禮以及相應的業務信息等
  • B端客戶端: 指主播進行直播所使用的客戶端,包括B站官方的PC直播姬,app直播姬,web直播等,還有第三方程序比如OBS等
  • C端客戶端: 指用戶觀看直播使用的客戶端,包括app粉版,ipad,web等。

主播首先使用B端客戶端打開直播間,然后通過B端客戶端采集進行直播的內容,比如攝像頭,話筒,游戲程序,屏幕等內容,然后將內容通過壓縮編碼成合適的格式推送到視頻云。視頻云需要將接收到的視頻數據轉換成不同的視頻格式并分發到全球各地不同的節點,用來滿足各地觀眾使用不同的終端,對分辨率和格式的不同的需求。

介紹完B端這一系列流程后,下面就是觀眾使用C端客戶端進入直播間。首先需要請求業務服務器P0和P1接口,P0接口會根據C端用戶位置,終端設備,分辨率等維度,返回視頻拉流地址,同時C端客戶端也會根據視頻橫豎屏類型,房間類型等渲染出相關的視頻內容進行播放。P1接口會根據房間和用戶屬性維度,返回當前房間相關的直播業務信息,比如房間分區,不同分區往往對應不同的業務玩法等。

同時直播內容安全也是非常重要的一環,我們需要保證觀眾看到的視頻符合法律法規。所以需要對主播推送視頻進行審核。通過審核后的內容才能推送給用戶觀看,所以不可避免的會造成延時,也就是主播與觀眾的時間軸不一致。上圖中專門在每個環節上標注了延時時間。一方面我們需要延時來保證內容安全,同時各個子系統處理,分發,流轉也需要時間,另一方面我們又希望提供主播與觀眾實時互動的能力。畢竟如果用戶發完彈幕,幾十秒后才能收到主播反饋,那用戶體驗將會收到極大影響。這一點對于實時性要求特別高的語聊房業務也是一個難點。

沉淀多人互動模型

經過上面的介紹我們已經了解了直播的基本架構。已有的架構數據鏈路是主播音視頻數據經過視頻云推送給用戶。舉個列子就像有一個舞臺,主播在舞臺上表演,用戶在舞臺下觀看。主播如果需要和另一個主播進行互動,就需要一個電話。我們使用的“電話“就是RTC,我們使用RTC技術來解決主播間實時音視頻通信的需求。

術語介紹

  • RTC(Real-time Communications)實時通訊。RTC是對實時通信的更加寬泛的統稱,包含H323 SIP 私有協議等等通信標準,涵蓋從端,服務器,支撐系統等一整套的通信標準,通信的形式包括實時語音,實時視頻,實時文本等。

在做主播多人連線之前,已有的互動模式包括主播和主播視頻連線,主播和用戶連麥等功能都是一對一互動模型。主播邀請另一個主播或用戶發起一次視頻連線或語音連麥,另一方同意即開始互動。然后其中一方退出本次互動狀態就變為結束。顯而易見,這無法滿足下圖這種類似于聊天室,主播可以邀請多人同時互動的業務需求。

圖片圖片

所以我們首先需要分離出場次和會話的概念。

主播首先創建一個互動場次,場次之內可以分別邀請多個主播,單個主播的加入離開對應會話概念。基于場次與會話的抽象,主播可以創建場次后邀請多個主播同時進行視頻連線。即使場次創建人退出,場次仍然可以存在。

術語介紹

  • 場次: 場次是多人互動中的基本單位,通常表示一次互動活動,場次由主播創建,主播可以通過申請或邀請與其他主播進行實時視頻交流。
  • 會話:會話是場次的基本單位,通常一個場次關聯多個會話,一個用戶的一次加入與離開對應一次會話的建立與結束
  • 頻道: 主播與RTC服務端鏈接的資源標識, 通常一個會話與一個頻道一一對應,每個頻道都有一個唯一的頻道ID,用戶可以通過頻道ID加入到指定的頻道中。

圖片圖片

上圖是新增場次,會話,頻道等領域之后的多人互動模型業務架構圖,與上面直播業務架構相比,我們屏蔽了推流到觀看過程細節,重點關注與rtc相關的業務交互。

當主播使用互動功能時,客戶端將rtc音視頻數據作為一個采集源, 與其它的采集源數據合成后推送給視頻云,最后用戶拉取視頻流觀看。

圖片圖片

這里又引出了一個新的問題,既然主播間可以使用rtc進行實時音視頻互動,那用戶也接入rtc,是否就可以不經過視頻云直接觀看主播的直播?

答案是yes。業內也有很多互動直播間只基于rtc的能力實現。但是顯而易見,作為探索性業務,基于實現成本的考慮,作為旁路系統接入的實現成本遠遠低于改造整條鏈路。但帶來的缺點就是,業務服務需要同時考慮2套系統的狀態的一致性。這個狀態一致性也會在后面給系統的演進帶來更多的挑戰。

圖片圖片

上圖是基于業務架構圖所對應的應用架構圖

我們在服務層增加新的服務,用來處理場次,會話和rtc渠道的關系。

B2B擴展到B2C

技術層面搭建好主播與主播的互動能力以后。我們沉淀了多人互動模型的技術資產。但產品層面還遠遠不夠,一方面主播只能使用PC直播姬進行互動,缺少移動端互動能力,減少了能使用的主播數量。另一方便還不支持主播與觀眾進行互動,減少了互動功能使用場景,也減少了主播進行互動的意愿。

圖片圖片

我們認為社交是促進主播開播的一個契機。,語音聊天是非常重要的社交場景,有助于激發主播開播動機。

為了支持產品訴求,我們架構上需要做出如下的調整:

  • 支持用戶使用實時音視頻能力與主播進行互動
  • 支持用戶管理上下麥行為,包括靜音,踢人等操作
  • 支持觀眾送禮給互動用戶,提升用戶上麥互動積極性
  • 數據鏈路從B端單向推送到C端 改成 雙向流動。

圖片圖片

上圖是經過調整后的多人語聊業務架構圖,相比多人互動架構圖,我們屏蔽了rtc相關的交互細節,重點關注擴展到C端用戶后系統架構的變化。

首先是互動能力擴展到移動客戶端, 產品層面支持C端用戶參與互動。我們根據用戶是否參加互動,區分用戶為觀眾態和互動態。

觀眾態:用戶不加入rtc頻道,通過視頻云拉取主播推送的視頻流,流里包含所有互動用戶的rtc音頻流。

互動態:用戶不拉取視頻云視頻流, 通過rtc音頻流參與互動

圖片圖片

然后是基于RBAC模型的用戶權限設計。增加角色控制不同主播,管理員,用戶的權限。

術語定義

  • 用戶:發起操作的主體,按類型可分為2B和2C用戶,在語聊房場景中包括主播,房間管理員,用戶,審核人員,后臺管理等
  • 角色:連接了用戶和權限的關系,每個角色可以關聯多個權限,同時一個用戶關聯多角色
  • 權限:用戶可以訪問的資源,包括操作權限,數據權限等。在語聊房場景中包括上下麥行為,玩法管理等。

最后是打通送禮鏈路, 以前觀眾只能給主播送禮,現在支持參與互動的用戶送禮,這樣也能提升用戶互動意愿。

麥位管理云端化

首先介紹一下麥位是什么:

參考上圖多人互動業務示意圖,主播的視頻會固定在視頻流左側,右側四個小格展示加入互動的其他主播。

參考上圖語聊房業務示意圖,主播固定在上方區域,下方2排共8個圓圈展示參與互動的用戶頭像。

麥位管理包括互動用戶位置的分配,操作按鈕展示與控制,比如靜音,踢人,是否說話中狀態展示等邏輯。

然后是問題的關鍵, 云端化對應的是本地化。最早設計時這些邏輯會什么會放到客戶端上來做?這個問題還要從多主播互動這個業務來回答,多主播互動中每個房間5個位置,最多5個房間一起互動,一共5X5=25個位置。同時每次互動用戶上下麥,都會導致25個位置渲染發生變化。另一方面早期的麥位控制也比較簡單。不包括復雜的位置分配等邏輯。所以當時評估下來放在客戶端上實現比服務端實現成本低。等到多人語聊業務上線以后,最初的實現已經無法滿足復雜的麥位管理控制需求了。所以我們需要將麥位分配與控制邏輯從客戶端遷移到服務端。

控制權的轉移

從客戶端遷移到服務端的關鍵點在于控制權的轉移。將之前麥位數據從B端產生,通過透傳通道推送到C端消費。變成由B端和C端發送數據到服務端,服務端進行計算,存儲和推送。同時架構升級過程中,需要兼容新老版本組合情況,保證程序向后兼容,不影響線上產品已有功能。

圖片圖片

眾所周知,兼容性與代碼邏輯和數據結構密切相關。新的代碼會產生新的數據結構,同時要兼容老的數據結構與邏輯。老的代碼處理不了新的數據結構,需要通過版本做訪問隔離。遷移過程中代碼與數據組合情況與測試點:

服務端數據

服務端代碼

B端版本

C端版本

說明

兼容測試 ,分平臺測試(PC直播姬,ios直播姬,Android直播姬,ios粉開播,Android粉開播)

回歸測試

不存在, 數據版本會和B端版本保持一致

功能測試

人為使用姿勢問題, 在未發布服務端代碼的環境使用新版本

主播與用戶的實時狀態同步

麥位管理功能統一到服務端后,帶來的好處是業務擴展更容易,方便我們擴展更多的功能。但同樣也因為所有數據都需要到服務端來獲取,對于服務端的接口性能和實時性帶來了巨大的壓力。特別是當存在類似于賽事或者活動等大型熱門房間,百萬用戶同時在線時,實時狀態同步將是一個巨大的挑戰。

圖片圖片

我們通過組合使用多個渠道,利用各自特點來平衡實時性與性能開銷之間的矛盾。

  • 基于長鏈接消息的全量狀態同步。主動push,延遲在毫秒級,但無法保證必達。
  • 基于push的推拉結合方案,在長鏈接不穩定的情況下, 基于接口被動輪詢,延遲在秒級,同時服務端性能開銷大。
  • 針對性能開銷大的問題,增加網關層內存緩存,匯聚相同房間的請求,減少透傳到業務服務端的壓力
  • 基于視頻流里SEI,針對未登錄用戶,非重點保障場景等場景,使用視頻流里SEI攜帶數據來進行同步,延遲是10秒級別但是性能開銷非常小,作為最后的兜底
  • 客戶端收到不同渠道來源的數據,基于數據的版本進行排序,避免消費數據時出現亂序

互動玩法引擎

經過上述一系列調整以后, 業務架構基礎性比較穩定,開始探索語聊房內營收相關玩法。

圖片圖片

圖片圖片

通過在已有的送禮鏈路上,疊加玩法生命周期管理,分數計數,狀態轉移。構建玩法生態。

圖片圖片

生產配套體系

【全鏈路應用監控】

圖片圖片

一個成熟的系統是一定需要一個無死角的觀測能力,在任何領域都是這樣。醫療、航空,包括人體系統。

將應用系統監控進行分層,可以分為如下幾層:

1、基礎設施監控(CPU、內存、網絡、機房等)。這一層是任何計算機應用的基礎依賴。

2、請求和成功率監控(QPS/TPS、RT、SLO等)。這一層主要是觀測請求的數量和成功率。

3、業務監控(業務漏斗轉化、業務狀態扭轉等)。這一層主要是觀測業務系統內部的邏輯分支。

一般系統監控上述1、2層基本是默認都有的平臺設施。作為業務系統,只有1、2層是不夠的,1、2層監控無法感知業務異動。簡單講,如果你寫了一個在業務上有問題的分支代碼,此代碼不會產生任何錯誤code。這類問題,可能1、2層監控是毫無察覺的,因為1、2層不觀測這些。業務監控,一方面可以感知業務異動,還可以感知到1、2層故障帶來的業務影響。

【開播互動問診】

圖片圖片

用戶看到的產品功能,可能只是冰山上面很小的部分。冰山下面部分是一個龐大的系統,會跨越多個微服務單元。語聊房是非常典型的多技術棧(app、pc、web、RTC、comet長鏈、業務后端等) ,多業務單元(語聊房業務后端、看播、開播、審核-工程、審核工作臺、視頻云、RTC等)合作的超大型項目。

人工排查一個問題的成本是非常高的。在項目初上線時,當時的相關系統配套并不完善,一個小問題都要把業務鏈條上的所有環節的人都要拉上一起排查。通過問診平臺可以一鍵全鏈路觀測到所有節點。

圖片圖片

圖片圖片

可以看到一個用戶的所有生命周期,對于排障基本可以節省90%時間。

底層思維

上面介紹完語聊房業務形態和系統架構一年以來的變遷。我們了解了因為產品形態調整,架構需要調整來適配新的產品形態。有些調整短期是好的,但長期又花了更多時間處理新來的問題有些調整踩了一些坑。為了技術現狀或者工時排期要求原因導致的架構妥協,然后事后又付出更多的工時成本遷移。回過頭來想想是什么原因導致我們的已有架構在變動產品形態調整時,總是在償還已有技術債務,或者自己挖了新坑自己再去填坑?

互聯網從業人員可能最討厭的一個詞就是“變化“。產品需求變了,導致技術方案需要調整,代碼需要重寫。代碼改動了,測試用例又得重新設計。工作量增加又導致項目時間調整,輕則軟件bug,重則項目失控。

那么有沒有通用的萬能法則可以指導我們進行架構演進的,以不變應萬變,真正又好又快?看過或者聽過“沒有銀彈“這句話的人,可能已經知道問題的答案了。但是為什么沒有呢?探討一個可以解釋萬事萬物的萬能法則,不管是誰聽了都會熱血澎湃。古人也不例外,早在兩千多年前,古希臘哲學家亞里士多德認為在各種物理規則的基礎上,還有一種東西可以統轄和解釋所有的物理規則。在他的作品集中,把他對邏輯、含義和原因等抽象知識的討論編排在他討論物理學的書冊《自然學》之后,并給這些討論一個標簽:《在自然學之后》(τ? μετ? τ? φυσικ? βιβλ?α)。從古希臘文翻譯到英文,于是就有了Metaphysics這個詞,看到這個詞就會聯想到最近很火的Metaverse,還有改名為Meta的Facebook。如果按照元宇宙的譯法,那么metaphysics就可以翻譯為“元物理”。但日本人在翻譯這個詞語時,從《易經 》找到了 “形而上者謂之道,形而下者謂之器”一詞。于是Metaphysics便翻譯成了大家耳熟能詳但又不太了解的“形而上學”這一詞。

不管是亞里士多德的“本原“還是老子的“道“,都認為事物的現象背后必定有一個統一的規律,可以統轄和解釋所有的規則,闡述天地世間萬象變化。基于這種思想,就有了“格物致知”的說法。既然道存在于萬事萬物之中。那么同樣的萬事萬物中也都包含著道,也就是說只要把一個事務研究透了,自然也就獲得了道。王陽明和他的學生錢德洪一起切磋學問,二人都認為要做成儒家的“圣賢”,就得格盡天下之物,于是就指著園內的竹子,讓錢德洪去看。錢德洪一入夜就去窮究竹子的道理,竭盡心思想了三天三夜,也沒格出個所以然,還積勞成疾了。于是王陽明親自去格竹,也是竭盡心思早晚想不到竹子的道理,到了第七天,也因勞思而得病。

按照我們現代人的思維里,即使把竹子研究的再好,也造不了汽車。同樣的竹子格的再好,也成不了圣賢。世界上也不存在靜止的,孤立的“道“能夠解釋萬事萬物。這件事也成為王陽明日后心學思想體系建立過程中的重要事件。心學主張知行合一,按照通俗的話也就是討論“認識”和“行動”的關系。

我們都知道,不管是做技術架構,還是代碼結構組成方式,都反應了我們對產品的認知。如果沒有恰當的認知,就不可能做出合適的架構,甚至可能會導致項目徹底失敗。既然沒有永恒不變的“道“,那我們應該用什么樣認知來指導我們的行動呢?

這個問題在《實踐論》中做出了回答:

通過實踐而發現真理,又通過實踐而證實真理和發展真理。從感性認識而能動地發展到理性認識,又從理性認識而能動地指導革命實踐,改造主觀世界和客觀世界。實踐、認識、再實踐、再認識,這種形式,循環往復以至無窮,而實踐和認識之每一循環的內容,都比較地進到了高一級的程度。這就是辯證唯物論的全部認識論,這就是辯證唯物論的知行統一觀。

下面我將結合語聊房實際業務聊聊到對這幾個階段的認識。

從直接經驗到感性認識

眾所周知,互聯網產品是對我們生活或者生產過程中的抽象,除了極少數天才級的產品大師能夠設計出引領人類社會的產品,大多數的產品還只是打破時間和空間的限制,滿足人類社會的需求。

下面是我們常用的一些產品對現實生活中的實現。

圖片圖片

圖片圖片

圖片圖片

圖片圖片

同樣的道理,語聊房這個產品也不是憑空產生的,聊天的需求一樣存在于現實生活中

圖片圖片

圖片圖片

現實世界的場景是個例化的,與實際產品還有很大的鴻溝。首先了解現實世界的運行邏輯,具有初步的感性認識后,我們需要進一步抽象成通用型的業務模型。然后通過觀察競品的類似產品的實現也有助于幫助我們建立感性認識。經過這個階段,我們會對架構產生初步的概念。

從感性認識到理性認識

現實的情況和競品的實現幫助我們建立初步感性認識,通過對這些感性認識的整理,加以概念定義,類型歸類,邏輯重組等階段就能建立初步理性認識。但不同競品的商業模式,品牌調性以及完成度都會與我們千差萬別,直接全盤照抄往往是失敗的前兆,同時工期上也是不可接受的。通過與產運規劃對齊,理清實現路徑,幫助我們了解每個階段的主要目標和主要矛盾。

圖片圖片

到這個階段,我們已經對所要做的事情有了初步的理性判斷,這有助于我們下一步架構落地。

理性認識用于指導行動實踐

抽象與統一認知

抽象是指從具體的事物中抽離出共性的概念或特點,將它們提煉出來形成一種抽象的概念或理論。計算機領域有一句名言,“任何問題都可以通過增加一層間接的中間層來解決“。原因就在于人的認知能力是有限的,抽象有助于降低我們理解復雜事物的成本。但是抽象同樣也會帶來模糊實現的問題。當我提起“馬“, 我可能指的是河馬,你腦海中可能想到的是斑馬。所以我們需要,通過顯示的定義概念來統一語言,幫助我們更好地溝通和理解彼此的意思,才能做到團隊理解一致性。在領域驅動設計中,抽象和統一語言是非常重要的概念,它們可以幫助我們更好地理解和設計領域模型,從而創建高質量的軟件系統。

面向領域設計

語言只有在特定語境中才有意義,在不同語境中同一個概念往往會有不同的意義。特定語境往往對應確定的業務模型,比如同樣是“訂單”,在秒殺領域,拼單領域,團購領域等往往代表著不同的業務流程和現實意義。在代碼實現上,我們通過package,class等方式來進行模塊劃分。在領域驅動設計中,我們通過限界上下文來保證領域內概念的一致性。

圖片圖片

在不同的BoundContext(限界上下文)中,同樣的一個名詞代表不同的業務模型或者模型的不同維度。

拿【語聊房間】來說,在內容安全Subdomain → 審核BoundContext中,這個【房間實體】是有著特定字端的(房間管控等級、是否需要認證手機號、是否大陸身份等)。這些字端是【語聊房間】概念實體在安全領域上下文中的特定表現。在整個開發架構上,我們也是參考領域來劃分每個模塊的職責邊界。

圖片圖片

領域模型是逐步下沉的業務載體,彼此獨立。最終通過在usercase 層 application來組裝編排領域模型。

隨著行動實踐的過程中調整理性認識

對業務問題空間求解是軟件開發的首要問題。通過對問題空間的不斷定義與探索,我們映射得到對應解空間的系統架構與應用架構。這一階段主要目標是持續交付我們的架構。

最小迭代和增量更新

圖片圖片

在網上流傳廣泛的介紹MVP的圖。

先制作出一個最小可行的產品(例如小型滑板車或自行車),測試用戶對其概念的認可程度,再根據反饋來決定如何進一步完善產品。MVP策略的優點在于試錯成本低速度快風險低,能夠滿足快速迭代的需求。

風險基線

隨著架構的演進,我們需要有合適的評估機制,來評估變化對架構的影響,防止架構隨著時間推移而退化。架構由很多維度構成,包括性能,安全性,穩定性,代碼規范等,對于不同的維度,我們需要建立不同的指標來評估。

在開發架構管理上,進行代碼級別的保障,包括以下措施:

在CICD上增加代碼質量檢查,保證代碼符合規范:

圖片圖片

在自動化測試平臺上,與測試團隊共建自動化測試用例,覆蓋全部關鍵場景用例,保證每次代碼變更不會產生預期外的業務影響:

圖片圖片

Devops方面,對關鍵接口P999響應時間進行監控,保證系統性能不劣化:

圖片圖片

每日自動巡檢,保證服務健康度:

圖片圖片

參考文章

  • 企業級業務架構設計:方法論與實踐(https://weread.qq.com/web/bookDetail/b20326d0718f6395b20f4af)
  • 演進式架構(https://weread.qq.com/web/bookDetail/29b32c7071c9562629b5940)
  • 解構領域驅動設計(https://weread.qq.com/web/bookDetail/4fc328a0729350754fc56d4)
  • 持續交付:發布可靠軟件的系統方法(https://weread.qq.com/web/bookDetail/44232e40717db787442af8a)

本期作者

朱德江嗶哩嗶哩資深開發工程師朱德江嗶哩嗶哩資深開發工程師

王清培嗶哩嗶哩資深開發工程師王清培嗶哩嗶哩資深開發工程師

趙書彬嗶哩嗶哩高級開發工程師趙書彬嗶哩嗶哩高級開發工程師




責任編輯:武曉燕 來源: 嗶哩嗶哩技術
相關推薦

2023-09-27 07:28:02

CQRS架構直播房間

2024-06-07 17:42:29

2018-03-28 09:53:50

Android架構演進

2022-08-26 20:00:00

系統架構

2022-08-25 22:24:19

架構電商系統

2024-03-06 11:22:33

架構演進技巧

2021-04-22 13:38:21

前端開發技術

2022-07-29 14:53:09

數據實踐

2022-12-23 08:58:35

字節跳動YARN架構

2018-09-18 09:30:17

微信熱補丁Android

2015-12-09 15:16:03

架構師京東架構

2010-11-15 17:23:09

網絡架構

2022-01-05 10:28:11

前端開發技術

2021-10-08 09:57:38

Java開發架構

2010-11-18 11:44:27

廣域網優化網絡拓撲H3C

2024-06-05 12:03:43

微服務架構場景

2024-05-07 07:58:10

數據架構大數據中間件架構

2018-11-15 07:56:26

2020-11-18 10:54:29

垃圾回收器演進
點贊
收藏

51CTO技術棧公眾號

青青草视频在线免费观看| 天天操天天射天天爽| 国产成人免费| 一区二区在线观看av| 国产区日韩欧美| 天天天天天天天干| 中文字幕免费一区二区| 亚洲国产日韩精品在线| 一区二区三区视频在线观看免费| 国产不卡在线| 久久久噜噜噜久噜久久综合| 91中文在线观看| 黄色av网站免费| 黄色成人91| 菠萝蜜影院一区二区免费| 日本少妇xxxx| 高清国产一区二区三区四区五区| 狠狠色狠狠色综合日日五| 老汉色影院首页| www在线免费观看| heyzo一本久久综合| 91精品视频在线| 黄色av网站免费观看| 在线看片一区| 欧美第一页在线| 人人澡人人澡人人看| 少妇一区二区视频| 亚洲缚视频在线观看| 欧美体内she精高潮| 最新日韩一区| 色欲综合视频天天天| 精品一区二区三区无码视频| 黄色大片在线播放| 中文字幕不卡的av| 日本免费一区二区三区| 性xxxx视频播放免费| 夫妻av一区二区| 91嫩草在线视频| 国产精品毛片一区二区在线看舒淇| 久久一二三四| 全亚洲最色的网站在线观看| 日韩三级免费看| 亚洲高清成人| 欧美激情一级欧美精品| tube国产麻豆| **女人18毛片一区二区| 日韩在线观看免费高清| 国产精品20p| 久久不见久久见国语| 亚洲欧美999| 性久久久久久久久久| 欧美交a欧美精品喷水| 亚洲福利在线视频| av无码一区二区三区| 麻豆精品少妇| 亚洲男人天堂2024| 永久免费看mv网站入口78| 婷婷综合一区| 国产香蕉97碰碰久久人人| 中文幕无线码中文字蜜桃| 国产精品一区二区99| 一本久久综合亚洲鲁鲁| 欧美a在线播放| 911精品美国片911久久久 | 国产裸体视频网站| 亚州一区二区| 亚洲国产91精品在线观看| 日本xxxx裸体xxxx| 国产成人精品一区二区免费看京| 亚洲午夜未删减在线观看 | 老司机99精品99| 亚洲女人****多毛耸耸8| www.欧美黄色| 日韩影院在线| 欧美体内she精视频| 国产成人强伦免费视频网站| 中文字幕区一区二区三| 亚洲精品久久久久中文字幕二区| 亚欧洲乱码视频| 久久一区二区三区喷水| 欧美高清视频免费观看| 依依成人综合网| 日本va欧美va欧美va精品| 91久久精品国产| 无码精品视频一区二区三区| 国产欧美日韩视频一区二区| 亚洲成人动漫在线| 国产高清视频色在线www| 欧日韩精品视频| 一卡二卡三卡四卡五卡| 精品国产一区二区三区不卡蜜臂| 国产一区二区三区久久精品| 久久r这里只有精品| 日韩午夜在线| 国产在线不卡精品| 少妇喷水在线观看| 国产精品拍天天在线| 青草视频在线观看视频| 欧美va在线观看| 亚洲第一福利网| 成人无码精品1区2区3区免费看| 很黄很黄激情成人| 国产精品色午夜在线观看| 日本黄视频在线观看| 国产精品久久777777| 男人日女人视频网站| 99国内精品久久久久| 亚洲欧美一区二区激情| 免费无遮挡无码永久在线观看视频| 久久激情中文| 国产精品一区二区av| 日本最新在线视频| 在线一区二区三区四区| 中国xxxx性xxxx产国| 欧美一区二区| 国产欧美一区二区三区四区| 欧美少妇另类| 午夜精品久久久久久| 国产人妻精品久久久久野外| 欧美3p在线观看| 国产精品久久久av久久久| 污视频网站在线播放| 夜夜嗨av一区二区三区| 欧美一级xxxx| 日韩精品久久| 日本韩国欧美精品大片卡二| 视频一区 中文字幕| 中文字幕一区二区视频| 欧美一级特黄a| 国产一区二区三区日韩精品| 45www国产精品网站| 人人妻人人澡人人爽久久av| 一区二区三区四区亚洲| 人妻体体内射精一区二区| 九色精品国产蝌蚪| 国产v综合ⅴ日韩v欧美大片| 亚洲欧美综合在线观看| 午夜影院久久久| 小毛片在线观看| 亚洲成人原创| 精品卡一卡二| 欧美久久天堂| 亚洲久久久久久久久久久| 日本中文字幕免费观看| 不卡av在线网| 你懂的av在线| 日韩高清影视在线观看| 欧美在线xxx| 青青国产在线| 在线视频国内自拍亚洲视频| 中文字幕在线观看免费高清| 日本伊人色综合网| 亚洲国产精品一区在线观看不卡| av亚洲一区| 精品国产一区二区三区在线观看| 88av在线视频| 一区二区高清免费观看影视大全| 人妻精油按摩bd高清中文字幕| 国产精品www.| 久久99精品久久久久久久久久| 欧美18—19sex性hd| 亚洲丝袜在线视频| 亚洲一级av毛片| 亚洲免费av网站| 久久性爱视频网站| 免费永久网站黄欧美| 婷婷久久青草热一区二区| 日韩成人综合网站| 欧美日韩ab片| 日本福利片高清在线观看| 欧美性视频一区二区三区| 成人三级视频在线观看| 国产成人在线免费| 黑人糟蹋人妻hd中文字幕| 精品国精品国产自在久国产应用| 成人国产精品免费视频| 国产精品—色呦呦| 亚洲美女av黄| 国产精品一级视频| 亚洲aaa精品| 一区二区三区在线观看免费视频| 国产在线乱码一区二区三区| 黄色av网址在线播放| 青青草成人影院| 97久久天天综合色天天综合色hd| 这里有精品可以观看| 久久精视频免费在线久久完整在线看| 午夜精品久久久久久久99| 色诱视频网站一区| 在线观看美女av| www国产精品av| 宇都宫紫苑在线播放| 乱人伦精品视频在线观看| 中文字幕一区二区三区有限公司| 黄色欧美在线| 国产精品一区二区久久国产| 嗯啊主人调教在线播放视频 | 日韩免费电影一区| 狠狠狠狠狠狠狠| 一区二区高清视频在线观看| 日韩免费成人av| 99久久99久久精品国产片果冻| 在线观看免费av网址| 亚洲一区黄色| 欧美日韩午夜爽爽| 成人vr资源| 久久99精品国产99久久| 2023国产精华国产精品| 国产精品啪视频| 亚洲黄色中文字幕| 欧美贵妇videos办公室| 免费a级在线播放| 亚洲偷欧美偷国内偷| 欧美自拍第一页| 在线不卡中文字幕| 波多野结衣家庭主妇| 亚洲成a人v欧美综合天堂下载 | yiren22亚洲综合伊人22| 亚洲国产精品免费| 精品国自产在线观看| 欧美日韩国产精品自在自线| 日韩在线视频不卡| 午夜视频在线观看一区| 青娱乐国产盛宴| 亚洲欧美日韩电影| 91香蕉视频网| 国产精品网站导航| 亚洲黄色小说视频| 久久人人超碰精品| av直播在线观看| 99久久99久久综合| 欧美无人区码suv| www.成人在线| 老熟妇精品一区二区三区| 高清在线不卡av| 欧美熟妇另类久久久久久多毛| 精品中文av资源站在线观看| 91制片厂毛片| 久久国产精品99精品国产| 一区二区三区视频在线观看免费| 日本欧美韩国一区三区| 黄色三级视频在线| 久久国产精品露脸对白| 日韩成人av免费| 国产伦精品一区二区三区免费迷| 8x8x成人免费视频| 黑人巨大精品欧美黑白配亚洲| 手机在线国产视频| 国产曰批免费观看久久久| 九九热视频免费| 国产精品一区在线观看乱码| 野花视频免费在线观看| 成人动漫中文字幕| 日韩av手机在线播放| 91蜜桃婷婷狠狠久久综合9色| 女人被狂躁c到高潮| 久久久久久久综合狠狠综合| 国产免费一区二区三区网站免费| 国产欧美日韩卡一| 亚洲欧美精品久久| 亚洲激情av在线| 亚洲黄色一区二区| 色综合久久99| 这里只有久久精品视频| 欧美另类变人与禽xxxxx| 午夜精品小视频| 亚洲精品国产拍免费91在线| 国产在线视频福利| www.xxxx欧美| 久草在线视频资源| 日韩美女福利视频| 亚洲免费资源| 国产在线精品一区二区中文 | 成人一二三四区| 欧美日韩高清影院| 亚洲精品一区二区三区新线路| 日韩电影视频免费| www亚洲人| 久久免费视频这里只有精品| 成人勉费视频| 91在线色戒在线| 久久精品色综合| 视频一区免费观看| 国产主播精品| 亚洲成色www.777999| 国产精品一品二品| 中文字幕一区二区三区人妻| 中文字幕中文在线不卡住| 久久婷婷综合国产| 欧美又粗又大又爽| 亚洲卡一卡二卡三| 伊人久久综合97精品| av色在线观看| 国产日韩欧美中文| 一区二区三区日本久久久| 自拍偷拍亚洲色图欧美| 亚洲综合国产激情另类一区| 久久精品国产露脸对白| 久久综合精品国产一区二区三区 | 免费在线成人| 日批视频在线看| 国产精品欧美一级免费| 欧美亚洲精品天堂| 日韩美女一区二区三区四区| 国产女主播在线写真| 久久久在线观看| 国产日韩欧美中文在线| 亚洲国产精品视频一区| 国产欧美综合一区二区三区| 男插女视频网站| 中文字幕精品综合| 秋霞精品一区二区三区| 精品三级av在线| 久久亚洲天堂| 国产精品久久久久秋霞鲁丝| 亚洲第一福利社区| 免费看欧美黑人毛片| 国产精品77777| 欧美一级特黄高清视频| 91官网在线观看| 香蕉视频911| 97久久精品在线| 97一区二区国产好的精华液| 欧美一级中文字幕| 狠狠色综合色综合网络| 天美传媒免费在线观看| 欧洲av一区二区嗯嗯嗯啊| 黄色av免费在线看| 青草成人免费视频| 欧美日韩夜夜| 蜜桃传媒一区二区三区| 成人免费高清视频在线观看| 久久久久久久久久久网 | 国产精品久久综合av爱欲tv| 一区二区三区日本久久久| 男女午夜激情视频| 91在线国产观看| 三级视频在线观看| 日韩精品极品毛片系列视频| 3344国产永久在线观看视频| 国产精品久久久一区二区三区| 欧美私人啪啪vps| www.四虎精品| 亚洲大尺度视频在线观看| 国产自产一区二区| 91av福利视频| 免费成人结看片| 9久久婷婷国产综合精品性色 | 在线观看久久av| 成人免费在线观看视频| 亚洲图片小说在线| 狠狠色丁香婷综合久久| 欧美人禽zoz0强交| 欧美不卡一区二区三区四区| 黄色的视频在线观看| 好吊妞www.84com只有这里才有精品| 9色精品在线| 成人午夜福利一区二区| 欧美日韩亚洲综合在线| 精品176二区| 国产精品伊人日日| 国产一区二区三区久久久久久久久 | 国产成人精品一区二区三区视频| 一区二区三区四区视频在线观看| 国产精品系列在线播放| 国产精久久久久久| 亚洲欧美另类国产| 国产成人久久精品麻豆二区| 992tv成人免费观看| 91亚洲国产成人精品一区二区三| 日本免费在线观看视频| 色婷婷综合久久久久中文字幕1| 国产在线不卡一区二区三区| 日韩中字在线观看| 亚洲国产精品成人综合色在线婷婷 | 夜久久久久久| 91麻豆制片厂| 精品福利视频一区二区三区| 在线免费日韩片| 亚洲欧美一二三| 成人91在线观看| 糖心vlog精品一区二区| 欧美日韩国产91| 国产探花在线精品| 日本成人在线免费| 色婷婷一区二区三区四区| 菠萝菠萝蜜在线视频免费观看| 久久精品国产美女| 韩国精品久久久| 日韩中文字幕在线观看视频| 日韩在线一区二区三区免费视频| 97se亚洲| 色噜噜狠狠一区二区| 亚洲福利视频一区| 日韩免费啪啪| 久久婷婷开心| 国产福利一区二区三区视频| 国产女主播喷水视频在线观看| 欧美激情乱人伦一区| 日韩大片在线播放|