「网商双十一」基于 ServiceMesh 技术的业务链路隔离技术及实践

本文介绍了一种在微服务架构中通过业务单元隔离来解决流量相互影响问题的创新方案。作者详细阐述了业务单元的概念、运维模型,以及如何利用AIG、RPC流量隔离、调度流量隔离和异步补账链路隔离等技术实现隔离。该方案在网商银行的实际应用中经受住了双十一大考,提供了轻量、灵活的替代传统应用创建的解决方案。

b0f64d7e4d1a775b7aa2097b2d59abb5.gif

dbd165d54aeadbbf2966822418001b27.gif

文|张化仁(花名:花伦 )

网商银行基础技术架构部架构师

校对|阚广稳(花名:空门)

本文 4832 字 阅读 10 分钟

|引言|

微服务架构下,服务之间的调用错综复杂,一个应用可能会承载着多种不同的业务流量。由于运行在同一个应用进程内,多种业务流量之间势必会存在相互影响的情况。

如果某种业务流量陡增,导致应用进程负载激增,进而请求排队,其它业务流量也势必会受影响。多数时候这种相互影响的情况都是在容忍范围以内或者可以规避的,特定场景下我们可能就需要考虑通过隔离某些业务流量的方式,来消除业务之间相互影响的风险:

- 例如,当后台调度型的流量影响了在线用户请求;

- 再如,当低敏的甚至可失败的业务影响了高敏的需要重保的业务。

业务链路隔离的诉求是业内普遍存在的。通常的方案是新创建一个应用,然后将需要隔离的业务迁移到这个新应用上。

新建应用的方式,研发运维等都需要付出成倍的成本,相关应用还需要配合改造和迁移。对于只有单个应用需要创建的情况或许还能勉强接受,网商银行部分应用例如高保极简网关、高保客户视图等当前就是采用的这种方案。这种方式是非常笨重的,而且当我们期望特定业务关联的整条链路上的多个应用都进行业务隔离的话,这种方案的成本将非线性上升进而变得难以接受。

云原生架构下,对容器和流量可以进行更精细化的管控,对于上述业务流量隔离的场景,我们有了更简洁、更灵活、更通用的替代方案--我们称之为「业务单元隔离」,可以在不创建新应用的情况下实现上述诉求。此方案当前已在包括核心链路在内的网商多个业务场景得到应用,也顺利通过了今年双十一大促的考验。

那么「业务单元隔离」具体是什么?我们是如何借助「业务单元隔离」实现业务链路的隔离呢?本文将和大家细述。

PART. 1

概念及基本原理

 概念及运维模型 

「业务单元隔离」是一套流量染色和资源隔离的方案,可以帮助业务相对简单地实现业务链路隔离。在调研和验证的过程我们也提出了优化改进方案并推进落地,最终进一步减轻了业务接入的成本。

「业务单元隔离」需要结合两个新的概念来阐述:「AIG」「业务单元」

AIG 是某个应用为了支撑某些业务而隔离出来的一组资源。由一个或多个应用的 AIG 组成的、服务与某个或某类特定业务的业务链路我们称为一个业务单元。保证有且只有符合特征的流量引流到某个业务单元,我们称之为「业务单元的隔离部署」

44f20f148aca41144d16921535bb476f.png

AIG 运维模型简单示意

 主要任务及配套设施 

从「业务单元隔离」的概念中我们不难看出:要实现某个业务链路的流量隔离,至少需要做有以下几件事情:

1.业务单元构建:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值