乐趣区

关于通信:一文解读阿里云短信网关的云原生技术

随通信行业一直的业务迭代,新的赛道为业务带来了新变动,生态单干和渠道的规模上量给零碎带来了模式翻新的同时,也带来了更大的压力。

同时,国内站的地区环境和当地政策法规的因素,给全球化的建设也带来了全新的时机和挑战。

本文将探讨云原生时代下的网关技术,面向全球化、平台化、精细化的时代背景,如何在云原生时代开掘自我变质的契机,又如何拖着惨重的技术负债实现涅槃新生,实现高性能、高可用、低成本的架构演进和技术冲破,本文联合历年双 11 顶流下的网关技术实践经验落笔成文,心愿对各位读者有所帮忙。

云通信网关倒退新趋势与挑战

阿里云通信短信网关是基于当先的通信架构和大规模分布式网关解决技术打造的云原生网关,提供稳固的通信服务能力,具备可冗灾、可复原、可切换的高可用服务保障能力,实现客户的 SLA 保障要求,最终实现资源的最大利用和利润的最大化。

高性能、高可用、低成本——是趋势,也是挑战。

高性能,十万级并发、秒级触达

阿里云通信起步于 2017 年,晚期孵化于阿里通信,后与阿里云整合,通过短短几年的倒退,目前曾经是阿里云上最热门的云服务产品之一。在 2019 迎来规模化倒退,这一年在天猫双 11 流动当天实现了历史峰值,笼罩寰球 200 多个国家。

从技术层面上看,云通信短信网关在双 11 撑持了十万级 QPS 的流量散发,而且这类并发不是简略的查问,而是须要实现与运营商或其它第三方零碎交互。如此之大的业务流量和资源的调度,除了要做好零碎保障,同时还要保障发送与响应的低提早,实现寰球笼罩、秒级触达,这是很大的一个挑战。

诉求是:同时满足高并发和高性能。

那么当初的问题瓶颈次要出在哪里呢?

1. 目前的网关架构次要是以规模换性能,须要大规模集群分布式部署提供高并发能力。

2. 在通信网络传输上,须要依靠通信标准协议等长连贯形式通过互联网传输。

高可用,分钟级故障隔离及复原
随着业务倒退,云通信资源节点将要达到万级,如何在十万级并发下实现万级节点的稳定性是十分大的难题。另外,云通信有着相似于秒杀一样的突变型流量的业务场景,比方营销短信,会在几分钟内发送海量的短信申请,这种刹时流量往往会造成洪峰对系统产生冲击。

从技术层面上看,云通信短信网关采纳微服务分布式架构进行畛域拆分部署,并大量应用异步编程多线程并发调度模型,零碎复杂度可见一斑,这么大的集群规模和密集型的通信网络,除了要做好业务故障监控覆盖率、告警准确率 100%,同时还要保障故障隔离及疾速复原,实现整体零碎高可用,这又是一大挑战。

那么当初的零碎危险还存在哪些隐患呢?

1. 目前的网关架构次要是多核心多分组的部署架构,须要将不同维度的业务、场景、客户进行隔离部署。

2. 其次在数据存储资源上,须要重点关注数据库的稳定性。

低成本,容器资源弹性可伸缩

随着指数级增长的运算规模,尤其是在双 11 期间部署的上百台服务器,当流量和资源进一步翻翻,老本耗费也会水涨船高。然而,在大促过后,潮涨潮落之后,就是容器资源的扩容与缩容,然而对于有状态的服务来说,扩缩容所对应资源迁徙老本和难度着实不是一件轻易的事。

从技术层面上看,有状态的服务是捆绑住了资源,起因是短信是长连贯异步全双工的通信模式,实质上的抵触是潮汐流量下资源的利用率问题,面对这种有状态的服务和低廉的资源老本,除了要做好流量和资源最优匹配,缩小闲置资源的老本节约,晋升 CPU 利用率,同时还要实现无状态的容器资源弹性可伸缩,进一步升高运维老本,这又是一大挑战。

