HPE CMS團隊推進NFV容器化的探索之路_Kubernetes中文社群
本文是HPE解決方案中心的乾貨連載第一篇,HPE CMS為通訊與媒體行業提供諮詢、設計、開發、部署實施等服務,提供從IaaS到SaaS層的完整解決方案。
容器
虛擬化技術の後起之秀
XEN、KVM、VMware等傳統虛擬化技術在過去幾年中被引入到電信網路中,並且帶來了一定的好處,但是這種重型虛擬化的基礎設施也帶來一些新問題,比如整體特別“重”,對於IT軟體系統的部署、微服務化改造來說並沒有帶來特別多的價值。
而後起之秀的容器技術相比傳統虛擬化技術,其特點在於執行時的輕量級和應用部署的高效性,同時藉助於谷歌新一代基於容器技術的微服務架構基礎設施——Kubernetes的支援,運營商很容易升級現有的業務即系統為最新的微服務架構,大大提高電信業務部署的靈活性、加速新業務的推出速度、支援業務的不中斷升級特性並且具備很強的彈性擴容能力。
探索NFV容器化的新方向
自2015年以來, NFV和容器都成為各自領域裡最熱門的技術,這兩項技術也被很多業內人士認為是未來的發展趨勢,進入2016年,越來越多的人開始行動起來,嘗試並積極探索NFV容器化的新方向。
2016年6月,OPNFV Summit在德國柏林召開,德國電信公佈了Docker承載NFV方面的一些應用案例與成果,而在OPNFV PoC戰區,中國移動和紅帽公司聯合展示了容器化ICT融合平臺。
2016年9月,由雲計算髮展與政策論壇、百度、騰訊、阿里巴巴、中國電信、中國移動、中國資訊通訊研究院、英特爾等多家知名廠商與組織承辦的“2016ODCC開放資料中心峰會”上,中國電信北京研究院雲端計算與大資料產品線的專家發表了題為“基於通用x86 硬體承載容器化NFV的關鍵技術驗證”的演講:
演講中重申了《中國電信CTNET2025技術白皮書》裡關於容器技術與NFV的重要觀點:“容器對SDN/NFV既有協同發展和增強的一面,又在很多場景下可以替代NFV的作用,是一種輕量級的價廉物美的虛擬化技術,運營商對容器技術在特定業務場景下的應用持積極態度”。
Clearwater —— IMS in the Cloud
NFV領域裡的一個熱點目標是IMS平臺,因為IMS系統成為4G VoLTE正式商用的必須條件,當前全球運營商都在開始加速VoLTE商用的業務目標,這也重新促進了大家對IMS平臺的重視,特別是IMS平臺容器化的可能性。
我們知道在開源IMS領域內,有兩個比較知名的專案:Clearwater與Kamalio,Clearwater與Kamalio又有什麼重要的區別呢?答案是架構。Clearwater一開始就定位在雲上的IMS,其宣傳口號“IMS in the Cloud”,它採用了大型網際網路軟體架構的設計思路,以微服務方式設計各個元件,使得系統本身具有很好的彈性伸縮能力,成為一個電信級的開源IMS平臺。
Clearwater包括一系列符合IMS標準的元件,提供了語音、視訊、即時訊息等服務。使用者可以使用Clearwater模擬出運營商級的IMS系統,因此被業界廣泛認可。
官方網站(http://www.projectclearwater.org/)釋出了一個宣告,聲稱在亞馬遜公有云上部署一個支援幾百萬使用者的Clearwater叢集,每使用者每年的成本小於2美分。
HPE CMS團隊在Clearwater容器化改造探索過程中的一些收穫和經驗······
Clearwater的架構和叢集分析
下圖是來自Clearwater官方網站的架構圖,虛線方框裡的元件是Clearwater的核心元件,也是IMS系統的核心元件,下面簡單介紹一下各個元件的功能。
Bono & Sprout
首先,位於邊緣的Bono元件充當了IMS中的P-CSCF功能,它相當於是對外聯絡點,負責接收客戶端的SIP請求,即VIOP客戶端直接跟它建立TCP連線併發起SIP協議的信令報文,然後Bono會把SIP報文傳送給IMS中的I-CSCF節點,即圖中的Sprout節點,I-CSCF是運營商的核心網路——也就是運營商內部網路的入口,Sprout節點發送請求給HSS節點(Home Subscriber Server),HSS節點儲存了使用者賬號資料、使用者訂購的業務和配置引數以及使用者的歸屬地等資料,當HSS收到Sprout節點發來的請求後,查詢此使用者的歸屬地資訊,並且自動分配一個使用者歸屬地所在的空閒S-CSCF節點為其提供SIP服務, S-CSCF節點相當於真正的VoIP裡Proxy Server的角色,它負責完成使用者註冊認證和VIOP呼叫的路由處理,以及電話業務的觸發(一個業務應用在IMS稱為一個Application Server,獨立成一個子系統,並統一接入IMS平臺),Sprout元件同時擔當了S-CSCF的角色,如果Clearwater叢集中部署了多個Sprout副本節點,則任何一個節點都可以同時擔當S-CSCF與I-CSCF的功能,Clearwater內在的基於DNS輪詢的負載均衡機制在這裡發揮了重要作用。
Homer、Ralf & Chronos
Homer元件則用於存取使用者開通MMTel業務(多媒體電話業務)時的業務相關配置資訊,在使用者發起VIOP請求時,Spout通過它還獲取相關的使用者配置資訊。Homer與Homestead使用了同一個Cassandra叢集,由於Cassandra叢集本身提供了分散式海量儲存,所以Clearwater可以實現大規模使用者的支援能力。接下來我們說說Ralf元件,在SIP業務過程中,Bono與Sprout會產生可以用於產生使用者賬單的一些計費事件,這些事件就被髮送到Ralf,然後Ralf把它們儲存到memcached中,並通過標準的介面報告給外部的CDF(計費資料功能), 以最終完成使用者計費和賬單流程。由於Ralf元件的水平擴充套件能力比較有限,而且存在單點故障,所以Clearwater後來開發了新的元件——Chronos,Chronos配合Ralf一起工作,從而彌補這個明顯的短板。
Ellis
最後我們說說Ellis,它提供了一個簡單的Web介面,用來完成SIP使用者的註冊管理功能。嚴格意義上,Ellis不屬於Clearwater產品的一部分,因為正常情況下,我們的環境中有一個現成的外部HSS來儲存使用者資料,然後通過Homestead元件自動或手動同步使用者資料,當我們測評Clearwater時,通過自帶的Ellis建立任意數量的測試賬號,從而加速整個測試流程。
Etcd
Clearwater叢集架構中還用到了流行的Etcd元件,Etcd用來解決Clearwater叢集下的系統配置檔案問題以及實現Clearwater叢集的服務發現功能。Cassandra、Memcached以及Chronos叢集的資訊都儲存在Etcd中,舉個例子,一個Sprout節點啟動的過程中,Clearwater的叢集管理器程序(clearwater-cluster-manager)首先會通過Etcd查詢當前存在的Memcached與Chronos叢集,併為這個Sprout節點生成正確的配置檔案,隨後Sprout程序才啟動並開始工作,因此,Clearwater叢集中的元件很容易動態擴容。
Clearwater早先針對虛機部署的方式提供了ISO映象檔案,最近官方也開始嘗試容器化改造,下一節我們精彩繼續······