基于BASP的微服务放置优化

BASP优化微服务放置

微服务架构的实用服务放置方法

摘要

近年来,随着自发部署的WiFi热点和家庭网络数量不断增加,社区网络(CNs)得到了快速发展。这些由志愿者拥有和管理的网络为其成员及公众提供各种服务。为了降低服务部署的复杂度,社区微云最近成为向社区用户提供云服务的一种有前景的推动手段。通过将服务更靠近消费者,微云不仅追求更好的服务性能,还旨在降低在社区网络内部署主流互联网服务的准入门槛。然而,服务的提供并非如此简单。由于社区网络具有规模大且拓扑结构不规则、软硬件多样性高等特点,因此需要在网络中对微云和服务进行“谨慎”的放置。

为实现这一目标,本文提出利用网络的状态信息来指导服务部署决策,并通过一种快速的启发式算法实现,这对于快速应对变化的条件至关重要。为了评估其性能,我们将所提出的启发式算法与在Guifi.net(全球最大的社区网络)中采用的随机放置方法进行了比较。实验结果表明,在带宽增益方面,我们的启发式算法始终优于随机放置,提升幅度达211%。我们量化了该启发式算法在实际实时视频流服务中的优势,证明视频块丢失显著减少,丢包率降低了37%。此外,通过使用一种流行的Web 2.0服务,我们证明了客户端响应时间最多可缩短一个数量级。

索引术语

服务部署;社区网络;微云;

I. 引言

自21世纪初以来,社区网络(CNs)或“Do-It-Yourself”网络为满足农村和城市社区日益增长的网络连接性需求而迅速发展。社区网络的主要特点是采用“自下而上”的方式构建,混合使用无线和有线链路,由公民群体自行建设、运营和管理网络。这种开放且聚合式的过程形成了一种高度异构的网络,具有自管理链路和设备。例如,这些设备通常是“低技术”的,完全由现成硬件和开源软件构建,并通过无线链路进行通信。这带来了诸多挑战,例如缺乏服务保障、资源利用效率低下以及安全性缺失等。

示意图0

这些挑战并未阻碍社区网络(CN)的蓬勃发展。例如,位于西班牙加泰罗尼亚地区的Guifi.net,就是这一模式的成功范例。Guifi.net被定义为由其成员构建的开放、自由且中立的社区网络。也就是说,公民和组织共同投入资源并协调努力,以建设和运营本地网络基础设施。Guifi.net诞生于2004年,至今已发展成为一个拥有超过32,000个运行中节点的网络,使其成为全球最大的社区网络[1]。仅以一些数据为例,图1展示了近两年来接入互联网的总入站流量(粉色)和出站流量(黄色)的演变情况。简单观察该图即可发现,Guifi.net的流量已增长了两倍。流量峰值对应着新用户的加入以及网络中高带宽消耗服务的部署。事实上,包括GuifiTV、图形服务器、邮件和游戏服务在内的大量服务正在Guifi.net内部运行。所有这些服务均由个人、社会团体以及小型非营利或商业服务提供商提供。

Guifi.net的最终目标是创建一个覆盖高度本地化区域的完整数字生态系统。但这一使命并不简单,因为只需粗略查看用户需求的服务类型,就会发现互联网服务(代理和基于隧道的)所占比例超过50%。这证实了Guifi.net用户通常对主流互联网服务[2],感兴趣,从而给“薄弱”的骨干链路带来了沉重负担,用户也因此经历较高的服务波动性。

除了其他问题外,这一问题还推动了为Guifi.net用户量身定制的“替代性”服务部署模式的诞生。其中一种模式便是基于微云的模式。微云本质上只是一个平台,用于向庞大社区网络中的本地公民群体提供服务。

服务可以是任何类型,从个人存储到视频流和P2P电视[3]。请注意,该模型不同于雾计算,后者通过在设备和数据中心之间引入一个中间层来扩展云计算。微云则采取相反的路径,将服务置于更接近消费者的位置,从而在互联网中无需或仅需极少的操作。其理念是利用用户之间更短、更快的连接性,以提供更好的服务,并减轻骨干链路的过载。

然而,这种方法带来了新的挑战,例如在社区网络内对微云进行最优部署以克服性能次优的问题。Guifi.net 也不例外。显然,一个对底层网络状态不敏感的部署算法可能导致严重的低效率。尽管在概念上很简单,但由于社区网络和使用模式的动态特性,要计算出最优决策仍然具有挑战性。

本文试图回答以下两个研究问题: 1) 首先,在具备足够状态信息的前提下,基于网络感知的部署是否足以向社区网络用户交付满意性能?2) 其次,服务的冗余部署能否进一步提升性能?