那么当初的技术难点又有哪些呢?

1. 目前的网关部署次要是 DevOps 的模式,须要事后申请资源再进行镜像容器的部署。

2. 在资源连贯的治理上,须要对资源连贯的进行预调配,实现资源连贯与容器 IP 的绑定。

借力破局:基于云原生的边缘网关架构

云原生是一套因云而生,又应云而行的技术办法体系,降本增效是云原生利用最大价值。

上面,就联合云原生的技术特点聊一下短信网关建设了哪些技术劣势。

易部署、广覆盖,分钟级服务部署

云原生是一套因云而生的技术办法体系,而阿里云又领有遍布寰球的核心和边缘节点,那么短信网关如何基于容器化、服务网格、微服务等云原生技术,联合边缘云,打造轻量级边缘网关和云网部署架构,实现易部署、广覆盖的寰球就近接入和散发能力,以此达成晋升网关性能和缩小运维老本的倒退指标。

为了实现异部署的指标,这里次要有两个重点:一是零碎架构反对云原生化的易部署,二是 DevOps 平台反对应用环境的易部署。

首先在零碎架构层面上,短信网关为此拆合成耦实现了两层架构体系来对业务进行撑持,打造的轻量级网关架构更易于部署在各地区,使客户实现就近接入,保障低提早的短信发送体验。如下图所示:

短信网关两层架构对业务撑持提供多种解决方案,轻量级的网关架构十分易于部署在各地区,使客户的实现就近接入,保障低提早的短信发送体验。轻量易于部署,无论是私有云、混合云或专有云,都能够基于容器化实现疾速部署构建。短信网关两层架构业反对互相独立部署,也能够整合集成部署,帮忙打造多样化的部署架构。

其次在 DevOps 平台层面上,为了适配多云环境的部署状况,边缘网关须要的中间件和资源要尽可能轻量级和开源化,包含部署到私有云、混合云和专有云里。基于此,咱们在设计上边缘网关齐全基于云原生的底座进行构建,实现部署上更强的适配性。

在 DevOps 平台方面咱们抉择了两种形式进行反对:全托管集群和边缘全托管集群,这两个平台都能够将底层的资源池通过虚拟化技术封装成一个个的容器,在联合镜像服务即可实现服务的疾速部署,特地要说的边缘全托管平台还能够纳管驻外的资源池,这样咱们在面向混合云部署时,只通过镜像就能够部署到客户的容器化服务中。

综上所述,边缘网关基于阿里云边缘节点,助力业务下沉至离用户 10 公里的中央,缩小时延和带宽老本,在保障稳定性的同时实现技术降本和寰球多节点的疾速部点。

易调度,低提早,毫秒级响应

云原生又是一套应云而行的技术办法体系,上文提到短信网关是通过多分组的部署解决方案,在靠近用户的区域分别独立部署网关,进行与供应商的低延时高质量对接。那么这里就有一个问题;如此大规模的边缘节点是如何被调度的?调度的复杂度又有多高?

针对流量调度简单场景,升高业务架构复杂度,通过架构降级实现业务逻辑与流量管控逻辑解偶,让简单调度变为可观测、可管控的对立的流量调度模型,以此实现易调度、低提早的发现指标。

为了实现易调度的指标,同样须要解决两个重点:一是零碎架构反对云原生化的易调度,二是通信网络架构反对应用环境的易调度。

首先在零碎架构层面上,实现基于 三级策略的路由寻址调度算法 实现节点间、节点与资源间、资源与连贯间的数据链路通信;以及 基于多因子多权重的路由协同管制动静感知算法 实现异常情况下的稳固牢靠路由寻址。

除此之外,短信面向的场景:验证码、告诉、营销等,对于时效性的要求十分高,技术上咱们实现了 基于场景优先级的自适应弹性流控算法,多个音讯队列之间不再是孤立的,每个队列的流速管制都会受到其余队列运行状况的影响,优先级越高的队列流速管制越大,优先级越低的队列流速管制越小,并且能够随零碎运行状况自行动静调整,具备高时效性的自适应调整能力。其实,无论哪种算法,次要实现的指标都是让流量更加平滑、更即时。

