[江洪 郭英 龍顯軍]
“4G 改變生活,5G 改變社會”,5G 具有更高速率、更低時延及海量連接,5G 面向公眾客戶的同時更多地面向行業(yè)應(yīng)用,并針對各行業(yè)提出了豐富的應(yīng)用場景:游戲行業(yè)的AR/VR、汽車行業(yè)的車聯(lián)網(wǎng)、醫(yī)療行業(yè)的遠(yuǎn)程醫(yī)療、工業(yè)制造的智慧工廠等,5G的商用對各行業(yè)都有改變,也將改變整個社會。
5G的各種應(yīng)用場景對網(wǎng)絡(luò)能力的調(diào)用差異化明顯,各種能力調(diào)用需要動態(tài)的實(shí)時變更,為了更好地滿足各行業(yè)的個性化需求,需要將5G SA 網(wǎng)絡(luò)能力開放出來,各行業(yè)應(yīng)用能夠靈活地按需使用網(wǎng)絡(luò)能力,充分發(fā)揮運(yùn)營商的網(wǎng)絡(luò)及業(yè)務(wù)能力。
為了能將5G SA 網(wǎng)絡(luò)能力開放出來,3GPP 提出了5G網(wǎng)絡(luò)能力開放架構(gòu),并在5G 網(wǎng)絡(luò)中引入了NEF(Network Exposure Function)網(wǎng)元,NEF 是5G SA 網(wǎng)絡(luò)的能力開放功能網(wǎng)元,是連接5G 核心網(wǎng)與各行業(yè)應(yīng)用的紐帶。
網(wǎng)絡(luò)能力開放問題在國際和國內(nèi)標(biāo)準(zhǔn)組織中都引起了廣泛關(guān)注。3GPP R15 標(biāo)準(zhǔn)于2018 年12 月凍結(jié),針對NEF 定義了流量分流、QoS 控制等8 個標(biāo)準(zhǔn)能力,R16 標(biāo)準(zhǔn)于2020 年7 月凍結(jié),增加了uRLLC、mMTC 等業(yè)務(wù)應(yīng)用場景。R17 將更全面地面向垂直行業(yè),進(jìn)一步增強(qiáng)邊緣計算、網(wǎng)絡(luò)切片等基礎(chǔ)能力,提供更廣泛的5G 能力調(diào)用。
目前商用部署的5G 核心網(wǎng)主要基于R15 標(biāo)準(zhǔn),以及R16的部分能力。5G SA 網(wǎng)絡(luò)能力的開放需要5G 核心網(wǎng)的支持和配合,基于此,NEF 網(wǎng)元的首期功能主要基于R15 標(biāo)準(zhǔn),隨著R16 標(biāo)準(zhǔn)的凍結(jié)落地,NEF 將不斷完善和提供更多的5G 能力。
NEF 在網(wǎng)絡(luò)中的位置如圖1 所示,NEF 通過北向Nnef 接口向AF(Application Function)提供API 接口調(diào)用,通過南向接口與其他5G 核心網(wǎng)網(wǎng)元交互。
圖1 NEF 在網(wǎng)絡(luò)中的位置
NEF 負(fù)責(zé)提供和管理對外開放的功能接口,可同時為信任域內(nèi)和信任域外的AF 提供接口。針對能力開發(fā),3GPP 提出了CAPIF 架構(gòu)和標(biāo)準(zhǔn),實(shí)現(xiàn)對AF的認(rèn)證、授權(quán)、計費(fèi)等功能,并提供相應(yīng)的安全保障來保證AF 到5G 核心網(wǎng)的安全。AF 訪問5G 核心網(wǎng)內(nèi)部數(shù)據(jù)、調(diào)用5G 核心網(wǎng)能力,都必須通過NEF。
3GPP 定義的5G SA 網(wǎng)絡(luò)能力很多,在5G 能力開放初期,有必要根據(jù)行業(yè)應(yīng)用需求的迫切性及5G 核心網(wǎng)的現(xiàn)狀對接口能力進(jìn)行篩選,基于目前對客戶的需求調(diào)研及5G 核心網(wǎng)商用版本現(xiàn)狀,初期主要提供事件監(jiān)控、QoS、流量引導(dǎo)及計費(fèi)策略控制4 個接口能力。
①事件監(jiān)控接口主要針對客戶的位置信息、漫游信息、機(jī)卡綁定狀態(tài)、可達(dá)性等狀態(tài)進(jìn)行監(jiān)控,其應(yīng)用場景包括物流追蹤、緊急救援、設(shè)備故障監(jiān)控等。
② QoS 可實(shí)現(xiàn)流量加速、直播或視頻等高帶寬類業(yè)務(wù)的QoS 保障,其應(yīng)用場景包括定向流量加速、視頻QoS 保障等。
③流量引導(dǎo)實(shí)現(xiàn)對流量的本地卸載,其應(yīng)用場景包括移動本地辦公、MEC 本地流量卸載、智慧園區(qū)等。
④ 計費(fèi)策略控制可以對特定數(shù)據(jù)流量變更計費(fèi)策略,其應(yīng)用場景為商家或廣告商贊助流量等。
5G SA 網(wǎng)絡(luò)能力的需求是多樣化、差異化且不斷增長的,特別是2B 行業(yè)應(yīng)用、切片、邊緣計算等對業(yè)務(wù)靈活性、平臺高效性和運(yùn)營敏捷性提出更高要求。云原生技術(shù)是能夠滿足這些需求的理想技術(shù)體系。通過云原生技術(shù)構(gòu)建的5G 核心網(wǎng)元,能夠支撐業(yè)務(wù)靈活組裝和擴(kuò)展、賦能電信業(yè)務(wù)快速投放,提升運(yùn)營商價值;通過云原生技術(shù)構(gòu)建的開發(fā)工具鏈,能夠提升系統(tǒng)的開發(fā)、交付以及運(yùn)營運(yùn)維效率;通過云原生技術(shù)的開放性,能夠源源不斷地將新技術(shù)新能力融入到網(wǎng)絡(luò)方案中,從而促進(jìn)網(wǎng)絡(luò)價值的提升。
本NEF 網(wǎng)元的開發(fā),全面引入了云原生技術(shù),從架構(gòu)設(shè)計、開發(fā)工具、服務(wù)部署以及自動化運(yùn)維上都全部使用業(yè)界成熟的工具,并按照“12 法則應(yīng)用理論”,在開發(fā)、系統(tǒng)架構(gòu)、日志處理、系統(tǒng)運(yùn)維監(jiān)控等各方面都按照云原生標(biāo)準(zhǔn)實(shí)施。
本NEF 平臺為部署在Kubernets(簡稱K8S)的分布式高可用微服務(wù)架構(gòu)平臺。除了平臺所依賴的基礎(chǔ)軟件,如Mysql、Redis、Kafka 等,NEF 本身的原生服務(wù)都是無狀態(tài)服務(wù),以K8S Service的形式部署于K8S worker 節(jié)點(diǎn)中。基于K8S的服務(wù)治理架構(gòu)如圖2 所示,每個Service通過ClusterIP 向集群內(nèi)其他服務(wù)暴露服務(wù)地址。服務(wù)之間通信時,按目標(biāo)服務(wù)的HostName 向K8S DNS 解析得到該服務(wù)的ClusterIP,再根據(jù)ClusterIP 向目標(biāo)服務(wù)Service對象發(fā)起請求。目標(biāo)服務(wù)Service 收到請求后,將請求代理到集群下的任意一個Pod,進(jìn)行業(yè)務(wù)處理。每個服務(wù)的負(fù)載均衡由Service 對象實(shí)現(xiàn)。Service 對象將收到的請求均勻分配到集群下的每一個Pod,通過這種方式,使得整個NEF 平臺的每個服務(wù)都實(shí)現(xiàn)高可用和按業(yè)務(wù)量動態(tài)伸縮。
圖2 基于K8S的服務(wù)治理架構(gòu)
本系統(tǒng)構(gòu)建過程遵守標(biāo)準(zhǔn)的DevOps 所要求的構(gòu)建、發(fā)布、運(yùn)行作業(yè)流程,使用的DevOps 工具鏈體系如圖3所示,禪道作為項(xiàng)目和需求管理,Gerrit 作為代碼管理,JFrog 作為制品庫以及Jenkins 作為集成流水線。在Gerrit上實(shí)現(xiàn)代碼分支管理以及代碼評審,并觸發(fā)構(gòu)建流水線。
圖3 Devops 工具鏈體系
禪道系統(tǒng)通過需求定義、版本迭代和任務(wù)去驅(qū)動開發(fā)團(tuán)隊(duì)的版本構(gòu)建工作,開發(fā)團(tuán)隊(duì)通過DevOps 工具鏈進(jìn)行產(chǎn)品開發(fā),并向禪道系統(tǒng)反饋測試報告和Bug 跟蹤,形成閉環(huán)。Jenkins 是整個DevOps 系統(tǒng)的核心控制點(diǎn)。在Jenkins中部署了流水線腳本,控制整個構(gòu)建和部署的過程,其中包括驅(qū)動Fortify 進(jìn)行代碼審計和安全掃描,減少構(gòu)建前可能的安全性風(fēng)險;從Gerrit 中拉取代碼編譯構(gòu)建各微服務(wù)鏡像文件,并上傳到JFrog 制品庫;執(zhí)行制品部署到目標(biāo)的K8S 環(huán)境。
日志作為云原生系統(tǒng)重要的組成部分,在本NEF 系統(tǒng)中具有重要地位,是故障定位,大數(shù)據(jù)分析以及日常運(yùn)維的重要信息來源。本NEF 平臺的日志系統(tǒng)采用Jaeger的全鏈路日志跟蹤系統(tǒng)。
圖4 Jaeger 全鏈路日志系統(tǒng)架構(gòu)
監(jiān)控體系是云原生技術(shù)的重要環(huán)節(jié),是實(shí)現(xiàn)自動化運(yùn)維的關(guān)鍵。本NEF 平臺采用了如圖5的Prometheus 服務(wù)監(jiān)控框架。
圖5 Prometheus 監(jiān)控方案架構(gòu)
圖4 是整個Jaeger 全鏈路日志框架。在NEF的微服務(wù)Pod 中,NEF 服務(wù)依賴Jaeger-client 包,通過實(shí)現(xiàn)OpenTracing API 協(xié)議在代碼中產(chǎn)生埋點(diǎn)。在Pod 中部署了Jaeger-agent,收集從Jaeger-client的日志,傳遞給Jaegercollector,由Jaeger-collector 將日志信息存儲到ELK 數(shù)據(jù)庫中。儲存的日志信息通過Jaeger query 在后端系統(tǒng)展示,使得運(yùn)維人員可以查詢?nèi)魏握埱蟮娜溌啡罩拘畔ⅰ?/p>
Prometheus 是目前業(yè)界使用最廣泛的服務(wù)監(jiān)控軟件。它在每個K8S 節(jié)點(diǎn)上部署Exporter 組件。Exporter 組件收集節(jié)點(diǎn)本身的狀態(tài)指標(biāo),如CPU 占用率、內(nèi)存占用率、網(wǎng)絡(luò)IO 流量等,還收集所有服務(wù)每個Pod的狀態(tài)信息。Exporter 將收集到的信息上報到Prometheus Server。Prometheus Server 匯集上報的監(jiān)控數(shù)據(jù),并保存到數(shù)據(jù)庫中,再以PromQL的方式輸出信息,包括將告警數(shù)據(jù)輸出到AlarmManager,同時也向Web UI、DashBoard 等前端組件呈現(xiàn)實(shí)時監(jiān)控信息。運(yùn)維人員可以通過這些前端展示板查看到整個K8S 集群各節(jié)點(diǎn)的健康狀態(tài)以及各服務(wù)Pod的狀態(tài)。
NEF 系統(tǒng)采用微服務(wù)架構(gòu)進(jìn)行構(gòu)建,并采用領(lǐng)域驅(qū)動方法進(jìn)行設(shè)計。整體服務(wù)架構(gòu)體系如圖6 所示。
圖6 NEF 微服務(wù)體系架構(gòu)
NEF 服務(wù)系統(tǒng)軟件主要由三大板塊組成:內(nèi)部服務(wù)板塊、公共組件板塊和前端Portal 面板。內(nèi)部服務(wù)板塊由所有原生的NEF 功能的服務(wù)組成。公共組件板塊是內(nèi)部服務(wù)依賴的開源組件框架,實(shí)現(xiàn)數(shù)據(jù)持久化、緩存以及消息隊(duì)列功能。Portal 面板是向系統(tǒng)管理員提供網(wǎng)元局?jǐn)?shù)據(jù)管理的前端系統(tǒng)。
在內(nèi)部服務(wù)板塊,分3 個領(lǐng)域?qū)崿F(xiàn)NEF的整體邏輯:網(wǎng)關(guān)接口服務(wù)領(lǐng)域,核心服務(wù)領(lǐng)域和5GC 網(wǎng)元網(wǎng)關(guān)領(lǐng)域。
網(wǎng)關(guān)接口服務(wù)領(lǐng)域由入局接口網(wǎng)關(guān)服務(wù)、出局接口網(wǎng)關(guān)服務(wù)、API 管理服務(wù)以及API 網(wǎng)關(guān)管理服務(wù)組成。這一領(lǐng)域的服務(wù)實(shí)現(xiàn)NEF 作為一個網(wǎng)元實(shí)體對外暴露API 以及向外回調(diào)API 請求的功能。
核心服務(wù)領(lǐng)域?qū)崿F(xiàn)了NEF 按3GPP 規(guī)范中定義的主要能力邏輯,是整個NEF 最核心邏輯的軟件實(shí)現(xiàn)層。在這個領(lǐng)域中,NEF的所有能力被拆分為多個原子能力,每個原子能力由一個微服務(wù)實(shí)現(xiàn)。目前實(shí)現(xiàn)的能力服務(wù)包括NF 能力管理服務(wù)、事件訂閱能力服務(wù)、流量引導(dǎo)能力服務(wù)、QoS 控制能力服務(wù)以及計費(fèi)策略控制能力服務(wù)。
5GC 網(wǎng)元網(wǎng)關(guān)服務(wù)領(lǐng)域?qū)崿F(xiàn)與NEF 對接的其他所有5GC網(wǎng)元的網(wǎng)關(guān)服務(wù),每一種5GC對接網(wǎng)元實(shí)現(xiàn)一個服務(wù)。
除了縱向分層的主要服務(wù)外,在橫向還包括一些基礎(chǔ)的服務(wù),實(shí)現(xiàn)平臺所需要的數(shù)據(jù)管理及可維護(hù)功能。帳號管理服務(wù)管理外部Invoker 帳號及其鑒權(quán)處理;系統(tǒng)配置服務(wù)實(shí)現(xiàn)平臺所有服務(wù)所依賴的配置項(xiàng)的集中管理,是云原生12 法則中配置與服務(wù)分離的具體實(shí)現(xiàn);定時器服務(wù)是向其他服務(wù)提供定時器訂閱和回調(diào)的服務(wù);分布式ID服務(wù)是提供生成各類唯一性ID的服務(wù)。
NEF 作為5G 核心網(wǎng)的能力接口網(wǎng)元,需要對接不同廠家的核心網(wǎng),這就引入了兼容性問題。NEF 對不同廠家5G 核心網(wǎng)的兼容性問題體現(xiàn)在兩個方面:第一,不同的5G 核心網(wǎng)廠家對3GPP 規(guī)范中處理有差異,在信令流程、信令參數(shù)選擇和結(jié)構(gòu)等方面都有差別;第二,3GPP 標(biāo)準(zhǔn)在現(xiàn)階段仍然處于演進(jìn)之中,5G 網(wǎng)元的能力和接口也會隨著標(biāo)準(zhǔn)的演進(jìn)而改變。
本NEF 平臺通過網(wǎng)元消息模版引擎架構(gòu)解決這個問題。網(wǎng)元消息模版引擎是針對每個廠家的每類5GC 網(wǎng)元設(shè)置一個消息模版,消息模版中定義了該廠家該類網(wǎng)元的詳細(xì)信令格式。在5GC 網(wǎng)元網(wǎng)關(guān)服務(wù)內(nèi)部處理時,根據(jù)對接網(wǎng)元的廠家類型找到對應(yīng)的消息模版,對信令進(jìn)行編解碼處理,從而實(shí)現(xiàn)不同廠商信令的兼容。
消息模版的管理以及處理架構(gòu)如圖7 所示。
圖7 網(wǎng)元消息模版引擎原理圖
5GC 網(wǎng)元消息模版的實(shí)現(xiàn)包括模版管理和模版編解碼兩部分。
模版管理是在平臺的管理模塊中實(shí)現(xiàn)。5GC 網(wǎng)元管理服務(wù)負(fù)責(zé)管理與NEF 對接的所有5GC 網(wǎng)元的生命周期。每一個對接的網(wǎng)元都被標(biāo)注廠家類型。在網(wǎng)絡(luò)管理服務(wù)中,每個廠家的每個5GC 網(wǎng)元都可以編輯維護(hù)一份網(wǎng)元消息模版。在各5GC網(wǎng)元網(wǎng)關(guān)服務(wù)處理對該網(wǎng)元的消息交互時,選擇該廠家所對應(yīng)的網(wǎng)元消息模版進(jìn)行消息編解碼。
模版編解碼是每個5GC 網(wǎng)元網(wǎng)關(guān)服務(wù)GateWay的核心服務(wù),負(fù)責(zé)與對接的5GC 網(wǎng)元進(jìn)行消息收發(fā)。對于消息發(fā)送流程,根據(jù)目標(biāo)網(wǎng)元的廠家類型,查詢對應(yīng)網(wǎng)元的消息模版,根據(jù)模版和接口參數(shù),構(gòu)造網(wǎng)元消息并發(fā)送到目標(biāo)的5GC 網(wǎng)元。對于消息接收流程,GateWay 核心服務(wù)從5GC 網(wǎng)元中接收到消息后,根據(jù)網(wǎng)元ID 查詢網(wǎng)元對應(yīng)的廠家及消息模版,根據(jù)消息模版解析所收到的網(wǎng)元消息,再發(fā)送給相應(yīng)的NEF 能力服務(wù)進(jìn)行邏輯處理。
對于事件訂閱,一般是在訂閱的事件發(fā)生變化時會觸發(fā)通知事件,如漫游狀態(tài)、用戶位置信息等,但用戶也希望能獲取用戶當(dāng)前的狀態(tài),如是否漫游、當(dāng)前的位置在哪里?
對于當(dāng)前狀態(tài)的獲取,規(guī)范中可以通過設(shè)置immediageFlag=true的方式要求在響應(yīng)消息中提供當(dāng)前狀態(tài)的報告,但是對于經(jīng)由UDM 到AMF 上訂閱的事件如位置信息、可達(dá)狀態(tài)等,AMF 可以將通知報告返回給UDM,但是由于規(guī)范對于UDM 返回NEF的響應(yīng)消息參數(shù)沒有定義AMF 相關(guān)通知參數(shù),按照規(guī)范無法在響應(yīng)消息中將狀態(tài)信息返回給NEF。
從與主流5G 核心網(wǎng)廠家對接測試的情況來看,有的5GC 廠家依照規(guī)范提出無法實(shí)現(xiàn)在響應(yīng)消息中返回通知報告,有的5GC 廠家自行擴(kuò)展了響應(yīng)消息參數(shù),通過擴(kuò)展參數(shù)將AMF 相關(guān)通知信息透傳給NEF。
客戶對立即查詢獲取當(dāng)前的狀態(tài)信息的能力需求強(qiáng)烈。就目前的狀況,NEF 可采取繞過UDM 直接訂閱AMF的方式實(shí)現(xiàn)或者針對不同的廠家采用不同的處理方式。但從長遠(yuǎn)來看,對于該能力的實(shí)現(xiàn)建議擴(kuò)展響應(yīng)消息參數(shù),一方面運(yùn)營商可自行擴(kuò)展,另一方面可以通過提案擴(kuò)展3GPP 定義的的響應(yīng)參數(shù),統(tǒng)一各廠家的實(shí)現(xiàn)方案,滿足用戶實(shí)時獲取當(dāng)前位置信息的需求。
NEF 在實(shí)際部署時會面對各種復(fù)雜情況,5G 核心網(wǎng)、應(yīng)用對接環(huán)境、網(wǎng)絡(luò)部署環(huán)境的不同,對NEF的要求也不同,本NEF 針對各種部署情況,在功能上做了增強(qiáng)和考慮,以適應(yīng)實(shí)際的部署需求。
NEF 可同時為信任域內(nèi)和信任域外的應(yīng)用提供接口調(diào)用,兩類應(yīng)用接入對安全性的要求是不同的,NEF 針對不同的接入環(huán)境提供不同的鑒權(quán)方式,如IP 地址、證書、賬號密碼、OAuth2.0 及其組合鑒權(quán),基于安全性的前提提供差異化鑒權(quán)。
在NEF 部署初期或某些跨區(qū)域的應(yīng)用場景,NEF 可能會對接多套不同廠家的5G 核心網(wǎng),為適應(yīng)該應(yīng)用場景,NEF 增強(qiáng)了基于號碼的路由能力,基于號碼選擇服務(wù)的核心網(wǎng)絡(luò),同時通過設(shè)計處理,實(shí)現(xiàn)同時對接不同廠家5G核心網(wǎng)的能力。
網(wǎng)絡(luò)切片是5G的熱點(diǎn)技術(shù),NEF 在設(shè)計上也考慮了切片參數(shù)的配置及攜帶,可同時支持多個切片網(wǎng)絡(luò)的能力調(diào)用,適應(yīng)未來切片組網(wǎng)方式的應(yīng)用場景。
從3GPP 規(guī)范來看,NEF 是5G 核心網(wǎng)的一個網(wǎng)元,而國內(nèi)運(yùn)營商部署5G 核心網(wǎng)絡(luò)一般采用分省或分大區(qū)進(jìn)行部署,如果NEF 也采用分省或分大區(qū)部署,行業(yè)客戶沒有統(tǒng)一的接入點(diǎn),這不利于行業(yè)客戶的使用。
為解決行業(yè)客戶統(tǒng)一入口調(diào)用5G 能力的需求,部署方案可考慮在NEF 之上部署一個統(tǒng)一的能力開放平臺,對外提供統(tǒng)一的能力開放接口,統(tǒng)一認(rèn)證,由平臺根據(jù)路由規(guī)則調(diào)用各省或大區(qū)的NEF 接口。能力開放平臺還可以將運(yùn)營、鑒權(quán)等維護(hù)方面的能力集成,統(tǒng)一開放入口一方面方便行業(yè)客戶使用,另一方面也屏蔽了網(wǎng)絡(luò)的內(nèi)部拓?fù)?,進(jìn)一步保證了5G 網(wǎng)絡(luò)的安全性。
通過NEF,可以實(shí)現(xiàn)實(shí)時、在線的5G SA 網(wǎng)絡(luò)能力調(diào)用,在智慧園區(qū)、工業(yè)互聯(lián)網(wǎng)、物聯(lián)網(wǎng)等領(lǐng)域都有廣闊的應(yīng)用場景。結(jié)合分流、QoS 等5G 開放能力,可為企業(yè)、園區(qū)組建可管可控5G 企業(yè)專網(wǎng),自主控制訪問權(quán)限及QoS 策略配置,企業(yè)無需自建網(wǎng)絡(luò)卻能使用安全和靈活的企業(yè)專網(wǎng)。結(jié)合事件訂閱能力,可對終端的可達(dá)性、位置及狀態(tài)實(shí)施監(jiān)控,行業(yè)應(yīng)用在策略及服務(wù)上能夠及時動態(tài)進(jìn)行調(diào)整、維護(hù),提升業(yè)務(wù)體驗(yàn)。隨著5G的商用及R16標(biāo)準(zhǔn)的落地,5G SA 網(wǎng)絡(luò)將提供更多的開放能力,也會與各行業(yè)碰撞出更多有特色的應(yīng)用。