为回答这些问题,本文提出了一种新的部署启发式算法——BASP(基于带宽和可用性感知的服务部署),该算法利用底层社区网络的状态来优化服务部署。具体而言,它考虑了两类信息来源:i)网络带宽和ii)节点可用性,以做出优化决策。与需要数小时才能完成的暴力搜索相比,BASP运行速度快得多,仅需几秒钟即可完成,同时能够达到同样理想的结果。

我们的结果表明,BASP在端到端带宽方面始终优于Guifi.net中现有的就地且天然快速的随机放置策略,性能提升达211%。受这些发现的推动,我们随后在真实社区网络中运行了BASP,并量化了根据BASP部署实时视频流和Web 2.0服务后所实现的性能提升。我们的实验结果表明,采用BASP后,对等端的视频块丢失最多减少了3个百分点,相当于丢包率实现了37%的降低,这是一个显著的提升。此外,在使用BASP部署Web 2.0服务(即社交网络服务)时,客户端响应时间最多减少了数量级。

本文的其余部分组织如下。在第二节中,我们描述并刻画了QMP网络的性能。第三节定义了我们的系统模型,并介绍了我们的BASP启发式算法。第四节讨论了评估结果。第五节展示了视频流媒体和Web 2.0服务的实际部署实验,并进行了讨论。第六节描述了相关工作,第七节总结全文并探讨了未来研究方向。

II. 网络特征描述

我们的服务部署策略考虑了两个方面:节点可用性和网络带宽。作为第一步,至关重要的是

示意图1

示意图2

以了解这两个维度在真实社区网络中的行为。我们通过对一个生产级无线社区网络(例如QMP(Quick Mesh Project)网络)进行为期五个月的表征来实现这一目标。我们的目标是确定网络的关键特征(例如带宽分布)及其节点的特征(例如可用性模式),这些特征有助于我们设计用于社区网络中智能服务部署的新启发式方法。

A. QMP网络:简要背景

QMP网络于2009年开始在西班牙巴塞罗那市的一个区域桑茨部署,是QuickMesh Project(QMP)的一部分。QMP是一个城市网状网络,也是Guifi.net社区网络的一个子集,有时被称为GuifiSants。撰写本文时,QMP拥有约71个节点。网络中分布有两个网关(代理),用于将QMP连接到其余的Guifi.net和互联网(见图3)。关于QMP的详细描述可参见[4]。

通常,QMP用户在屋顶上安装一个带有Wi‐Fi接口的室外路由器(OR),并通过以太网连接到室内接入点(AP),从而构成本地网络。QMP中最常见的OR是如图2所示的NanoStation M5,用于在网络中建立链路,集成了扇区天线,并配备具有无线802.11an接口的路由器。一些战略位置部署了多个NanoStation,以提供更广的覆盖范围。此外,一些长达数公里的链路使用抛物面天线(NanoBridge)建立。QMP中的室外路由器(OR)刷写了在QMP项目内部开发的Linux发行版,该发行版是OpenWRT的一个分支,并采用BMX6作为网状路由协议[5]。

连接到室外路由器的用户设备包括Minix Neo Z64和捷锐迷你PC,这些设备配备了Intel Atom处理器。它们运行Cloudy操作系统,可在Docker容器中运行服务。

Methodology and data collection :通过SSH连接到每个QMP室外路由器并运行QMP发行版中提供的基本系统命令来获取测量数据。这种方法的优点是无需在节点上进行任何更改或安装额外软件。实时测量在2016年7月至2016年11月的五个月期间每小时进行一次,我们的实时监控页面和数据在互联网上公开可查。我们使用这些数据来分析QMP网络的主要方面。

示意图3

示意图4

B. 节点可用性

QMP中所使用的异构硬件的质量和状态会影响链路的稳定性和网络性能。QMP节点的可用性被用作衡量新成员对网络连接性质量预期的间接指标。

图4显示了在五个月期间收集的节点可用性的经验累积分布函数(ECDF)。我们将节点的可用性定义为该节点在其首次出现后,在每次抓取中出现的次数所占的百分比。一次抓取是我们从QMP网络获取的每小时网络快照(我们总共进行了2718次抓取)。图4显示,25%的节点可用性低于90%,其余节点的可用性介于 90−100%之间。

在像QMP这样的社区网络中,用户通常不会刻意重启设备,除非需要进行升级,而这种情况并不常见。因此,节点在抓取中出现的频率是衡量其因随机故障导致的节点可用性的相对良好指标。

