HPE CMS团队推进NFV容器化的探索之路

本文是HPE解决方案中心的干货连载第一篇,HPE CMS为通信与媒体行业提供咨询、设计、开发、部署实施等服务,提供从IaaS到SaaS层的完整解决方案。

20170310184812

容器
虚拟化技术の后起之秀

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镜像文件,最近官方也开始尝试容器化改造,下一节我们精彩继续······