热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

网络技术_基于云原生(CloudNative)的SIP网络技术中会话边界控制器SBC实现均衡负载(HA)和资源弹性伸缩测试验证和部署讨论

篇首语:本文由编程笔记#小编为大家整理,主要介绍了基于云原生(CloudNative)的SIP网络技术中会话边界控制器SBC实现均衡负载(HA)和资源弹性伸缩测试验证和部署讨论相关的知识,希望对你有一

篇首语:本文由编程笔记#小编为大家整理,主要介绍了基于云原生(CloudNative)的SIP网络技术中会话边界控制器SBC实现均衡负载(HA)和资源弹性伸缩测试验证和部署讨论相关的知识,希望对你有一定的参考价值。




云原生是目前云平台技术架构中非常重要的一个技术话题。当前市场上很多的云计算厂家都在积极推进云原生态的部署。云原生(CloudNative) 在很多的行业和领域开始部署,包括融合通信技术行业。从美国市场来看,无论是运营商级用户和企业级用户都已经开始应用和部署。




随着技术革命的不断演进,特别是我们所在的通信行业,系统软件本身都面临技术转型问题。在VOIP领域,传统的系统平台大部分基于硬件设备开发,缺少灵活性,缺少可扩展性,不能实现资源的弹性伸缩管理,更难实现敏捷开发,缺乏虚拟化完整的支持等问题。Matt Stine在2015年出版了第一本关于云原生技术架构的著作以后,很多开发人员都纷纷在其架构下开发不同的业务场景。在基于SIP网络技术实现的语音视频方案中,SBC,IPPBX,呼叫中心等也从硬件设备类型,虚拟化,包括络功能虚拟化,SD-WAN方面不断扩展。如果读者对网络编排有兴趣的话可以阅读以下文章:






笔者将针对SIP网络技术中会话边界控制器在云原生技术架构中的实现进行讨论分享,笔者读者进一步了解如何在云原生技术架构的基础上实现SBC 高可靠性实现方式,自动测试,软件版本升级和灰度测试环境管理等方面的问题。以下讨论中主要包括:云原生技术背景介绍,关于SIP网络技术和SBC技术架构在云原生中的应用和其迫切性讨论,关于基于云原生的SBC中信令媒体分离,共享数据库状态信息,SBC高可靠性中active/active,active/standby两种机制的HA支持方式,资源自动伸缩,版本管理灰度测试的结果方面的问题进行讨论。








1








云原生技术背景








在2017年,
Matt Stine
有针对云原生的技术架构提出来一个新的概念,新的概念包括六大技术特征:
可处理,可替换,可监控观察,可测试,可部署和可模块化。
另外一个云原生的倡导者
Pivotal
也对云原生技术架构做了四点概括,包括:
DevOps+持续交付+微服务+容器,其技术架构部署方式如下:



此图例以及以下图例均来自于互联网资源



诺基亚贝尔实验室的Bessem和其他研究人员针对5GPP项目垂直行业,关于网络中具体应用场景,包括智慧城市,直播娱乐产业如何支持云原生针对具体的应用模块进行了分解部署讨论-Cloud-Native and Verticals' services,特别针对网络功能虚拟化和SD-WAN等边缘终端业务进行了讨论。这些研究成果都对云原生技术有了更进一步的指导。下面,笔者重点从SIP网络,SBC相关业务角度进一步讨论SBC云原生技术的演进。









2








关于SIP/SBC网络技术相关业务的迁移









在以上的分享中,我们可以看到,云平台部署结合云原生技术架构会逐渐在很多领域进行部署。在我们重点关注的领域中,融合通信平台往云平台迁移,呼叫中心迁移往云平台迁移,并且逐渐占据相对比较大的份额。从技术发展的方向来说,在云平台软件技术架构实现的方式上,云原生的各种技术需要满足微服务,容器,自动交付,自动测试和自动伸缩等特点。进一步来说,SBC的技术架构需要支持这些云原生技术特点。





SBC作为SIP网络或者IMS core网络中最核心的管理模块,它可以实现负载均衡处理,智能路由规则处理,实时智能媒体分析等处理,帮助IPPBX或者呼叫中心系统进行灵活控制和强大的路由管理。为了实现基于SIP网络中各种业务需求的处理,SBC需要不断在系统技术架构上满足云部署和现在云原生的技术要求。

基于云原生(CloudNative)的SIP网络技术中会话边界控制器SBC实现均衡负载(HA)和资源弹性伸缩测试验证和部署讨论