当我们比较在类似研究和PlanetLab环境中报告的可用性分布时,QMP节点断开连接或无法从网络访问的可能性更高。PlanetLab在其节点上表现出更高的平均可用性(即sysUpTime),这可能是因为它是一个运行在更加稳定计算机和环境上的实验测试平台。此外,QMP成员不仅负责其节点的维护,还需确保与其他网络部分保持最低限度的连接性。

图5展示了抓取期间的节点和链路数量。该图显示 QMP正在增长。总体上检测到了77个不同节点,其中71个在整个测量期间持续在线。在大多数抓取过程中遗漏了约6个节点,这些是来自其他网状网络和用于各种实验的实验设备的临时工作节点。图5还显示,节点之间使用的链路平均有175条为双向,34条为单向。对于双向链路,我们将相反方向的两条链路计为一条链路。

总之,节点可用性对于识别那些能够最大限度减少服务中断的节点至关重要。根据测量结果,我们为每个节点分配可用性评分。高可用性节点是部署微云的潜在候选节点。

C. 带宽表征

在QMP和Guifi.net网络上运行的大量服务属于网络密集型(带宽和延迟敏感),在各个网络节点之间传输大量数据[2]。这类服务的性能不仅取决于计算和磁盘资源,还依赖于其部署节点之间的网络带宽。因此,在网络中进行服务放置时,考虑网络带宽至关重要。

首先,我们通过研究带宽来表征QMP网络的无线链路。

示意图5

图6显示了所有链路的平均带宽分布。该图表明,链路吞吐量的均值可拟合为21.8 兆比特每秒。同时,图6显示60%的节点的吞吐量为10 兆比特每秒或更低。网络中测得的21.8 兆比特每秒的平均带宽使得许多流行的高带宽需求服务能够运行而不会出现严重中断。这种高性能可归因于网络中使用的 802.11an设备。

为了观察带宽的可变性,图7显示了三条最繁忙链路在两个方向上的平均带宽。上传操作用实线表示,下载操作用虚线表示。三条最繁忙链路的节点在图的顶部被高亮标出。我们注意到,两个方向测得的带宽不对称并不总是由于用户流量的不对称(图中未显示)。例如,在早上6 点左右,当GSgranVia255节点的用户流量最低且两个方向相等时,图7中观察到的链路带宽不对称仍然存在。因此我们得出结论:尽管带宽偶尔会受到流量的轻微影响,但我们所观察到的链路不对称可能是由于链路特性所致,例如两端存在的干扰水平或不同的发射功率。

为了测量链路的不对称性,图8展示了在每个方向上测得的带宽。右侧还绘制了偏差的绝对值相对于均值的箱线图。该图显示,大约25%的链路偏差超过40%,同时另外25%的链路偏差小于10%。在对设备的信令功率进行一些测量后,我们发现部分社区成员已重新调整其设备的无线电参数(如发射功率、信道和其他参数),试图获得更好的性能,从而改变了链路的特性。因此,我们可以得出结论:链路对称性这一在无线网状网络文献中常被采用的假设,在我们的场景中并不现实,服务部署算法必须明确考虑这一点。

D. 讨论

以下是我们从QMP网络的测量中得出的一些观察结果(特征):

动态拓扑 :由于多种原因,QMP网络在城市区域中具有高度动态性和多样性,例如其社区性质;去中心化的有机增长导致硬件、无线媒介、链路协议、信道、路由协议等方面的技术选择极为多样;以及网络的网状结构特性等。当前的网络部署模型基于地理奇点而非服务质量。该网络不是无尺度的。其拓扑结构是有机的,与传统的ISP网络不同。

非均匀分布资源 :网络中的资源并非均匀分布。对于服务而言,无线链路具有不对称质量(25%的链路偏差超过40%)。我们观察到流量模式高度偏斜,带宽分布也高度偏斜(图6)。

目前在QMP和Guifi.net中普遍使用的有机(随机)放置方案,不足以抓取网络的动态性,因此无法提供满意的服务质量。随机服务放置所依赖的强假设,即资源均匀分布,在此类环境中并不成立。

此外,所部署的服务具有不同的服务质量要求。对于需要密集组件间通信的服务(例如流媒体服务),如果其副本(服务组件)被部署在高容量链路上且彼此靠近,则性能更佳[3]。另一方面,带宽密集型服务(例如分布式存储、视频点播)若将其副本尽可能靠近最终用户部署,则可显著提升性能(例如,降低服务提供过程中的总体带宽消耗)[7]。

我们的目标是基于这一见解,设计一种感知网络的服务部署算法,通过优化社区网络中带宽等稀缺资源的使用,来提升服务质量和网络性能。

III. 上下文与问题