其次在通信网络架构层面上,咱们次要采纳了云上开源的中间件产品,比方 Nacos、Redis、MNS 等,另外在 VPC 组网过程中,也大量采纳来 EIP、NAT、SLB、VPN、IPSec 等网络减速技术,以此来保障通信的低提早。

咱们晓得云服务通常部署独立 VPC 内,VPC 拜访须要通过 SLB/NAT,公网用户被动拜访云上资源的流量是通过 SLB 进行转发,云上资源被动拜访公网的流量是通过 NAT 进行转发。针对跨 region 云上网络互访状况,咱们采纳的办法是对跨 Region 网关调用的是先走到本 Region 网关的弹内,再达到本 Region 网关的弹外,这样网络传输的性能就会有所保障。

易运维,省老本,秒级弹性伸缩

上文中提到短信网关有着宏大的集群规模和寰球节点,除了在调度上的考量外,另外还有一个问题:如此大规模的边缘节点是进行老本管制的?潮汐流量下的弹性伸缩又如何运维? 

从实质上来看,短信网关的运维外围难点还是因为连贯的有状态,有状态就会产生各种的简单问题,其中最大的难点就是有状态的容器不能进行弹性扩缩容。所以,实现省老本的指标之一也在于此。为了实现易运维的指标,须要解决两个重点:一是零碎架构反对云原生化的易运维,二是可观测技术支持数智化的易运维。

首先在零碎架构层面上,咱们通过 分布式松耦合网关架构 实现了对传统通信网关的云端再造,解耦业务解决模块和通信协议会话模块,业务解决层无需关怀通信连贯状态,可依据流量动静扩缩容,自研的数据连接器提供路由发现、调度的能力。

为了更轻量级的部署和设计,咱们将云网架构从整体上拆分成独立的畛域模块,每个模块都独立解决各自畛域的问题。对一些协同关联的业务服务畛域,咱们采纳的是服务集成和扩大的形式进行服务间的通信模式,而不是在本地网关进行开发,从而保障本地网关的轻量级和专属性,进而更易于运维。

其次在数智化运维层面上,首先思考的是为什么要深挖可观测技术?可观测数据笼罩的范畴是哪些?数据是隔离的?还是聚合的?从网络结构上看是是什么样的?

“可观测”是个比拟大而全的概念,包含了利用性能指标、链路追踪、容器监控、系统监控、日志监控等等,每个都是独自一个点,然而对于业务利用零碎来讲,咱们要做的应该是一个全方位的可观测体系。

具体从档次来看,最下面是“看到”,能看到指标,能告警;下一层是能够“剖析”,能够追踪调用链,能够剖析 RT、异样出在哪里;最上层是副作用,对于一些比拟明确的场景,通过零碎自动化实现基于编排的根因剖析、基于编排的故障主动定位。

总结来说,可观测应该是一个多面的,咱们其实解决的是如何基于这些可观测数据聚合剖析并副作用于业务网关,能做到自动化 AIOps 的运维管控。

通过演进倒退,网关始终致力于规模化、边缘化、数智化三个方向倒退:

通过云网关和边缘网关的云网架构实现寰球多站点、多节点的网络拓扑部署;

着力边缘化的架构演进助力规模化网关的疾速、便捷的部署能力,同时重建云网通信模式,实现云网关的弹性程度伸缩能力;

最初通过可观测技术对全球网关节点实现监控、埋点的 Metrics 和 Trace,构建基于编排的根因剖析能力。心愿通过下面的内容能够帮忙到大家对云通信全新的了解,如果有感兴趣的同学也欢送进行评论交换。

「视频云技术」你最值得关注的音视频技术公众号,每周推送来自阿里云一线的实际技术文章,在这里与音视频畛域一流工程师交换切磋。公众号后盾回复【技术】可退出阿里云视频云产品技术交换群,和业内大咖一起探讨音视频技术,获取更多行业最新信息。

退出移动版