通过以上图例我们可以看到,通过云原生SBC实现其主要目的在于云平台架构的自动化处理,包括技术架构底层的自动化部署,产品生命周期管理,自动部署配置自动化实现和产品或者服务上线后自动化测试验证等目标。


根据Exact Ventures的预测,到2024年,很多运营商的SBC都需要往基于云原生的环境中部署。

基于云原生(CloudNative)的SIP网络技术中会话边界控制器SBC实现均衡负载(HA)和资源弹性伸缩测试验证和部署讨论



为了满足终端企业用户的要求和运营商的战略部署,基于云原生SBC部署是一个势在必行的一个业务要求。为了实现基于最新云原生技术架构的要求,SBC也通过技术的演进逐渐满足用户的需求。


基于云原生(CloudNative)的SIP网络技术中会话边界控制器SBC实现均衡负载(HA)和资源弹性伸缩测试验证和部署讨论


为了实现基于 Cloud-Native 技术架构 的SBC的最新功能,SBC必须针对性地解决目前SBC应用环境中的各种要求:



  • CNF-云原生技术由很多微服务应用构成: 需要向后兼容,支持服务API接口,各种服务需要互相独立。


  • 逻辑和状态分离支持无状态worker共享状态数据: 支持活动/活动worker 工作模式和扩展。


  • 针对每个微服务进行流程开发设计更新等要求支持:能够支持自动更新和均衡负载能力,当必要时,SBC 必须自动启用SBC的均衡负载功能,实现自动化扩展。


  • 为各种云平台提供集成设计,和当前主流云平台实现监控日志排查服务的接口支持


  • 支持通过容器技术实现网络编排:支持SBC回滚更新,自动恢复,手动和自动扩展,支持Kubernetes和支持Helm 3.0 打包。




在接下来的章节中,笔者将重点介绍如何通过具体的逻辑模块的分离来实现以上关于云原生技术的目标。









3








基于云原生技术架构中的SBC业务流程详解








当前,市场上最新的基于云原生会话边界控制器-SBC的技术架构实现方式完全对各种功能模块进行更深入的分解,媒体和信令解耦,数据库共享,均衡负载,呼叫管理,网络服务等进行主从备份和主主备份方式处理。另外,对用户来说,很多传统架构开发部署的融合通信平台,IPPBX,呼叫中心。在部署和项目调研时,用户都要考虑用户人数,物理服务器资源等,通常按照最大用户数量或者并发数量进行的部署。如果用户数量减少以后,或者某些服务器不再使用以后,他们将要面对公司资源的浪费和闲置,导致极大浪费。因此,基于资源的弹性计算解决方案是一个非常不错的选择。笔者在以下讨论中将针对SBC在基于云原生技术架构中的高可靠性设置,自动弹性收缩,金丝雀软件灰度测试,版本管理方面进行讨论。






基于云原生(CloudNative)的SIP网络技术中会话边界控制器SBC实现均衡负载(HA)和资源弹性伸缩测试验证和部署讨论



通过以上的SBC技术架构就可以实现当前SBC最需要支持的功能,包括信令和会话负载的分离,通过共享数据库来实现状态(会话状态和注册状态)共享,实现高可靠性部署中的active/active方式和active/inactive方式支持,并且可实现广泛的大规模集群部署方式。在关于SIP负载均衡的处理过程中,通过共享数据库会话状态数据和注册状态数据,SIP在会话入口和退出状态中,分别对几台SBC worker进行负载处理,根据其不同状态进行发布时分发机制的均衡负载。例如,如果 worker 3 出现故障,它down 掉以后,LB 负载均衡就会根据共享数据库中当前的状态自动调度到worker 4的示例上。

基于云原生(CloudNative)的SIP网络技术中会话边界控制器SBC实现均衡负载(HA)和资源弹性伸缩测试验证和部署讨论




除了负载均衡的自动化处理以外,SBC还要实现SBC worker的自动伸缩来满足业务功能突发要求增加带来的超载问题。这一功能可以满足呼叫并发突然增加,视频语音会议人员突然爆增时资源的负载均衡支持。

基于云原生(CloudNative)的SIP网络技术中会话边界控制器SBC实现均衡负载(HA)和资源弹性伸缩测试验证和部署讨论