首先,我们描述了网络和服务图的模型。随后,我们在此基础上阐述服务部署问题。所使用的符号列于表I中。

A. 网络图

社区网络(CNs)中的服务部署与共享通过社区网络微云(CNMCs)实现。CNMC 的理念是将云部署在靠近社区终端用户的边缘位置,使用户能够快速、可靠地访问服务。为了充分发挥其潜力,需要谨慎部署 CNMC,以充分利用可用的带宽资源。

在社区网络微服务架构中,服务器或低功耗设备(即家庭网关)直接连接到无线基站(室外路由器)向在合理距离内或直接连接到基站的用户提供云服务。

我们将社区网络(CN)称为底层网络,以区别于由服务构建的覆盖网络。底层网络应是连通的,我们假设每个节点都知道其他节点是否可达(即已知下一跳)。我们可以将底层图建模为:G ←(N,E),其中N是连接到社区网络(CNs)中室外路由器(ORs)的节点集合,E是连接这些节点的无线链路集合。节点之间的物理链路由给定的带宽(Bi)表征。此外,每条链路具有带宽容量(Be)。网络中的每个节点都有一个可用性评分(Rn),该评分源自QMP网络中的实际测量数据。

B. 服务图

本文所针对的服务位于基础设施层(IaaS),即当前专用数据中心中的云服务。因此,这些服务直接部署在网络的核心资源上,并由客户端访问。服务可由QMP用户或管理员部署。

本文所考虑的服务是分布式服务(即微服务架构中的可独立部署的服务)。这些分布式服务可以是由较简单部分构建而成的复合服务(非单体),例如视频流(由源和对等组件构成)、Web服务(由数据库、memcached和客户端组件构成)等。在实际部署中,一个服务组件对应一个Docker容器。这些服务的组成部分形成一个覆盖网络,并相互协作以提供更复杂的服务。两个服务s1与s2之间的带宽需求由 βs1,s2给出。每个服务s最多可部署k个副本。

服务可能与网络中的特定节点相关联,也可能不相关联。每个节点可以托管一种或多种类型的服务。在本研究中,我们假设采用一种离线服务放置方法,即将单个或一组应用程序一次性部署到底层物理网络上。由于服务性能波动(例如天气条件、节点可用性、使用模式变化等),我们可能会随着时间的推移重新安排(迁移)同一服务的部署位置。我们不考虑实时服务迁移。

C. 服务放置问题

服务和网络图的概念使我们能够更精确地表述问题:给定一个服务和网络图,如何在满足每个节点( N)所需可用性水平并考虑最多k个服务副本的前提下,将服务部署到网络上以最大化用户QoS和QoE?

设Bij为从节点i到节点j的路径带宽。我们希望对网状网络中的节点集进行划分为k个簇(即服务):C ← C1, C2,C3,…,Ck。簇Ci的簇头i即为该服务部署所在节点的位置。使簇头到簇内其他节点带宽最大化的划分由以下目标函数给出:

$$
\text{argmax} C \sum {i=1}^{k} \sum_{j \in C_i} B_{ij}
$$

相对于以下约束条件:

1) 每条链路使用的总带宽不能超过链路总容量:
$$
\forall e \in E: \sum_{s1,s2 \in S} X_{s1,s2}(e) \times \beta_{s1,s2} \leq B_e
$$

2) 可用性感知:节点可用性应高于预定义阈值 λ:
$$
\forall n \in N: \sum_{n \in N} R_n \geq \lambda
$$

3) 准入控制:每个服务最多可放置k个副本:
$$
|D| = k
$$

D. 提出的算法:BASP

以穷举法求解公式1中任意数量的N和k的问题是NP难的,且计算成本非常高。朴素的穷举法可以通过计算第二类斯特林数来估算,该数表示将n个元素划分为k个非空子集的方法数,即 $ \frac{1}{k!} \sum_{j=0}^{k} (-1)^{j-k} \binom{n}{k} j^n \Rightarrow O(n^k k^n) $。因此,由于明显的组合爆炸问题,我们提出了一种低成本且快速的启发式算法,称为BASP。BASP (带宽并考虑网络带宽和节点可用性的服务部署(Availability-aware Service Placement)分配服务。

我们的BASP算法(见算法1)分三个阶段运行:

1) 阶段1:K‐均值 :首先,我们使用朴素K‐均值划分算法,根据节点的地理位置将其分组。其目的是将彼此靠近的节点划分为同一簇。K‐均值算法基于节点之间的欧几里得距离形成簇,本例中所使用的距离度量为节点的地理坐标。在传统的K‐均值算法中,首先从n个节点中随机选择k个作为簇头(质心)。其余每个节点根据欧几里得距离选择距离自身最近的簇头归属其簇。当网络中的每个节点都被分配到k个簇之一后,重新计算每个簇的质心。每个簇包含一个服务的完整副本,即此阶段的算法将网络拓扑划分为k个簇(服务副本的最大允许数量)。基于地理位置对节点进行分组符合 QMP的组织方式。QMP中的节点被组织成一个区域的树形层次结构zones。一个区域可以代表来自邻域或城市的节点。每个区域可进一步划分为覆盖更小地理区域的子区域,其中节点彼此接近。从服务视角来看,我们考虑特定区域内的部署位置。我们使用带有地理坐标的 K‐均值作为算法的初始启发式算法。作为替代方案,可以使用基于网络局部性的聚类方法。在我们的环境中可采用多种图社区检测技术。[9]

