亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種第三方模塊適配接入視聽媒體內(nèi)容資源服務(wù)平臺的技術(shù)研究

        2022-04-26 07:53:08鄧成勝倪業(yè)鵬
        中國傳媒科技 2022年4期
        關(guān)鍵詞:服務(wù)

        付 坤 鄧成勝 倪業(yè)鵬

        (中國傳媒大學(xué) 數(shù)據(jù)科學(xué)與智能媒體學(xué)院,北京 100000)

        1.研究背景

        在“互聯(lián)網(wǎng)+”的技術(shù)和業(yè)務(wù)創(chuàng)新大潮下,傳統(tǒng)廣電需要吸納云計算和云原生技術(shù),以及其底層所支撐的微服務(wù)技術(shù)。[1]與傳統(tǒng)技術(shù)架構(gòu)相比,基于微服務(wù)技術(shù)架構(gòu)的視聽媒體內(nèi)容資源服務(wù)平臺具有明顯優(yōu)勢,但也由于需要接入大量第三方微服務(wù)模塊,平臺存在著諸多問題,如:第三方微服務(wù)模塊接口不規(guī)范、存在安全隱患、效率低下等問題;微服務(wù)架構(gòu)系統(tǒng)和傳統(tǒng)架構(gòu)系統(tǒng)形成生態(tài)隔閡,不同架構(gòu)的系統(tǒng)不能互用;微服務(wù)模塊開發(fā)語言多樣繁雜,導(dǎo)致系統(tǒng)的維護(hù)成本增加,不利于行業(yè)發(fā)展等問題。[2]

        針對上述問題,本文提出了一種第三方模塊適配接入視聽媒體內(nèi)容資源服務(wù)平臺的技術(shù)方案,為視聽媒體微服務(wù)生態(tài)建設(shè)發(fā)展提供了一條新的思路:將第三方模塊(即除原生開發(fā)團(tuán)隊開發(fā)的功能模塊以外,其他團(tuán)隊開發(fā)的微服務(wù)模塊或非微服務(wù)模塊)通過該技術(shù)進(jìn)行適配接入之后,與原生平臺相連,將第三方模塊部署到原生平臺上,以拓展平臺的功能,進(jìn)而形成視聽媒體微服務(wù)生態(tài)系統(tǒng)。[3-4]

        2.整體解決方案

        在計算網(wǎng)絡(luò)技術(shù)的不斷發(fā)展和普及下,軟件體系架構(gòu)在信息系統(tǒng)的整體設(shè)計中愈發(fā)重要,傳統(tǒng)單體架構(gòu)設(shè)計模式具有耦合度高、業(yè)務(wù)模塊復(fù)用性差等問題,無法滿足現(xiàn)代用戶的使用需求。為了解決第三方模塊適配接入尤其是單體架構(gòu)應(yīng)用適配接入的問題,本文提出第三方模塊適配接入技術(shù)整體解決方案,如圖1所示,該方案使用一種基于容器的微服務(wù)架構(gòu),通過使用容器技術(shù)保證第三方模塊的可用性,提高適配接入效率。[5]

        圖1 第三方適配接入技術(shù)整體解決方案

        通過對國內(nèi)外相關(guān)技術(shù)進(jìn)行調(diào)研,參考視聽媒體微服務(wù)架構(gòu)(MMA),提出基于容器的微服務(wù)技術(shù)棧,明確容器和鏡像倉庫是第三方模塊適配接入的基礎(chǔ)。依據(jù)視聽媒體七大功能子域劃分,研究視聽媒體業(yè)務(wù)微服務(wù)業(yè)務(wù)功能拆分方法和原則,為第三方模塊開發(fā)團(tuán)隊提供指導(dǎo),制定通用API接口規(guī)范。[6]根據(jù)通用API接口規(guī)范,規(guī)范指導(dǎo)第三方模塊開發(fā)團(tuán)隊進(jìn)行微服務(wù)模塊接口設(shè)計,為平臺和復(fù)雜微服務(wù)接口提供統(tǒng)一交互界面。研究微服務(wù)模塊鏡像制作技術(shù),指導(dǎo)第三方模塊開發(fā)團(tuán)隊打包微服務(wù)模塊代碼和運行環(huán)境并上載至平臺鏡像倉庫,使微服務(wù)可以跨平臺部署上線運行。[7]

        視聽媒體微服務(wù)第三方模塊適配接入技術(shù)整體解決方案,可以分為如下步驟。

        2.1 業(yè)務(wù)的微服務(wù)化

        通過對視聽媒體業(yè)務(wù)和數(shù)據(jù)流,代碼邏輯的提取,結(jié)合7大域340多個微服務(wù)劃分,將原有的業(yè)務(wù)按需拆分成獨立的、適合系統(tǒng)的微服務(wù)架構(gòu)。[8-9]

        2.2 微服務(wù)接口設(shè)計

        模塊拆分完成后,在業(yè)務(wù)系統(tǒng)背景下,根據(jù)微服務(wù)模塊的功能和特性進(jìn)行接口設(shè)計。指導(dǎo)接入方修改原有的單體應(yīng)用結(jié)構(gòu)或者不符合規(guī)則的接口,按照商議好的原則進(jìn)行新的接口代碼實現(xiàn)。[10]

        2.3 微服務(wù)鏡像打包封裝

        第三方開發(fā)團(tuán)隊本地自測完新的代碼后,將第三方模塊的代碼和環(huán)境通過本方案提供的方法,創(chuàng)建對應(yīng)的鏡像打包封裝,并在通過鑒權(quán)等一系列認(rèn)證后,準(zhǔn)入到鏡像倉庫中。

        根據(jù)以上解決方案,本技術(shù)研究內(nèi)容主要分為三個部分。

        首先容器是微服務(wù)的載體[11],通過鏡像封裝技術(shù)可以把微服務(wù)架構(gòu)的第三方模塊打包后上載到鏡像倉庫,方便部署,因此第一部分研究內(nèi)容為基于容器的微服務(wù)平臺,主要研究適合第三方模塊適配接入的技術(shù)棧。

        其次對于單體架構(gòu)的第三方模塊,需要進(jìn)行微服務(wù)化,微服務(wù)化主要包括服務(wù)拆分和接口設(shè)計,因此第二部分研究內(nèi)容為單體架構(gòu)第三方模塊的微服務(wù)化。

        對于微服務(wù)化后的第三方模塊,需要以容器的方式,進(jìn)行鏡像封裝,封裝后的鏡像可以屏蔽底層技術(shù)差異,在上載到鏡像倉庫后,模塊可以跨平臺運行,因此第三部分研究內(nèi)容為第三方微服務(wù)模塊鏡像封裝技術(shù)。[12]

        以上三部分內(nèi)容即完成了視聽媒體微服務(wù)第三方模塊適配接入技術(shù)研究,使單體架構(gòu)或微服務(wù)化的第三方模塊平滑接入平臺。

        3.基于容器的微服務(wù)平臺技術(shù)棧

        根據(jù)對視聽媒體微服務(wù)架構(gòu)(MMA)和容器等技術(shù)的理解,本文提出了一種基于容器的微服務(wù)平臺技術(shù)棧,為視聽媒體內(nèi)容資源服務(wù)平臺建設(shè)提供參考。根據(jù)研究,目前只有基于容器的微服務(wù)技術(shù)??梢员WC第三方模塊的適配接入,技術(shù)棧的具體方案如圖2所示。

        圖2 基于容器的微服務(wù)技術(shù)棧

        整個平臺分為兩層,底層同樣為IaaS層,可以是虛擬機(jī)或物理機(jī),容器無須關(guān)心底層資源的實現(xiàn)形式。中間為CaaS層,主要提供容器級別的服務(wù)。CaaS中包含了Docker、k8s和Istio,分別對應(yīng)容器生命周期管理,容器治理、微服務(wù)治理。該技術(shù)棧符合視聽媒體微服務(wù)架構(gòu)的特性需求,同時提供容器相關(guān)的服務(wù),為第三方模塊適配接入奠定基礎(chǔ)。

        4.單體架構(gòu)第三方模塊微服務(wù)化

        4.1 數(shù)據(jù)拆分方法

        本文主要采取的數(shù)據(jù)拆分方法為優(yōu)化的數(shù)據(jù)流驅(qū)動的拆分方法。具體拆分方法如圖3所示:

        圖3 第三方模塊拆分流程

        ①需求分析。由需求分析人員對待拆分的軟件系統(tǒng)需求進(jìn)行分析。根據(jù)系統(tǒng)用例或自然語言描述的業(yè)務(wù)邏輯,識別領(lǐng)域上下文和實體,為數(shù)據(jù)流圖的構(gòu)建做準(zhǔn)備。

        ②精簡數(shù)據(jù)流圖構(gòu)建?;诘冖俨街械挠美蜆I(yè)務(wù)邏輯分析,由數(shù)據(jù)分析人員手動構(gòu)建詳細(xì)版本的分層數(shù)據(jù)流圖和精簡的數(shù)據(jù)流圖。詳細(xì)版本的數(shù)據(jù)流圖構(gòu)建需要遵循方法預(yù)設(shè)的分解規(guī)則,精簡數(shù)據(jù)流圖所構(gòu)造的僅關(guān)注操作與相關(guān)數(shù)據(jù)存儲之間的關(guān)系,排除了諸如外部實體以及數(shù)據(jù)流傳輸?shù)木唧w數(shù)據(jù)之類的無關(guān)信息。[13]

        ③可拆分?jǐn)?shù)據(jù)流圖構(gòu)建。從精簡化數(shù)據(jù)流圖中提取操作和數(shù)據(jù)存儲之間數(shù)據(jù)交互信息,將精簡數(shù)據(jù)流圖通過算法自動轉(zhuǎn)化可拆分的數(shù)據(jù)流圖。之所以關(guān)注操作和數(shù)據(jù)存儲之間的數(shù)據(jù)交互,目的是避免數(shù)據(jù)存儲在拆分過程中被分到不同的微服務(wù)中,這樣可以保證在減小微服務(wù)粒度的同時,盡可能減少不必要的數(shù)據(jù)一致性的問題。[14-15]

        ④候選微服務(wù)識別。對第③步導(dǎo)出的可拆分的數(shù)據(jù)流圖,通過設(shè)計的算法進(jìn)行拆分,具體是對同一數(shù)據(jù)存儲的相關(guān)操作進(jìn)行聚合,然后對出現(xiàn)重復(fù)操作的聚合結(jié)果進(jìn)行合并,合并后的結(jié)果作為候選微服務(wù)。[16]

        4.2 微服務(wù)劃分算法優(yōu)化

        4.2.1 基于最小生成樹的拆分[17]

        本文實現(xiàn)了基于最小生成樹的算法來完成業(yè)務(wù)操作的聚類拆分,該算法依賴的參數(shù)是根據(jù)收集的操作間的數(shù)據(jù)流信息生成的帶權(quán)圖G、預(yù)期的微服務(wù)個數(shù)m 和每個微服務(wù)的類個數(shù)閾值n。其中,圖G的結(jié)點表示的是類級別的業(yè)務(wù)操作;邊權(quán)重表示的是操作結(jié)點之間的交互頻率,邊權(quán)重值越大,表示操作之間的交互越頻繁,耦合程度越高,即越傾向于被分到同一個微服務(wù)中。該階段算法的基本原理是:首先,通過Kruskal 算法生成圖G的最小生成樹MST;然后對最小生成樹的邊權(quán)重進(jìn)行分析和刪除,以實現(xiàn)圖的拆分。由于G1 的邊權(quán)重越大表示結(jié)點間的距離越近,因此在計算最小生成樹之前需要對邊權(quán)重值取倒數(shù);所生成的MST中包含了關(guān)系最為緊密的業(yè)務(wù)操作結(jié)點和邊,對MST 涉及的邊權(quán)重值進(jìn)行排序和反轉(zhuǎn)操作,依次刪除權(quán)重值越高的邊來實現(xiàn)耦合度較低的業(yè)務(wù)操作的拆分,并通過深度優(yōu)先搜索算法(Depth-First-Search,簡稱DFS)遍歷剩余邊組成的子圖。本文通過預(yù)期的微服務(wù)個數(shù)和每個微服務(wù)類個數(shù)閾值這兩個參數(shù)作為算法的終止條件,不同的參數(shù)設(shè)置可以產(chǎn)生不同的微服務(wù)化拆分結(jié)果,用戶可以根據(jù)自己的需求進(jìn)行設(shè)置,一定程度上保證了方法在使用過程中的靈活性。

        4.2.2 基于K-means 的數(shù)據(jù)庫表拆分[18]

        Database per Service 原則倡導(dǎo)每個服務(wù)維護(hù)自己的數(shù)據(jù)庫,其他的微服務(wù)通過向外暴露的接口來訪問服務(wù)私有的數(shù)據(jù),因此在向微服務(wù)架構(gòu)遷移時,需要對數(shù)據(jù)庫表進(jìn)行拆分?,F(xiàn)有的方法中涉及了數(shù)據(jù)庫表的拆分,但與業(yè)務(wù)操作拆分類似,其僅考慮了操作與數(shù)據(jù)存儲之間有無數(shù)據(jù)交互關(guān)系,使用預(yù)先定義的簡單規(guī)則來實現(xiàn)拆分;其他工作集中在通過設(shè)計階段數(shù)據(jù)庫實體的結(jié)構(gòu)分析以及其被系統(tǒng)訪問的特征來進(jìn)行拆分。然而一般情況下,單體系統(tǒng),尤其是復(fù)雜單體系統(tǒng)中使用的集中式數(shù)據(jù)庫中,數(shù)據(jù)庫表之間存在耦合和粘連性,設(shè)計階段單一特征分析和簡單的規(guī)則無法全面解決該問題,有可能會造成拆分的粒度過細(xì)或過粗,從而導(dǎo)致后期微服務(wù)之間的頻繁交互而影響性能。

        本文在前一階段業(yè)務(wù)拆分結(jié)果的基礎(chǔ)上,依據(jù)收集的類級別的業(yè)務(wù)操作與數(shù)據(jù)存儲之間的交互關(guān)系來分析其在運行時對數(shù)據(jù)的訪問特征,通過K-means 算法來實現(xiàn)數(shù)據(jù)庫表的有效拆分。K-means 算法依賴的參數(shù)是上一階段聚類產(chǎn)生的業(yè)務(wù)操作集合為結(jié)點、集合中操作與數(shù)據(jù)庫表交互關(guān)系為邊所生成的帶權(quán)圖G,以及根據(jù)數(shù)據(jù)庫實體關(guān)系分析初步設(shè)定的數(shù)據(jù)庫表中心點集合。具體實現(xiàn)過程中,由于操作對數(shù)據(jù)的訪問頻率越高同樣代表其之間的關(guān)系越緊密,因此以圖G邊權(quán)重值倒數(shù)計算結(jié)點到中心點的Dijkstra 最短路徑,將結(jié)點放到與之路徑最短的中心結(jié)點簇中;然后在每個中心點的簇中選出結(jié)點度最大的結(jié)點為該簇的中心點,直至中心點不再發(fā)生變化或迭代次數(shù)為0;最后輸出中心點與其簇中結(jié)點,其代表了包含數(shù)據(jù)庫表的微服務(wù)候選集。

        4.3 第三方模塊通用接口設(shè)計規(guī)范

        視聽媒體業(yè)務(wù)被拆分成7大域,340多個微服務(wù),這些微服務(wù)功能各不相同,本文結(jié)合面向?qū)ο缶幊毯筒僮飨到y(tǒng)函數(shù)的設(shè)計思想,提出視聽媒體微服務(wù)標(biāo)準(zhǔn)化接口設(shè)計方案如下。

        (1)所有接口都按照RESTful API風(fēng)格設(shè)計,通過HTTP協(xié)議調(diào)用。

        (2)所有微服務(wù)都按照以下8個接口封裝其功能:

        ①創(chuàng)建服務(wù)。根據(jù)用戶需求創(chuàng)建服務(wù),服務(wù)承載著用戶私有的一些使用設(shè)置,這些設(shè)置是一直存儲,不會隨著服務(wù)的關(guān)閉而重置(保存的信息可以是個性化場景配置,也可以是特定的素材),創(chuàng)建服務(wù)返回唯一的服務(wù)ID作為服務(wù)的標(biāo)識。

        ②打開(運行)服務(wù)。給指定的服務(wù)申請對應(yīng)的IT資源運行,進(jìn)入可工作狀態(tài)。接口參數(shù)可以按需加上回調(diào)url,當(dāng)服務(wù)運行過程中有需要通知業(yè)務(wù)方的可以通過此url進(jìn)行,比如通知服務(wù)運行后的結(jié)果。打開(運行)服務(wù)返回服務(wù)當(dāng)次運行期間有效憑證。

        ③關(guān)閉服務(wù)(可選)。服務(wù)當(dāng)次使用結(jié)束,可以關(guān)閉服務(wù)來釋放計算資源,減少資源的浪費。有些服務(wù)會自動關(guān)閉,不需要實現(xiàn)主動。

        ④獲取服務(wù)信息。包括服務(wù)名稱、當(dāng)前運行狀態(tài)(關(guān)閉、啟動中的百分比、運行中)、資源占用情況(CPU、內(nèi)存、IO等運行時狀態(tài))等。

        ⑤銷毀/刪除服務(wù)。不再需要使用的服務(wù)可以刪除,個性化配置將丟失。

        ⑥更新服務(wù)信息(可選)。服務(wù)創(chuàng)建完成后,可以修改創(chuàng)建時候提交的信息,如服務(wù)名稱等。

        ⑦獲取服務(wù)列表(可選)??梢垣@取某個用戶下面的所有服務(wù)列表,包括簡單的信息。

        ⑧服務(wù)設(shè)置(可選)。有些服務(wù)可以通過API方式設(shè)置,服務(wù)設(shè)置提供了默認(rèn)設(shè)置不滿足用戶需求的情況下,高級用戶自行設(shè)置服務(wù)參數(shù)的接口。

        該方案只需要對開發(fā)好的服務(wù)接口做簡單的二次封裝,功能邊界清晰,開發(fā)成本低,易于實現(xiàn)。以上接口可以滿足大部分微服務(wù)功能的表達(dá),同時接口設(shè)計屏蔽微服務(wù)的具體功能,只考慮服務(wù)、用戶和平臺三者的關(guān)系進(jìn)行抽象,降低平臺管理復(fù)雜度,減輕用戶學(xué)習(xí)成本。

        5.微服務(wù)模塊鏡像制作技術(shù)

        容器云平臺支持的兩種鏡像構(gòu)建的方式,如圖4所示。

        圖4 鏡像構(gòu)建的兩種方式

        其中自動構(gòu)建可以根據(jù)用戶選擇的基礎(chǔ)鏡像,配置啟動命令、環(huán)境變量、服務(wù)端口等相關(guān)參數(shù)后,后臺會根據(jù)配置的參數(shù)生成Docker file文件,然后通過調(diào)用Docker API構(gòu)建鏡像,并上傳到鏡像倉庫。

        手動構(gòu)建根據(jù)選擇基礎(chǔ)鏡像創(chuàng)建容器,并提供SSH服務(wù)以及映射相關(guān)的服務(wù)端口,用戶通過SSH登錄容器后,修改配置文件,添加、刪除文件等,且可以通過服務(wù)端口驗證修改的情況,確認(rèn)無誤,并在容器云平臺提交后,容器云平臺會自動生成鏡像并提交到倉庫。容器云平臺會記錄每個用戶的構(gòu)建記錄,通過云平臺可以檢索追蹤歷史構(gòu)建記錄,便于審計和分析。通過容器云平臺的鏡像管理控制臺,可以瀏覽當(dāng)前所有鏡像,并支持多維度排序,比如按鏡像名、用戶名、構(gòu)建時間等進(jìn)行排序。同時支持在每個鏡像的詳情頁,對鏡像的Logo、功能描述、應(yīng)用程序端口、啟動命令、環(huán)境變量、存儲路徑等進(jìn)行重新編輯。也支持鏡像使用頻次的統(tǒng)計等數(shù)據(jù)的統(tǒng)計。對于已經(jīng)部署的鏡像,可以通過重新部署選擇低版本的鏡像進(jìn)行回滾,這是在發(fā)布應(yīng)用的時候經(jīng)常使用的操作。構(gòu)建成功對應(yīng)服務(wù)的鏡像后,在自己的Docker中運行該鏡像即可實現(xiàn)服務(wù)的部署,然后通過k8s等對Docker進(jìn)行管理即可對服務(wù)進(jìn)行操作。

        6.總結(jié)與展望

        視聽媒體微服務(wù)第三方模塊適配接入技術(shù)旨在拓展視聽媒體微服務(wù)平臺功能,規(guī)范微服務(wù)化劃分原則,針對API網(wǎng)關(guān)的設(shè)計提出統(tǒng)一標(biāo)準(zhǔn),實現(xiàn)除原生團(tuán)隊以外的第三方模塊平滑接入到微服務(wù)平臺,快速建立視聽媒體微服務(wù)生態(tài)。

        本文給出了對單體架構(gòu)進(jìn)行拆分、接口設(shè)計、容器化鏡像制作的全流程解決方案。視聽媒體微服務(wù)第三方模塊適配接入技術(shù)有助于提升視聽媒體微服務(wù)平臺擴(kuò)展性,增加平臺功能,加速內(nèi)容制作、提高內(nèi)容質(zhì)量。將第三方模塊接入平臺可以快速形成視聽媒體制作生態(tài),促進(jìn)視聽媒體行業(yè)發(fā)展。

        隨著研究內(nèi)容的不斷深入與細(xì)化,本文將選取不同的第三方模塊進(jìn)行試驗驗證。在試驗驗證的基礎(chǔ)上,通過不斷優(yōu)化視聽媒體微服務(wù)第三方模塊適配接入技術(shù),實現(xiàn)視聽媒體微服務(wù)第三方模塊適配接入解決方案,為形成第三方微服務(wù)模塊接入測試技術(shù)規(guī)范打下基礎(chǔ)。

        猜你喜歡
        服務(wù)
        自助取卡服務(wù)
        服務(wù)在身邊 健康每一天
        服務(wù)在身邊 健康每一天
        服務(wù)在身邊 健康每一天
        服務(wù)在身邊 健康每一天
        服務(wù)在身邊 健康每一天
        服務(wù)在身邊 健康每一天
        服務(wù)在身邊 健康每一天
        高等教育為誰服務(wù):演變與啟示
        招行30年:從“滿意服務(wù)”到“感動服務(wù)”
        商周刊(2017年9期)2017-08-22 02:57:56
        国产精品久久久久久无码| 夜晚黄色福利国产精品| 欧美老妇交乱视频在线观看| 男男受被攻做哭娇喘声视频| 亚州精品无码人妻久久| 亚洲国产精品色一区二区 | 亚洲av无码国产精品色午夜洪| 丝袜国产高跟亚洲精品91| 久久色悠悠亚洲综合网| 一本色道久久亚洲加勒比| 国产精品r级最新在线观看| h在线国产| 免费看黄在线永久观看| 久久无码潮喷a片无码高潮| 欧美国产精品久久久乱码| 亚洲欧美日韩国产精品网| 在线观看一区二区三区国产| 久久精品国产亚洲av久| 欧美性videos高清精品| 狠狠亚洲婷婷综合久久久| 国产一区二区三区在线男友| 国产精品理论片| 在线不卡av天堂| 国产av一区二区三区狼人香蕉| 狠狠色噜噜狠狠狠8888米奇| 越南女子杂交内射bbwxz| 九九久久精品大片| 极品美女调教喷水网站| 一本色道久久88综合日韩精品| 美日韩毛片| 精品国产一区二区av麻豆不卡| 亚洲熟女精品中文字幕| 欲妇荡岳丰满少妇岳| 免费人成视频网站在线| 国产主播一区二区三区蜜桃| 国模欢欢炮交啪啪150| 人妻少妇一区二区三区| 美女与黑人巨大进入免费观看| 亚洲av永久无码精品三区在线| 2021国产成人精品国产| 亚洲精品久久麻豆蜜桃|