华为云王楠楠:分布式云原生全域调度的技术和实践

2022年6月21日,在CSDN云原生系列在线峰会第10期“华为云HCDE专场暨分布式技术峰会”上,华为云分布式云架构师王楠楠分享了分布式云原生全域调度的技术和实践。

华为分布式原生技术整体介绍

如何理解云?

计算能力作为一种商品,可以在互联网上流通,就像水、电、煤气一样,可以方便地取用。使用者无需关注实现细节,就像是用水没有人关心水源、水厂、管道,用电没有人关心发电厂、变电站、地下电缆。

割裂基础设施到华为分布式云原生。

现阶段,云原生平台存在以下问题:

    体验:分布式系统被设施割裂,分层管理,手动分发,缺乏全局管理视图

    算力:各基础设施算力独立供给,难以协同

    流量:与业务分离管理,难以与业务分布协同,难以按业务需求分配流量

    数据:应用与数据割裂,分层管理,阻碍应用的弹性伸缩、迁移等

分布式云原生(UCS服务)通过以应用为中心的业务模型,通过如下方案解决上述问题:

    新体验:全局统一,无处不在,随时可用

    应用+算力:随时、随地提供应用所需算力资源

    应用+流量:实时、跨域、按需调配应用访问流量

    应用+数据:全业务一体化迁移、容灾、弹性

如下图所示,

华为云原生通过1个中心,3个核心能力,4类区域覆盖为应用从核心区到业务现场形成广泛覆盖。

下图概述了华为云原生的构建应用全域分发、全域调度、智能安全、统一编排等多项核心技术。本文将主要介绍全域调度技术。

全域调度架构与技术

当前,公有云的调度仍然是按照region—区域—规格人工选择,与用户的实际资源使用之间存在差异。

用户需要根据自己的需求申请一台虚拟机,需要经过选择地域、AZ可用区和服务器资源类型,但这些选择对于客户来讲是很困难的。对于客户来说,需要的是适合的资源,基于此,全域调度应运而生。

全域调度即云边全局资源整合,面向垂直场景以满足用户业务需求为目标。

全域调度愿景(Nanto)为:

    供给侧改革:将云边端各种资源,整合为全局统一视图,按照租户要求,协同全局资源完成供给

    需求侧升级:面向各种垂直场景,抽象业务调度目标,以满足业务需求为最终调度目标

全域调度的供给侧的全域视图模型归一,全局可见,包含三部分:

地域:全域站点覆盖

中心:中心region/AZ、HCS

边缘:边缘云IEC、边缘节点IEF、其他边缘如CDN

资源池:全域资源池

VM:ECS VM资源池

容器:CCI容器资源池、CCE资源池

Serverless资源池

计算:包周期、按需、Spot动态水位线

存储:EVS卷

网络:EIP、BGP、三线、单线网络模型抽象

全域调度需求侧的全域调度多维抽象,协同调度。用户可能存在多种需求,比如:

    资源供给型:我做大数据任务,想要一共10W核资源,全国资源都行, C6/C3无所谓,哪里有?

    个性化调度型:不好啦,我有突发事件,需要3000台C6,但我希望在上海地区附近10ms时延圈,咋办?

全域调度需求侧的全域调度解决方案从三个维度考虑。

第一,多资源池组合调度:

多地域供应:多region、多AZ、多地域联合供应

多资源组合:多种flavor组合提供

多销售类型:按需、Spot组合

第二,计算、存储、网络多维度:

计算:资源容量是否能满足需求

存储:卷类型、卷容量是否能匹配

网络:EIP够不够,单线还是多线,出口带宽多少

第三,协同调度:

计算分布决策了,流量怎么办?如何接入,如何回源

计算如何跟随数据,数据如何跟着计算重分布

技术难题:多个租户资源如何合理分配,先给谁,不给谁,给多少?

华为运筹优化首席科学家张广铭提出,可以用物流领域的多商品流模型,并且多商品模型属于线性规划,求得最优解。

Multi-commodity Flow Problem:是多种物品(或货物)在网络中从不同的源点流向不同的汇点的网络流问题。

多商品流模型具有以下特点:

    容量限制(link capacity constraint):对于单条边: 所有物品沿此边的流量之和要

    流守恒(flow conservation on transit nodes):对于中间运输节点: 流入的物品总量 = 流出的物品总量

    需求满足(flow conservation at the source/destination node):所有物品必须有di(需求量)的流量流出源点,并且流进终点

    最小化成本(minimum cost multi-commodity flow problem):所有物品的在所有边的运输成本之和最小

从多商品流模型衍生出两个问题。

第一,如何体现不满足量?

在整个供应都分配完之后,还会出现客户不满足的情况,这时通过增加采购机器、增加到虚拟节点的方式进行扩容来解决问题。

第二,如何呈现不同租户的偏好?

每个租户用一个独立子网表示 :

    子网的每条Arc都拥有Cost来显示当前客户对区域、flavor的选择优先值,用于表示偏好

    每个租户存在多个路径

    多客户均衡获得总体最优解

客户需求满足度评估:分析弹性资源使用及风险,调整供应与预留策略。

如下图所示,全域调度通过对风险的把控和策略的制定,保证了客户的需求。

    风险:资源的满足率在60%左右

    策略:可以用region(A+B+C)+flavor(C6+C3) 组合供应,同时需要最少预留100台,可以完成100%保障

综上所述,华为云原生的分布式云原生全域调度,统一服务规范标准,支持一次上架、全域下发,对于客户来说,统一了多云服务管理标准,沉淀了组织内部云原生服务生态,规范了服务的发放和使用。