2) 第二阶段:聚合带宽最大化 :该算法的第二阶段基于寻找簇头的概念,以最大化第一阶段形成的簇Ck中簇头与其成员节点之间的带宽。两个节点之间的带宽被估计为最短路径中具有最小带宽的链路的带宽。所计算出的簇头即为服务部署的候选节点。这在图9中表示为朴素K‐均值。

3) 第三阶段:簇重新计算 :该算法的第三步也是最后一步,包括将节点重新分配给在第一阶段形成的簇中具有最大带宽的已选簇头,因为第一阶段所形成簇中节点的地理位置并不总是与其带宽相关。通过这种方式,簇的形成基于节点的带宽。这在图9中表示为BASP。

复杂度 :BASP的复杂度如下:对于BASP,如果K‐均值(即第一阶段)聚类问题中的k和d(维度)是固定的(例如,在我们的情况下n= 71,且d= 2),则该问题可以在时间O(ndk+1 logn)内精确求解,其中n是待聚类实体的数量。第二阶段计算簇头的复杂度为O(n2),第三阶段重新分配簇的复杂度为 O(n)。因此,BASP的整体复杂度为准对数级O(n2k+1 logn),远小于穷举法,因而适用于商用处理器。

IV. 评估

A. 实验设置

我们从QMP网络的71个物理节点获取了网络快照(抓取),涉及链路带宽和节点可用性。所获得的节点和带宽数据已被用于构建QMP的拓扑图。QMP拓扑图仅考虑标记为“working”状态的运行中节点,并且这些节点至少有一条链路指向其他节点。此外,我们已排除了一些孤立簇。链路包括双向和单向链路,因此我们使用有向图。该QMP由Intel Atom N2600 CPU、4GB内存和120 GB磁盘空间组成。

我们的实验包含5次运行,所呈现的结果是所有运行的平均值。每次运行包含15次重复。

B. 比较

为了强调算法1不同阶段的重要性,我们在本节中将我们的启发式算法的两个阶段与QMP中的默认放置方式即随机放置进行比较。

随机放置 :目前,QMP上的服务部署(与网络部署类似)并非集中规划,而是由CN成员各自发起。公共的、面向用户和社区的服务分别被随机放置在超级节点和用户场地上。在服务放置时,唯一考虑的参数是设备必须处于“生产”状态。网络本身完全没有被考虑在内。所有处于生产状态的节点对用户而言都是等同的。

朴素K均值放置 :这对应于算法1的第二阶段。服务被放置在通过K‐均值形成的初始簇中具有最大带宽的节点上。我们将簇头的选择限制在使用K‐均值获得的簇集合内部。

BASP放置 :它包含算法1的三个阶段。在重新计算簇后,服务被放置在具有最大带宽的节点上。

结果 图9展示了使用随机、朴素K-均值和BASP算法获得的到簇头的平均带宽。该图显示,对于任意数量的服务k,BASP均优于朴素K-均值和随机放置。当k= 2时,到簇头的平均带宽从18.3 兆比特每秒(朴素K-均值)提升至 27.7 兆比特每秒(BASP),提升了50%。当k= 7时,最大提升达到67%。当网络中最多有7个服务时,BASP相比 朴素K-均值的平均增益为45%。根据图9的观察结果,随着k的增加,两种算法之间的差距也随之增大。我们观察到,随着网络规模扩大,k将增加。因此,BASP在更大规模的网络中预计会比其他策略取得更好的效果。

关于BASP与Random放置的比较,我们发现Random放置会导致网络资源的低效使用,从而造成性能次优。如图9所示,BASP相较于简单的随机放置的平均增益为211%。

