Linker Networks Inc . ,Johnson Chen
在雲端服務、企業資料中心及電信商的運營上,虛擬化網路的實現成就了網路資源的高自由度,也降低了CAPEX的門檻。本文即此介紹虛擬化網路崛起對5G網路、物聯網IoT及人工智慧AI的不可逆轉的演化推進,以及以應用及服務為主體的Container架構與Kubernetes管理機制如何推升與承載新世代的創新與商業模式持續演進。
Appliance架構瓦解
傳統核心網路或資料中心所採購的網路設備,背後均有設備廠商對使用客戶的箝制策略,因此買硬體綑綁軟體、升級與維護服務一直是設備廠商搶占市佔與防堵競爭對手的慣用模式。尤以設備採購量龐大的電信運營商及資料中心受限最深,每年所花費的OPEX也被迫無法獲得改善。為解決被傳統設備廠綁架的窘境,將硬體與軟體分離的網路建構概念逐漸成形,讓硬體成為commodity,軟體可以自主適配與延展,已是現在雲服務、企業資料中心及電信商的網路建構趨勢,設備廠商也意識到使用客戶的反撲,紛紛往開源的方向做轉變,這開放性的發展已廣泛的為網路界所認同。
現行所採取的虛擬化網路多基於SDN (Software Defined Networking)及三種開源管理 (Orchestration)基底:
Open Stack的起始與電信商的意識抬頭有相當大的關聯,因此在Open Stack上層所呈現的NFV (Network Function Virtualization)及VNF (Virtual Network Functions)多以將電信核心網路的功能以VM (Virtual Machine)的方式將儲存及算力資源做slicing的虛擬切割與分離。NFV已成為國際電信業者所共同推動的虛擬化架構。
根據TheNewStack的調查統計,全球企業資料中心只有11%採用Mesosphere Mesos作為Container應用的管理層。Mesos的市占率逐年下降的原因主要是Mesosphere的開源態度”有留一手”,許多較完善的功能多留在Mesosphere自己出售的企業版,一般的Community版提供的開源功能比較陽春。
Kubernetes是Google Container Engine (GKE)所開發專為做Container應用所開源的協同管理層,目前也廣泛的獲得AWS及Azure的採用,Kubernetes的使用市佔率超過70%,社群廣泛且開源性高,受到大部分企業的追隨與選用,如Uber, Tweeter, Airbnb及Netflix。
隨著雲端的PaaS及SaaS興起,以Application為主體的Container佈署越來越廣泛,Kubernetes具有自主的High Availability的scalability, Service Continuity的automation、Container Resource的scheduling及Load Balance的distribution,Kubernetes都極適合作為Container的在管理層上的orchestration。
Kubernetes也是2017在Github裡最熱衷的討論議題,Networking的開發者都看中以下Kubernetes優於Mesos的特點而紛紛採用Kubernetes做為Container的管理平台,使得Kubernetes在Container應用業界樹立起領先的地位。
Container與VM的適用場景
在網路資源被虛擬化後,可分割性與可擴容性都相對大大的提升了虛擬功能的適配性與應用服務的多樣性。然而虛擬主機VM與應用服務在本質的需求設計上是不一樣的。VM是在原實體主機上的Host OS上透過Hypervisor管理可建構以Guest OS為另一個OS基底再去創建虛擬的新主機功能,他可視為一台具有完整功能的主機。
應用服務則是以應用程式(Application)為主體去設想程式運行時會牽涉到的使用環境,打包成一個大家所通稱的容器(Container)及Docker file,並共用原實體主機的Host OS,以求速度效率。在現在以應用服務為主體的商業模式中,Container的好處是重啟時間非常快,極為輕量級,可以透過Docker Engine的Image方式將應用服務做高度的移動及移植。
VM的使用場景多以呈現完整的虛擬主機功能為主,所以不同的VM之間是isolated的,即隱含有較高的安全性,裡面可乘載以Guest OS為基底的應用程式。VM可彈性的做資源分割操作不同的主機應用場景。電信業在NFV上的network slicing即是用VM資源切割的實現。鑑於此,SELinux (Security-Enhanced Linux) 也被應用在Container在security上的精進,兩者在安全性的表現上不分軒輊。
M-CORD與MEC
為掙脫網路設備場的枷鎖及提供更接近各種使用場景的電信網路服務,NFV已是電信運營商在規劃未來核心網路 (Core Network) 及無線接取網路 (RAN, Radio Access Network)的既定步程。不論是高乘載量的MBB (Mobile Broadband)、高速低時延的Critical mission IoT、低功率消耗的Massive IoT還是不同接取技術協同的MEC (Multi-Access Edge Computing),都能在不同使用場景中做彈性的資源分配與機體功能的適配,在在都體現了NFV的基礎性與必要性。
M-CORD (Mobile – Central Office Re-architected as a Datacenter) 是ONF (Open Networking Foundation)所提倡的在SDN / NFV的架構之上所建構的電信網路架構,如下圖所示。與現行LTE網路比較,主要是在網路架構虛擬化與建構在ONOS及Open Stack上的XOS interface來orchestrate M-CORD的各個虛擬主體。
其中M-CORD將傳統的LTE網路架構做了以下更精簡且更有效率溝通傳輸的設計:
如此使得網路更具有即時操作的資源分配,也提高了電信商自主開發的彈性與有效的降低了維運成本OPEX。
尤其是面對未來5G在異質性網路與多種前端接取技術的整合上,Radio Access的互相協同已不能只單靠各自的技術來做silo的服務。MEC(Multi-Access Edge Computing)勢必須要將各技術在基頻(Baseband)端做有效率的整合,再將不同應用場景的Radio Unit (如5GNR、eNode_B或WiFi)布建到最接近使用的前端去。在5G的世代裡,Small Cell將會是UDN(Ultra Dense Network)在人口稠密的熱區所必須大量佈建的前端接取,為了降低佈建及電力消耗成本以及抑制住戶抗爭的可能,Small Cell也會納入成為MEC在fronthaul傳輸與baseband的計算管理。
MEC有雲化(Cloud)及霧化(Fog)的雙優點,由於MEC比起Core Network更接近使用端,所以他除了作為前端不同接取技術的集收、計算、加密再轉傳的任務外,MEC在虛擬化下更可利用其collocation的算力資源提供更須即時回應的應用場景需求,如自駕車及AI的inference運用,使低時延的場景需求更容易達成。因此虛擬化的網路架構將會大大的降低電信商的CAPEX與OPEX,也間接創造了新的需求與產生新的revenue金流。
IoT的as-a-service model及應用Container化
物聯網IoT的服務建構與開發生態除了與應用端有直接關聯外,有些需求到URLLC (Ultra Reliable Low Latency Control)的服務亦與底層電信商的傳輸效率有著極相關的相依性。在此用以下的IoT物聯網架構來說明其開發在虛擬化網路上的應用。
接續上述對電信網路的虛擬化所帶來的益處,一般企業在IoT應用開發上所需要的架構平台可分層為:
Machine Learning與AI inference的資源需求與管理
近年來由於自駕車的視覺辨識呈現及AlphaGo的人工智能技術宣示,Machine Learning (ML) 的各種應用已經無法用雨後春筍來形容,AI的應用更是以光速的想像在延伸。但AI的應用不能只停留在hype或buzzword,他必須要有可獲利的商業模式落地才能展現其價值。
ML現在可獲利的商業應用多屬於以下三種領域:
AI商業模式成功的要素亦可分為以下三類,缺一不可:
如上段對IoT應用服務所蒐集到的Data是非常珍貴的,而且須要是有效可用的Data。資料科學家 (Data Scientist)有80%的時間都花費在data的pre-processing,這是極為勞力密集且攸關training model是否可以收斂的關鍵因素。在資料有效整理後,即進行Algorithm的建構及後續的程式編程,在小批量data運行程式、coding debug及調整hyperparameter多次後,就要進行高算力需求的Tensor、Matrix、Activation functions、Gradient及Backpropagation的運算以生成所計畫要得到的weights及bias參數。這一連串的運行是每個正在研發中的training project都會歷經的程序,所以衍生出數據資源及算力資源,在不同Data Scientist或project間,如何有效的排程與並做資源分配及監控的管理需求。
若是單純的以一個project就使用一個AI工作站來看,這將會是一個高資本密集的投資。為了解決這些問題,我們可以利用資源虛擬化、Container的應用及虛擬管理層如Kubernetes來解決企業內或雲端運算服務的資源分配問題。我們以下圖AI操作平台來做解說。
當Data匯進Database時,會經過Message Queue來做資料流排程,再經過Extract及Transform以得到有效的數據重整格式,再Load到Database裡。接下來就要選擇自己所熟悉的學習框架 (Learning Frameworks),學習框架會提供的函式庫來編輯程式與計算所要優化的ML參數。
設計上可以將每個學習框架以Container的方式做操作與資源運用,亦可再進一步加上友善的使用編程介面如Jupyter Notebook及R Studio以及在TensorBoard上呈現訓練過程中的Error rate的變化、Learning rate、momentum及weight decay的調整紀錄。以讓Data Scientist及SW Engineer有最方便的開發環境,最重要的是Admin可以透過這個AI平台管理每個使用者在其project所使用的CPU、GPU、Memory及Storage的runtime資源,以讓投資最optimal及做最有效的運行實現。
當然,在訓練好AI模型後當然就是要進行模型的佈署,若終端設備的數據收集可容納量及computing power的能力夠強,那麼就可以直接將AI模型佈建在終端。若終端所需求的能力以及時延的要求不高的話,那就可以仰賴Cloud或Edge Computing的協助,將數據匯流及AI Inference都在雲端或霧端來做重整及計算以產生預測結果,再回傳到終端去展現。
因此不論是在ML的data pre-processing, coding, training及資源分配,還是訓練好的AI模型進行即時的Inference,網路資源虛擬化都扮演著極為重要的演化動力。
總結本文,Linker Networks致力於虛擬化網路的研發、5G Mobile Networks、MEC、IoT平台開發與垂直應用以及AI模型的訓練與場景適配,都具有極高專業的開發服務能力,引領業界。尤其是運用Container及Kubernetes的技術應用在AI學習平台上的資料及算力資源協同管理,更是提供給企業界及學界在開發AI及ML時的極佳開發使用平台。Linker Networks期盼能與各業界持續的接觸及交流,以為台灣的前端科技產業貢獻協力合作的基礎。
參考文獻
[1] Open Networking Foundation: https://www.opennetworking.org/
[2] Kubernetes: https://kubernetes.io/
[3] Central Office Re-architected as a Datacenter: https://opencord.org/
[4] Mesosphere: https://mesosphere.com/
[5] Software Defined Networking: https://www.opennetworking.org/sdn-definition/
[6] ONOS: https://onosproject.org/
[7] Open Stack: https://www.openstack.org/
[8] Openflow: http://openflow.org/
[9] Docker: https://www.docker.com/
[10] Tensorflow: https://www.tensorflow.org/
[11] Google Container Engine: https://cloud.google.com/kubernetes-engine/