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