与最优解的比较。请注意,我们的启发式算法能够选择出比任何其他随机或朴素方法提供更高带宽的簇头。但是,如果我们试图在簇内寻找最优带宽(即簇的最优平均带宽),则该问题将是NP难的。原因在于,找到最优解需要我们在一个大小为n的集合中对所有大小为k的组合运行我们的算法。这是一个组合问题,即使对于较小的规模也会变得难以处理

大小为k 或n(例如,k= 5,n= 71)。例如,如果我们想要找到大小为k= 3的集群的最优带宽,则该算法需要对从71个元素中选取大小为3的所有可能(非重复)组合进行运算,即 choose(71,3) =57K 种组合。我们成功完成了这一计算,并发现最优平均值为62.7 兆比特每秒。对于k= 2,最优值为49.1 兆比特每秒。对于k= 1,该值为16.9 兆比特每秒。

缺点是,在普通机器上计算最优解需要非常长的时间。具体而言,当k== 3时耗时5小时,当k== 2时耗时30分钟。相比之下,BASP在k== 3时仅耗时23秒,在k== 2时仅耗时15秒。表二展示了BASP相对于随机和朴素K‐均值的提升。综上所述,BASP能够在极低的计算复杂度下实现良好的带宽性能。

与中心性指标的相关性。表二展示了每个簇头的一些中心性度量和获得的图属性。此外,图10显示了QMP网络的邻域连通性图。节点v的邻域连通性定义为v所有邻居节点的平均连通性。在图中,邻域连通性值较低的节点用亮色表示,值较高的节点用暗色表示。值得注意的是,一些具有最高邻域连通性的节点正是BASP选择作为簇头的节点。

微服务架构的实用服务放置方法

V. 实验评估

A. CLOUDY:面向微云的服务枢纽

为了促进社区微云环境的采用和过渡,我们提供了一款社区云发行版,代号为CLOUDY。该发行版包含社区云系统的平台和应用服务。CLOUDY是我们的微云核心软件,因为它将云系统的各种工具和服务集成到一个基于 Debian的Linux发行版中。CLOUDY是开源的,可以从公共仓库下载。

Cloudy的主要组件可被视为一个分层架构,其中服务既存在于内核内部,也存在于用户层。图11展示了在 Docker容器上运行的一些可用服务。Cloudy包含一个基于Serf的工具,供用户在微云中发布和发现服务,Serf是一种用于集群成员管理和编排的去中心化解决方案。在网络协调层,BASP在充分了解底层网络拓扑的基础上,决定服务的放置,然后通过Serf进行公告,如图11所示。因此,其他用户可以发现该服务。

B. 评估在真实生产社区网络

为了了解我们的网络感知服务放置算法在真实生产型社区网络中的收益,我们将该算法部署在连接到位于巴塞罗那市的QMP网络节点的真实硬件上。我们重点对两种最受欢迎的网络密集型应用程序进行基准测试:实时视频流服务和由最流行网站提供的Web 2.0服务。

1) 实时视频流服务:

PeerStreamer,一个开源的实时P2P视频流服务,已在CLOUDY中被范式化地确立为实时流媒体服务。该服务基于块扩散,其中对等节点向其邻域中的某些对等节点提供其所拥有的数据块选择。一个数据块包含待流式传输视频的一部分(默认情况下为视频的一帧)。PeerStreamer区分源节点和对等节点。源节点负责将视频流转换为数据块,并发送给网络中的对等节点。在我们的场景中,源节点和对等节点均运行在QMP节点之上的Docker容器中。

实验设置 :我们使用20个真实节点,这些节点连接到QMP的无线节点。这些节点位于用户家中(作为家庭网关、机顶盒等)或分布在巴塞罗那市的其他基础设施中。它们运行 Cloudy操作系统。作为控制器节点,我们利用 Community‐Lab的实验基础设施。Community‐Lab提供一个中央协调实体,能够实时掌握网络拓扑结构信息。允许研究人员在生产型社区网络中部署实验性服务并进行实验。运行实时视频流服务的QMP节点属于 Community‐Lab。在我们的实验中,我们将一个实时流媒体摄像头(最大比特率为512 kbps,30帧每秒)连接到本地的PeerStreamer实例,该实例充当源节点。

因此,源在这样一个动态网络中的位置至关重要。将源放置在连接性较弱的QMP节点上会负面影响观看者的服务质量和服务体验。为了确定BASP在选择合适QMP节点以托管源时的准确性,我们测量对等端的平均块丢失百分比,该指标定义为丢失且未及时到达的数据块所占的百分比。这一简单指标将帮助我们理解网络在社区网络上实时视频流可靠运行中的作用。