在以上SBC设置场景中,SBC通过评价指标实现自动控制的解决方案。如果评价指标触发了多台worker需要介入到流量处理时,通过阀值计算,SBC worker数量会自动实现扩展功能。如果SBC 评价指标的数据发生更新。如果数据流量降低以后,SBC worker会自动缩减到原来的数量。通过SBC自动扩展解决方案,企业用户或者运营商级用户不仅仅可以增加SBC 实例数量,同时也可以在无需更多空闲资源时,系统自动缩减SBC 示例的数量,这样可以完全避免系统资源的浪费。








在软件行业的开发流程中,
Canary(金丝雀)更新是一个比较先进的软件版本管理手段。用户可以先发布一个
Canary 金丝雀版本,和目前应用环境进行灰度测试。
Canary版本经过一定时间测试,用户可以发现测试版本的bug,然后及时修复发现的bug,或者回滚到以前部署的版本,保证其系统完整的稳定性。SBC测试开发流程也可以使用此手段来控制功能发布的结果。

基于云原生(CloudNative)的SIP网络技术中会话边界控制器SBC实现均衡负载(HA)和资源弹性伸缩测试验证和部署讨论



在以上升级流程中,如果我们要升级 worker 2版本时,我们可以先部署一个worker 2(v2,金丝雀)版本,然后让 worker2的v2 版本处理一定的数据流量。系统经过一段时间运行后,根据系统状态数据,如果我们发现其工作状态正常的话,可以完全对work2 的v1版本进行升级,完全升级到v2版本。如果发现v2版本有问题的话,系统会回滚到原来的v1版本,不再对work2 v1 版本进行升级。通过
Canary升级控制机制可以完全控制SBC软件升级的可控性。






在云部署场景中,特别是需要大规模集群部署环境时,SBC的HA 高可靠性机制是系统稳定性的绝对保证。通过active/active 和active/standby模式支持所有的SBC worker实例。在active/active 环境下,如果以下三个worker 有其中一个down 掉的话,例如worker IP-A出现故障,系统通过共享数据库状态数据,其他的worker(IP-B和IP-C)将自动承担IP-A的工作量,把它的工作量发布到另外两个SBC worker 实例上。


基于云原生(CloudNative)的SIP网络技术中会话边界控制器SBC实现均衡负载(HA)和资源弹性伸缩测试验证和部署讨论



在以上的SBC HA处理流程中,通过获取共享数据库的状态数据,信令服务器出现故障以后,媒体功能或者编码转换功能仍然会继续执行。Active/Active部署方式及时实现故障服务器出现问题以后,通过共享数据库状态消息,重新发送re-INVITE请求分发请求到另外两台SBC worker(IP-B和IP-C的蓝色指示部分)。






SBC的高可靠性部署环境中,通过active/standby也可以轻松实现其高可靠性处理方式。

基于云原生(CloudNative)的SIP网络技术中会话边界控制器SBC实现均衡负载(HA)和资源弹性伸缩测试验证和部署讨论



在以上的处理机制中,其中一个SBC worker 设置为standby模式,如果一个active SBC 出现故障以后,例如IP-A出现故障,standby就会通过其IP接管其媒体地址,保证其媒体流程继续进行处理。standby模式不经过re-INVITE处理,直接通过媒体地址进行媒体通信。








4








关于云原生SBC技术框架讨论和其他虚拟化产品讨论








通过章节的以上介绍,读者可以看到,云原生需要一套完整的自动部署框架来实现云原生的这些要求。Ribbon提出了以下这套完整的技术框架(RAF)来帮助运营商级用户和企业用户实现云原生SBC部署的流程。






虽然很多SBC厂家也提出了关于云原生SBC的技术框架。但是一些厂家的SBC产品还不能实现真正的云原生技术架构和部署要求。因为其架构的原因,很多性能指标可能受到了一定的限制。例如,Ribbon 云原生的SBC SWe Lite在SILK转码上,其成本比友商的低40%, 性能是友商的两倍左右。在SBC HA处理上,很多厂家的SBC仍然只能使用的active/standby模式,因为没有共享状态数据的数据库模式,部署模式仍然是传统的active/standby,不是真正的云原生容器工作机制,不能实现自动弹性收缩,这样也会导致系统很多资源浪费。





在当前的云平台环境中,随着技术的不断更新,SIP网络技术的架构也必然发生很大的变化,这是一个SIP技术和业务要求转型时期。虽然目前仍然存在硬件部署方式,虚拟化方式和云平台部署方式,但是,未来很多的应用将需要通过云原生技术架构来实现和管理。在SBC的选型上,用户也一定要考虑云部署的HA处理方式支持,可伸缩的弹性计算功能,部署管理测试等方面的问题。Ribbon SBC在基于云原生技术架构的实现方面已经走在了同行业的前面,完全具备了云原生技术的要求。










