李梓萌,許耀順,陳迎春,潘 葉
(中國移動通信集團(tuán)廣東有限公司,廣東 廣州 510623)
算力網(wǎng)絡(luò)是以算為中心、網(wǎng)為根基,網(wǎng)、云、數(shù)、智、安、邊、端、鏈深度融合的新型信息基礎(chǔ)設(shè)施,實現(xiàn)“算力泛在、算網(wǎng)共生、智能編排、一體服務(wù)”的目標(biāo),逐步推動算力成為與水電一樣,可“一點(diǎn)接入、即取即用”的社會級服務(wù),達(dá)成“算力無所不在、網(wǎng)絡(luò)無所不達(dá)、智能無所不及”的愿景[1]。
隨著算力網(wǎng)絡(luò)的提出,通過打造智能網(wǎng)絡(luò),結(jié)合網(wǎng)絡(luò)可編程特性和云原生輕量化計算特性,通過弱平臺+強(qiáng)網(wǎng)絡(luò)的方式,在平臺的集中控制之余,更多的嘗試通過網(wǎng)絡(luò)的分布式協(xié)同來實現(xiàn)對網(wǎng)內(nèi)各種服務(wù)的合理調(diào)度和資源的有效配置。
算力網(wǎng)絡(luò)系統(tǒng)架構(gòu)由上至下依次可劃分為三個層級:上層為運(yùn)營服務(wù)層,中間層為編排管理層,底層為基礎(chǔ)設(shè)施層。運(yùn)營服務(wù)層可提供統(tǒng)一運(yùn)營、能力封裝、能力開放和算力交易等功能,編排管理層可提供算網(wǎng)統(tǒng)一編排、算網(wǎng)智能化、數(shù)據(jù)湖、基礎(chǔ)算網(wǎng)管理以及人工智能引擎等功能,基礎(chǔ)設(shè)施層提供各種硬件,比如分布式算力設(shè)備、路由服務(wù)器、統(tǒng)一IP 的算網(wǎng)底座、全光底座等[2]。
1.1.1 運(yùn)營服務(wù)層
運(yùn)營服務(wù)層包含服務(wù)層、產(chǎn)品層、使能層,對外提供算網(wǎng)產(chǎn)品及服務(wù),主要實現(xiàn)面向用戶的服務(wù)能力開放。
運(yùn)營服務(wù)層通過承載計算的各類服務(wù)及應(yīng)用,并可以將用戶對業(yè)務(wù)請求(包括算力請求等)參數(shù)傳遞給算力路由層。運(yùn)營服務(wù)層是算力網(wǎng)絡(luò)的服務(wù)和能力提供平臺,通過將算網(wǎng)原子化能力封裝并融合多種要素,實現(xiàn)算網(wǎng)產(chǎn)品的一體化服務(wù)供給,使客戶享受便捷的一站式服務(wù)和智能無感的體驗。同時通過吸納社會多方算力,結(jié)合區(qū)塊鏈等技術(shù)構(gòu)建可信算網(wǎng)服務(wù)統(tǒng)一交易和售賣平臺,提供“算力電商等新模式,打造新型算網(wǎng)服務(wù)及業(yè)務(wù)能力體系。
1.1.2 編排管理層
編排管理層可理解為“算網(wǎng)大腦+手腳(控制器)”,算網(wǎng)大腦負(fù)責(zé)統(tǒng)一編排,“手腳”負(fù)責(zé)對算、網(wǎng)進(jìn)行調(diào)度控制。編排管理層是算力網(wǎng)絡(luò)的調(diào)度中樞智慧內(nèi)生的算網(wǎng)大腦是編排管理層的核心。通過將算網(wǎng)原子能力靈活組合,結(jié)合人工智能與大數(shù)據(jù)等技術(shù),向下實現(xiàn)對算網(wǎng)資源的統(tǒng)一管理、統(tǒng)一編排、智能調(diào)度和全局優(yōu)化,提升算力網(wǎng)絡(luò)效能,向上提供算網(wǎng)調(diào)度能力接口,支撐算力網(wǎng)絡(luò)多元化服務(wù)。
1.1.3 基礎(chǔ)設(shè)施層
基礎(chǔ)設(shè)施層包括橫向入云、云間、云內(nèi)三段網(wǎng),云、邊、端三級算等?;A(chǔ)設(shè)施層通過解決包括算力度量、算力抽象、算力卸載等算力技術(shù),G-SRv6、智享WAN、OXC、400G 等網(wǎng)絡(luò)技術(shù),算力路由、在網(wǎng)計算等算網(wǎng)一體原創(chuàng)技術(shù),打造靈活敏捷、算網(wǎng)融合、智能高效的算網(wǎng)基礎(chǔ)設(shè)施。
算網(wǎng)基礎(chǔ)設(shè)施層是算力網(wǎng)絡(luò)的堅實底座,以高效能、集約化、綠色安全的新型一體化基礎(chǔ)設(shè)施為基礎(chǔ),形成云邊端多層次、立體泛在的分布式算力體系,滿足中心級、邊緣級和現(xiàn)場級的算力需求。網(wǎng)絡(luò)基于全光底座和統(tǒng)一IP 承載技術(shù),實現(xiàn)云邊端算力高速互聯(lián),滿足數(shù)據(jù)高效、無損傳輸需求。用戶可隨時、隨地、隨需地通過無所不在的網(wǎng)絡(luò)接入無處不在的算力,享受算力網(wǎng)絡(luò)的極致服務(wù)。
在功能架構(gòu)方面,算力網(wǎng)絡(luò)系統(tǒng)采用了3 層架構(gòu):包含能力開放中心、智能編排中心以及算網(wǎng)接入能力底座。通過業(yè)務(wù)設(shè)計、模型驅(qū)動、智能編排、泛在調(diào)度等技術(shù),協(xié)同調(diào)度算網(wǎng)各域資源實現(xiàn)靈活高效的算網(wǎng)一體化編排。構(gòu)建算網(wǎng)能力開放中心,開放算網(wǎng)業(yè)務(wù)服務(wù)能力,為用戶提供社會算力并網(wǎng)、任務(wù)式訂購、全局負(fù)載均衡、算網(wǎng)解決方案、算網(wǎng)自助服務(wù)等能力。構(gòu)建算網(wǎng)智能編排中心,實現(xiàn)網(wǎng)絡(luò)資源和算力資源的統(tǒng)一設(shè)計、編排,實現(xiàn)算網(wǎng)融合類業(yè)務(wù)的一體化、智能化調(diào)度開通管理。算網(wǎng)接入底座實現(xiàn)算網(wǎng)資源以及各應(yīng)用能力資源的統(tǒng)一接入與控制,并提供對算網(wǎng)服務(wù)容器化部署調(diào)度的支持。接入底座北向開放標(biāo)準(zhǔn)API 能力,智能編排中心通過算網(wǎng)接入底座對算網(wǎng)基礎(chǔ)設(shè)施進(jìn)行操作,包括接入、感知、度量、控制、可視各個環(huán)節(jié)中涉及的全部操作需求[3]。
傳統(tǒng)的應(yīng)用單一化、所有代碼混合在一起導(dǎo)致應(yīng)用包很大,使得運(yùn)維成本很高,應(yīng)用的升級也必須在半夜進(jìn)行,無法做到白天升級,無縫升級。而相對于傳統(tǒng)應(yīng)用,現(xiàn)行的應(yīng)用采用了微服務(wù)的思想,按照專業(yè)、模塊進(jìn)行了拆分。各個模塊單獨(dú)部署,單獨(dú)運(yùn)行,模塊之間通過服務(wù)接口進(jìn)行通信。模塊化拆分使得整體業(yè)務(wù)進(jìn)行了解耦,相對于業(yè)務(wù)流很大的應(yīng)用可以部署多個節(jié)點(diǎn)或者增加主機(jī)資源,極大程度的提高了業(yè)務(wù)的性能。由于各個模塊之間是單獨(dú)部署的,所以當(dāng)某個模塊需要升級代碼時只需要停止當(dāng)前應(yīng)用,其他模塊正常使用[4]。
系統(tǒng)應(yīng)用對前端、后端進(jìn)行了分離,使得開發(fā)過程中人員分工更加明確,提高了開發(fā)效率,也提高了代碼質(zhì)量。同時前端、后端單獨(dú)部署運(yùn)行,在有限的資源中提高了各自的性能,給業(yè)務(wù)進(jìn)行了再一次的解耦。
前后端通過服務(wù)接口進(jìn)行通信,前端框架的提升和后端框架的提升互不干擾,也提高了應(yīng)用的健壯性。在前后端徹底分離解耦這一時期,前端的范圍被擴(kuò)展,controller 層也被認(rèn)為屬于前端的一部分。在這一時期,前端:負(fù)責(zé)View 和Controller 層。服務(wù)端(后端):只負(fù)責(zé)Model 層,業(yè)務(wù)/數(shù)據(jù)處理等[5]。一般服務(wù)端人員對前端HTML 結(jié)構(gòu)不熟悉,前端人員也不懂后臺代碼,controller 層采用node.js 的功能進(jìn)行實現(xiàn),node.js 適合運(yùn)用在高并發(fā)、I/O 密集、少量業(yè)務(wù)邏輯的場景。最重要的一點(diǎn)是,前端不用再了解其他的語言了,對前端來說,上手效率大大提高。
隨著用戶規(guī)模與使用量劇增,服務(wù)器的負(fù)載也跟隨急劇提高,此時通過優(yōu)化代碼提高系統(tǒng)的負(fù)載能力已經(jīng)無能為力。需要將應(yīng)用邏輯和數(shù)據(jù)存儲拆分開來,通過應(yīng)用與數(shù)據(jù)的分離解耦,使系統(tǒng)具備水平線性的低成本擴(kuò)展能力,這樣做不僅提高了單機(jī)的負(fù)載能力,也提高了整個系統(tǒng)的容災(zāi)能力。
通過引入Tomcat、MySQL、Cache 等技術(shù)組件實現(xiàn)可云化的應(yīng)用與數(shù)據(jù)分離的技術(shù)架構(gòu)。應(yīng)用與數(shù)據(jù)分離后將形成應(yīng)用服務(wù)層、分布式數(shù)據(jù)訪問層、分布式數(shù)據(jù)存儲層三層架構(gòu)。
NGINX+Keepalive:利用NGINX 反向代理實現(xiàn)負(fù)載均衡,并使用Keepalive 實現(xiàn)兩臺NGINX 間的主備切換。
SLB/F5:利用SLB/F5 實現(xiàn)應(yīng)用負(fù)載均衡。在具體部署時負(fù)載均衡也可考慮使用其他技術(shù)替代。
API Gateway:統(tǒng)一網(wǎng)關(guān)主要基于SpringCloud Gateway 來實現(xiàn)。在本系統(tǒng)中統(tǒng)一網(wǎng)關(guān)需要實現(xiàn)用戶瀏覽器訪問以及外系統(tǒng)的API 調(diào)用兩種方式。因此在開發(fā)里,需要基于SpringCloud Gateway 的Filter 技術(shù)實現(xiàn)鑒權(quán)功能。同時需要開發(fā)頁面提供調(diào)用監(jiān)控功能。
React:React 是用于構(gòu)建用戶界面的JavaScript 庫,起源于Facebook 的內(nèi)部項目,起初用于架設(shè)Instagram的網(wǎng)站,目前已經(jīng)成為使用最廣泛的前端框架?;赗eact 框架開發(fā)前端頁面,并實現(xiàn)前后端分離部署。
Echarts:ECharts 基 于html5Canvas,是 一 個 純JavaScript 圖表庫,提供直觀,生動,可交互,可個性化定制的數(shù)據(jù)可視化圖表。創(chuàng)新的拖拽重計算、數(shù)據(jù)視圖、值域漫游等特性大大增強(qiáng)了用戶體驗,賦予了用戶對數(shù)據(jù)進(jìn)行挖掘、整合的能力。
ECharts 最初由百度團(tuán)隊開源,目前已由Apache 基金會管理。主要使用此技術(shù)實現(xiàn)圖表(柱狀圖、餅圖、折線圖等)展示功能。
AntV:主流開源數(shù)據(jù)可視化技術(shù)生態(tài),包含G2、G6、X6、F2、L7 以及一套完整的圖表使用和設(shè)計規(guī)范,豐富的生態(tài)系統(tǒng)+社區(qū)活躍度高+開箱即用。
CaffeineCache:Caffeine 是基于Java8 的高性能緩存庫,接近最優(yōu)的緩存庫,Spring5 官方默認(rèn)采用,性能較其他高2 倍不止。
Spring:Spring 技術(shù)是當(dāng)前使用最廣泛的后端技術(shù)框架與組件,主要使用SpringMVC 實現(xiàn)Controller 層,SpringAOP 實現(xiàn)事務(wù)控制。應(yīng)用以SpringBoot 模式構(gòu)建,使用SpringCloud 作為微服務(wù)框架。
SFL4J+Logback:由于log4j 近期出現(xiàn)安全問題,因此采用SFL4J+Logback 作為日志框架。
GID:由于MySQL 本身不具備序列提供的能力,同時存在多個數(shù)據(jù)庫系統(tǒng)需要提供全局序列。由GID 負(fù)責(zé)提供全局序列服務(wù)。
RocketMQ:是阿里開源技術(shù),目前最流行的、能力強(qiáng)勁的開源消息總線,可內(nèi)嵌到Spring 系統(tǒng)中,同時支持多種傳送協(xié)議。
Nacos:阿里巴巴的一個開源的項目,通過一組簡單的特性集,Nacos 能夠幫助用戶實現(xiàn)服務(wù)動態(tài)發(fā)現(xiàn)、服務(wù)配置、服務(wù)元數(shù)據(jù)及流量管理。Nacos 主要提供三種功能,分別是服務(wù)注冊與發(fā)現(xiàn)、動態(tài)配置服務(wù)和動態(tài)DNS 服務(wù)。
ZooKeeper:一個分布式的、開放源碼的分布式應(yīng)用程序協(xié)調(diào)服務(wù),是Google 的Chubby 一個開源的實現(xiàn),是Hadoop 和Hbase 的重要組件。它是一個為分布式應(yīng)用提供一致性服務(wù)的軟件,提供的功能包括:配置維護(hù)、域名服務(wù)、分布式同步、組服務(wù)等。
ELK:elastic 公司提供的一套完整的日志收集以及展示的解決方案,是三個產(chǎn)品的首字母縮寫,分別是ElasticSearch、Logstash 和Kibana。ElasticSearch 簡 稱ES,它是一個實時的分布式搜索和分析引擎,它可以用于全文搜索,結(jié)構(gòu)化搜索以及分析。它是一個建立在全文搜索引擎ApacheLucene 基礎(chǔ)上的搜索引擎,使用Java 語言編寫。Logstash 是一個具有實時傳輸能力的數(shù)據(jù)收集引擎,用來進(jìn)行數(shù)據(jù)收集、解析,并將數(shù)據(jù)發(fā)送給ES。Kibana 為Elasticsearch 提供了分析和可視化的Web 平臺。它可以在Elasticsearch 的索引中查找,交互數(shù)據(jù),并生成各種維度表格、圖形。
MySQL:關(guān)系型數(shù)據(jù)庫,資源模塊、采集模塊以及運(yùn)營模塊使用MySQL 作為數(shù)據(jù)庫。
InfluxDB:InfluxDB 是一個由InfluxData 開發(fā)的開源時序型數(shù)據(jù)。它由Go 寫成,著力于高性能地查詢與存儲時序型數(shù)據(jù)。InfluxDB 被廣泛應(yīng)用于存儲系統(tǒng)的監(jiān)控數(shù)據(jù),告警實時數(shù)據(jù)等場景。使用Influx 記錄性能指標(biāo)數(shù)據(jù),用于歷史指標(biāo)查詢、分析場景。
Kafka:是一種分布式隊列,相對于RocketMQ、ActiveMQ 等常見隊列技術(shù),具備更高效的特點(diǎn),在指標(biāo)數(shù)據(jù)、告警數(shù)據(jù)等大規(guī)模數(shù)據(jù)場景下更為適用。因此采用Kafka 作為分布式隊列技術(shù)作為消息中心。
Redis:Redis 是一款目前使用最廣泛的開源分布式緩存,使用ANSIC 語言編寫、遵守BSD 協(xié)議、支持網(wǎng)絡(luò)、可基于內(nèi)存、分布式、可選持久性的鍵值對(Key-Value)存儲數(shù)據(jù)庫,并提供多種語言的API。使用Redis作為分布式緩存,用于存儲共享Session、資源實例、工單過程數(shù)據(jù)等。
通過算力網(wǎng)絡(luò)可實現(xiàn)在5G 時代通過“聯(lián)接+計算”的經(jīng)營模式擺脫以管道模式為代表的流量經(jīng)營,可在社會、行業(yè)和家庭等場景發(fā)揮重要作用[6]。
算力網(wǎng)絡(luò)可提供基于數(shù)據(jù)、計算、智能、綠色、網(wǎng)絡(luò)融合發(fā)展的新型共享服務(wù)模式,廣泛服務(wù)于智能科學(xué)模擬、數(shù)字化政府治理、平臺型算力共享等場景,提供安全可信的服務(wù)保障。
算力網(wǎng)絡(luò)通過深度融合人工智能、物聯(lián)網(wǎng)、5G、邊緣計算、數(shù)字孿生等技術(shù)要素,全面助力行業(yè)數(shù)字化轉(zhuǎn)型。如智慧交通、智慧醫(yī)療、車聯(lián)網(wǎng)等場景。
算力網(wǎng)絡(luò)可以通過極致可靠的網(wǎng)絡(luò)連接,協(xié)同調(diào)度云計算、邊緣計算、智能終端等多級算力,以更高的算力性能和更低的終端成本,實現(xiàn)算力對應(yīng)用的加持,為家庭提供智能化、沉浸式服務(wù)內(nèi)容和體驗。如VR 互動、云游戲、新媒體直播、家庭安防等場景。
綜上所述,隨著數(shù)字經(jīng)濟(jì)時代的到來,我國需要將自己打造成為一個網(wǎng)絡(luò)強(qiáng)國,這樣才能夠更好地進(jìn)行戰(zhàn)略部署工作,有效利用信息技術(shù)進(jìn)行產(chǎn)業(yè)數(shù)字化的建設(shè),這樣能夠在很大程度上提升我國數(shù)字經(jīng)濟(jì)的發(fā)展水平,更好地去進(jìn)行需求的創(chuàng)造,利用算力網(wǎng)絡(luò)來進(jìn)行數(shù)字時代的開展。通過網(wǎng)絡(luò)技術(shù)的優(yōu)勢來創(chuàng)造數(shù)字經(jīng)濟(jì)的美好未來,實現(xiàn)算力網(wǎng)絡(luò)技術(shù)的高效運(yùn)用。