我们的实验由20次运行组成,每次运行包含10次重复。结果取所有成功运行的平均值。其中90%的运行为成功运行。在10%的失败运行中,源无法从摄像头抓取图像进行流媒体传输,因此对等节点未接收到数据。该实验持续运行了2周,总共约100小时的实时视频数据和数兆字节的日志内容。所展示的结果来自PeerStreamer源一小时的连续实时流媒体。

结果 :图12展示了随着源数量增加的平均块丢失情况k。数据表明,对于任意数量的源节点k,BASP在QMP网络中的表现均优于当前采用的随机放置。当k= 1时,BASP将平均块丢失从12%降低至10%。该情况对应于单一源节点向QMP网络中的20个对等节点进行流媒体传输的场景。根据图12的观察结果,随着k的增加,两种算法之间的差距逐渐扩大。例如,当k= 3时,块丢失方面获得了3个百分点的提升,且丢包率显著降低了37%。

2) Web 2.0服务:

我们实验的第二种服务是Web 2.0服务。Web 2.0网站的工作负载与上一代网站的工作负载不同。上一代网站通常提供静态内容,而Web 2.0网站则提供动态内容。这些内容由其他用户的行为以及来自外部源(例如其他网站的新闻提要)动态生成。我们正在试验一种社交网络服务,它是微服务架构的一个示例,因为它由一组可独立部署的服务组件(即Web服务器、数据库服务器、memcached服务器和客户端)构成。在这种类型的服务中,Web服务器(连同数据库服务器)的放置对用户QoS起着决定性作用。

实验设置 :在评估中,我们使用了CloudSuite Web服务基准的容器化版本[10]。Cloudsuite基准包含四个层级:Web服务器、数据库服务器、memcached服务器和客户端。每个层级都有其独立的Docker镜像。Web服务器运行Elgg,并连接到memcached服务器和数据库服务器。Elgg社交网络引擎是一个用PHP开发的Web2.0应用程序,功能类似于Facebook。客户端(使用Faban工作负载生成器实现)向社交网络发送登录请求并执行不同的操作。我们总共使用10个可用的QMP节点,其中3个作为客户端。其余7个节点可作为部署Web服务器的候选节点。Web服务器、数据库服务器和memcached服务器始终共置于同一主机上。在客户端侧,我们测量执行某些操作(如登录、动态更新、消息发送等)时的响应时间。在Cloudsuite中,每种操作都分配有独立的QoS延迟限制。如果少于95%的操作满足QoS延迟限制,则认为该基准测试失败(在表三中标记为F)。Web服务器的位置,

结果 :图13和图14分别描述了在使用随机和BASP方法放置Web服务器时,三个客户端在执行更新实时动态操作中观察到的响应时间。使用随机方法放置Web服务器时,图13显示,随着每个客户端增加线程数(即并发操作),三个客户端的响应时间急剧上升。当每个客户端的操作数达到120次(即20个线程)时,所有客户端感知到的响应时间相似(300‐350毫秒)。当执行160次操作(即80个线程)时,客户端2和客户端3的响应时间增加超过一个数量级,而客户端1的响应时间增加了一个数量级。

图14显示,与图13中所示的随机方法相比,在使用更高工作负载时,采用我们的BASP启发式算法,客户端响应时间降低了数量级。对于每个客户端最多120个操作的情况,三个客户端感知到的响应时间略优(200‐280毫秒),优于Web服务器采用随机方法部署时的响应时间。此外,表三展示了Cloudsuite基准中更新和登录操作的成功测试与失败测试情况。该表表明,使用BASP启发式算法时,满足QoS延迟限制的成功测试次数高于采用随机方法时的成功测试次数。同时,它还显示了采用BASP启发式算法相较于随机方法在标准偏差值和平均客户端响应时间方面的提升。我们可以注意到,随着工作负载强度的增加,BASP启发式算法带来的增益更为显著。

操作 线程 10 20 40 80 10 20 40 80
QMP‐随机 QMP‐BASP
更新实时动态 T F F F T T T F
执行登录 T T F F T T T F
Stdev 0.02s 0.03s 0.01 0.01 0.02 0.02 0.01s
提升 0.1s 0.2s 1.8s 6.7s 0.1s 0.1s 1.2s

VI. 相关工作

服务部署是云管理系统的一项关键功能。通常,通过监控系统中的所有物理和虚拟资源,服务部署旨在通过任务的分配、迁移和复制来实现负载均衡。

数据中心 :Choreo[11]是一种基于测量的方法,用于在云基础设施中部署应用程序,以最小化目标函数(如应用完成时间)。Choreo使用数据包序列及其他方法对云网络进行快速测量,利用机器学习算法分析应用程序的网络需求,并采用贪婪启发式方法进行服务部署。Volley[12]是一个在微软地理分布的数据中心之间执行自动数据放置的系统。Volley基于数据访问模式和客户端位置,使用迭代优化算法分析请求日志,并向云服务返回迁移建议。大量关于数据中心内服务部署的研究工作致力于寻找启发式解决方案[13]。