5








总结








云原生技术是当前互联网云计算中比较热门的主流技术架构,我们的客户也会随着技术的变化跟进这种策略。它本身符合了现代云技术发展的潮流。SBC作为SIP网络核心控件,承担着NAT透传功能,呼叫均衡负载功能和兼容性测试等问题。基于云原生SBC的技术通过不断优化,利用云计算各种技术实现了基于云原生SBC的解决方案,这种新的技术彻底实现了SIP网络的HA高可靠性部署,同时满足了大规模集群的配置支持。








在本文章中,笔者首先介绍了关于云原生技术的背景和特点,通过SBC技术架构分解,满足了云原生SBC要求,实现了资源弹性扩展,资源伸缩调整等非常高级的功能。另外,一些厂家虽然也在逐步部署云原生技术,但是其底层架构因为不能共享数据库状态信息,它们仍然不是真正的云原生技术,因此,其性能和管理方式也存在一定的局限性。笔者希望通过市场上领先的Ribbon SBC 云原生技术的实现方式,和读者分享真正的云原生技术是如何满足云原生技术架构要求,并且帮助用户能够实现专业的SIP/SBC解决方案。







参考资料:

www.rbbn.cn

www.hiastar.com

www.rbbn.com

https://docs.microsoft.com/en-us/dotnet/architecture/cloud-native/definition

Bessem Sayadi, Cloud-Native and Verticals' services






推荐阅读
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 服务网关与流量网关
    一、为什么需要服务网关1、什么是服务网关传统的单体架构中只需要开放一个服务给客户端调用,但是微服务架构中是将一个系统拆分成多个微服务,如果没有网关& ... [详细]
  • 什么是网关服务器初学linux服务器开发时,我们的服务器是很简单的,只需要一个程序完成与客户端的连接,接收客户端数据,数据处理,向客户端发送数据。但是在处理量很大的情况下,一 ... [详细]
  • Kubernetes(k8s)基础简介
    Kubernetes(k8s)基础简介目录一、Kubernetes概述(一)、Kubernetes是什么(二& ... [详细]
  • 基于事件驱动的并发编程及其消息通信机制的同步与异步、阻塞与非阻塞、IO模型的分类
    本文介绍了基于事件驱动的并发编程中的消息通信机制,包括同步和异步的概念及其区别,阻塞和非阻塞的状态,以及IO模型的分类。同步阻塞IO、同步非阻塞IO、异步阻塞IO和异步非阻塞IO等不同的IO模型被详细解释。这些概念和模型对于理解并发编程中的消息通信和IO操作具有重要意义。 ... [详细]
  • 开发笔记:计网局域网:NAT 是如何工作的?
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了计网-局域网:NAT是如何工作的?相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文总结了淘淘商城项目的功能和架构,并介绍了传统架构中遇到的session共享问题及解决方法。淘淘商城是一个综合性的B2C平台,类似京东商城、天猫商城,会员可以在商城浏览商品、下订单,管理员、运营可以在平台后台管理系统中管理商品、订单、会员等。商城的架构包括后台管理系统、前台系统、会员系统、订单系统、搜索系统和单点登录系统。在传统架构中,可以采用tomcat集群解决并发量高的问题,但由于session共享的限制,集群数量有限。本文探讨了如何解决session共享的问题。 ... [详细]
  • LVS-DR直接路由实现负载均衡示例
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • php网站设计实验报告,php网站开发实训报告
    本文目录一览:1、php动态网站设计的关键技术有哪些软件,及搭建步骤需要哪些页面,分别完成 ... [详细]
  • Nginxgaodaima.comnginx属于七层架构,支持的是http协议,本身对tcp协议没有支持。所以不能代理mysql等实现负载均衡。但是lvs这个东西不熟悉,主要是公司 ... [详细]
  • 朱晔的互联网架构实践心得S1E7:三十种架构设计模式(上)【下载本文PDF进行阅读】设计模式是前人通过大量的实践总结出来的一些经验总结和最佳实践。在经过多年的软件开发实践之后,回过头 ... [详细]
  • PartI:取经处: http:www.ramkitech.com201210tomcat-clustering ... [详细]
  • 博客_2018年博客总结
    本文由编程笔记#小编为大家整理,主要介绍了2018年博客总结相关的知识,希望对你有一定的参考价值。前言     ... [详细]
author-avatar
羚瑞聪羊奶粉
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有