【CDN布局规划】背后的算法技术1—业务问题拆解

导读本篇是【CDN布局规划】系列的第一篇。该系列我们将用3篇文章,介绍如何对一个包含“选址”+“带宽分配”的CDN布局规划问题进行建模求解,并将设计开发一个一键运行,完成多案例、多求解器(Gurobi/CPLEX/COPT/MindOpt)的自动化求解脚本工具。



作者 1:向杜兵,算法专家,某制造业龙头
作者 2:张哲铭,算法专家,某互联网大厂


  • 明人不说暗话,【运筹匠心】想要大家的赞!赞!赞!。先赞后看,多多益善(* ̄︶ ̄)~~~
  • 本期推文代码获取方式,将推文转发朋友圈获20赞,添加管理员微信,管理员会定期回复数据代码链接哈~~~
  • 各个系列的开源资料会定期整理发放,大家可以加粉丝群领取哦~~~

请加管理员微信:IndustryOR


大家好!我们是IndustryOR 团队,致力于分享业界落地的算法技术。欢迎关注微信公众号/知乎【运筹匠心】 。本期我们来谈一谈《CDN布局规划的算法技术》。本期案例共分 3 篇文章依次讲解:(1)业务问题拆解;(2)模型算法实现;(3)多求解器批量求解对比。

本篇文章讲解(1)业务问题拆解

共分为 3 个部分,依次为:
1 业务背景
2 关键挑战
3 问题拆解

1.业务背景

随着各类短视频和自媒体平台的急速发展,移动互联网中无时无刻不产生着巨量的信息,但每个人刷视频、看直播却越来越丝滑,这其中,除了无线网络技术的快速发展,让我们从2G到如今的5G时代外,还有很多其他技术的加持。CDN(Content Delivery Network)就是其中之一。

CDN英文全称Content Delivery Network,中文翻译即为内容分发网络。它是建立并覆盖在承载网之上,由分布在不同区域的边缘节点服务器群组成的分布式网络1

简单来说,CDN会将源站点的内容缓存,使用户可以就近、快速地获取到所需内容。
无论对用户还是内容提供者来说,都希望对内容的访问速度越快越好,因为这极大程度地影响用户体验和网站/平台的用户留存率。那么,作为CDN服务商,必须要尽量保证自己的服务质量,同时价格也要足够低,这就需要考虑:如何在提高用户网络体验和降低自身成本之间寻找到一个最佳的平衡?

在技术层面来说,解决这一难题的关键点之一在于对CDN布局进行合理的规划。一个科学合理的CDN布局方案对服务商商和消费者均至关重要:对于服务商而言,可以帮助其快速响应市场需求,同时降低成本。对于消费者而言,这意味着更稳定、更高速、更优质的上网体验。

那么,在规划的过程中,又面临哪些挑战呢?

2.关键挑战

CDN布局规划面临着众多挑战,其中有两个关键挑战:
(1)数据规模的爆炸性增长
自媒体时代,网络数据量呈现爆炸性增长态势。大量的文本、图片、音频和视频等数据形式不断涌入网络,对网络的容量和带宽提出了更高的要求。更大的数据量意味着需要投入更多的服务器、存储等硬件设备,同时还需要投入大量的人力和时间成本。

(2)移动数据需求的时空不均匀分布
不同地区、不同时段的用户对数据的需求可能存在显著差异,这可能导致源站负载不均衡的问题。合理的CDN服务器布局一方面可以更好地满足不同区域的数据需求,另一方面可以保持用户的数据流量在不同节点之间的均衡,避免某些服务器过载而导致服务质量下降,造成卡顿/延时、图像丢失、访问不稳定等诸多问题,极大降低用户体验,导致用户流失。

综上,本期将介绍CDN服务器布局规划问题。该问题通常需要确定CDN的数目和位置选择,以及数据如何“流向”不同用户

3.问题拆解

CDN服务器布局规划要解决的问题是:在某个通信网络中,为了能将内容快速、低成本地传送到每个用户,需要在这个网络中选择一些网络节点放置内容存储服务器(以下简称服务器),并决定每个服务器分别向哪些用户分配多大的带宽。

每台服务器就像一个大仓库,存放着各类数据,可以发送给不同的用户,而用户的数据也可能来源于多个不同的服务器。不同的数据流从各个服务器出发,“行驶”在网络链路中,途中可能在多个网络节点进行中转,最终到达不同用户的终端。而网络链路就像一条马路,存在最大的“道路宽度”(总带宽),占用带宽将产生相应的租用费用。显然,每条链路上占用的带宽总和不得超过该链路的总带宽。

下面让我们从最简单的场景开始:当整个网络中只有一个用户,且一台普通档次的服务器就能满足其带宽需求。那么显然,这台服务器最佳的部署位置就是该用户所在的位置。

复杂一些,当网络中存在多个用户,但是依靠一台服务器就能满足所有用户的带宽需求时,由于该服务器总带宽有限,那么需要考虑该服务器部署在哪个位置,且如何分配该服务器的总带宽,才能更好地满足所有用户的需求,不至于导致某些用户带宽不足,体验感降低。

再复杂一些,当网络中存在多个用户,需要多台服务器才能满足所有用户的需求,且中间可能经过多个网络节点进行中转时,那么此时要综合考虑每台服务器部署的位置,以及每台服务器和每个用户之间的流量分配,且流量分配可能需要进行多次中转,最终满足所有用户的需求,并让这个布局规划的成本最小。

下图是一个小规模的网络结构示意图:红色点代表与用户直接相连的节点,绿色点代表网络节点,边的宽度代表链路的带宽,颜色表示单位租用费用。

业务目标

需要部署的服务器数量越多,花费的购买成本越多;带宽占用得越多,带宽的租用成本也越多。因此,对于服务商来说,期望在满足用户需求的基础上,尽可能地减少总的成本。

总成本 = 部署总成本 + 带宽的总租用成本

单个服务器的部署成本包括:

  • 购买一台服务器需要的硬件成本
  • 在网络节点进行部署的成本

部署要求

  • 每个消费节点的带宽消耗需求必须被满足
  • 每个网络节点上最多仅可部署一台服务器
  • 服务器输出能力有限,其输出总流量不可超出最大输出流量
  • 每条网络链路上的总流量不能超出该链路的总带宽

决策
在此过程中需要做出以下两个决策,以满足所有的用户需求,并且使总成本最小。
(1)如何选择服务器放置的位置
(2)每个用户与所有服务器之间的网络路径以及路径上占用的带宽

4.结语

本篇(业务问题拆解):我们梳理了CDN服务器布局规划问题需要考虑的关键因素。
下一篇(模型算法实现):我们将介绍如何建立数学模型并调用求解器求解,其中涉及经典的线性化技巧。
最终篇(多求解器批量求解对比):该篇十分实用,我们将介绍如何实现一键对多个问题案例进行多个求解器的求解对比,最终产出一个批量求解的脚本工具。敬请期待~~~

请大家多多点赞、评论、转发、关注!大家的支持是我们持续创作的动力。我们是【运筹匠心】 ,咱们下期见~~~

参考文献:

[1]什么是CDN?它解决了什么难题?5分钟让你明明白白!

  • 31
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值