数据中心环境中的大多数研究工作不适用于我们的情况,因为我们的节点和链路具有有限容量,且无线链路存在不对称质量,导致系统具有很强的异构性。网络中链路容量的差异/不对称性使得服务部署问题与在高度同质化的云数据中心中的情况大为不同。我们的测量结果表明,25%的链路对称性偏差超过40%。

分布式云 :当服务部署算法决定计算实体之间的通信在底层网络中的路由方式时,我们称之为网络感知的服务部署,即与虚拟网络嵌入(VNE)密切相关。文献[14]提出了在分布式云环境中高效部署服务的算法。这些算法需要输入网络状态、计算资源和数据资源的信息,并将其与应用需求相匹配。文献[15]的作者提出了一种选择算法,用于为面向服务的应用程序分配资源,而文献[16]则专注于在分布式的小型数据中心中的资源分配。另一个网络感知方法的例子是Moens在文献[17]中的工作,该工作采用面向服务的架构(SOA),其中应用程序被构造成一组服务。他们的方法同时执行节点与链路映射。文献[18]将 Moens的工作扩展到无线场景中,并考虑了物联网(IoT)。Mycocloud[19]是另一项工作,它通过在去中心化云中实现自组织服务放置来提供弹性。Elmroth在文献[20]中的工作在移动云网络(MCN)中部署应用程序时考虑了快速用户移动性和资源成本。Tantawi在文献[21]中的最新工作使用有偏统计抽样方法进行云工作负载放置。

关于通过迁移实现服务部署,文献[22]和[23]的研究探讨了在网络边缘托管基于云服务的移动边缘云中的动态服务迁移问题。他们利用马尔可夫决策过程(MDP)框架将服务迁移建模为一个序贯决策问题,并通过使用旧金山出租车的真实世界移动轨迹进行仿真,验证了其方法的有效性。

在分布式云中的大多数工作考虑的是微数据中心,而在我们的情况下,CN微型云由受限/低功耗设备(如家庭网关)组成。此外,在我们的情况下,关于计算设备的信息是部分的,因此它们的方法并不完全适用于我们的环境。

无线环境 :在[24]中,作者提出了一种针对环境智能环境的最优分配方案,通过任务复制来避免网络性能下降。在无线场景下开展的其他一些研究包括Davide[25]的工作以及我们最近的研究[7],后者提出了多种部署算法,旨在最小化协调和覆盖成本沿社区网络的开销。本文工作的重点是为CN微型云设计一种低复杂度服务放置启发式方法,以最大化带宽并改善用户QoS和QoE。

VII. 结论

本文中,我们阐述了在社区网络微云基础设施中进行基于带宽和可用性感知的服务部署的必要性。社区网络为以贡献方式部署和使用社区服务提供了理想的场景。以往在社区网络中的研究主要集中在设计更优的网络结构以避免热点和瓶颈,但并未涉及服务实例的基于网络感知的部署方案。

然而,随着服务变得越来越网络密集型,即使在资源充足的云环境中,它们也可能受到网络的瓶颈限制。对于 CN微型云而言,由于节点和链路的有限容量以及网络性能的不可预测性,网络感知显得更加关键。如果没有支持网络感知的服务部署系统,可能会选择网络路径较差的位置,而忽略更快、更可靠的路径,最终导致用户体验不佳。

我们提出了一种称为BASP的低复杂度服务放置启发式方法,以在部署CN微型云时最大化带宽分配。我们给出了该算法的算法细节,分析了其复杂度,并在真实场景下对其性能进行了仔细评估。实验结果表明,与 Guifi.net当前采用的随机放置相比,BASP的性能始终高出211%。此外,随着服务数量的增加,性能增益也相应提高。进一步地,我们将该服务部署算法部署在QMP网络的一个真实网络段上,该网络为生产型社区网络,并量化了算法的性能及其影响。我们的研究基于通过Cloudy发行版集成的实时视频流服务和Web 2.0服务案例。真实实验结果表明,在使用BASP算法时,对等端的视频块丢失减少了最多3个百分点,即丢包率降低了37%。在Web 2.0 服务中使用BASP时,客户端响应时间最多减少了一个数量级,实现了显著的提升。

作为未来的工作,我们计划研究服务迁移,即在存在用户移动性和网络中其他动态变化的情况下,控制器需要决定哪个微云应为特定用户执行计算。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值