如何在共享集群中为客户提供单租户模式体验
问题来了
域名系统(DNS)是互联网上的地址簿,帮助网络浏览器找到网站,通过解析域名到IP地址。对于企业而言,DNS是一个至关重要的组成部分,任何DNS问题都可能导致业务看起来像是离线了。如果网络浏览器无法正确解析域名到其IP地址,用户将无法访问该网站。
对于任何DNS提供商,如Amazon Route 53而言,最大的挑战是在不影响业务的情况下处理分布式拒绝服务(DDoS)攻击。一次大规模的DDoS攻击可能会使服务无法承受,以至于无法正常服务客户。
其他解决方法一种简单的缓解DDoS攻击的影响的方法是增加服务器容量来抵御攻击。然而,这种方法不可扩展,并且,对于提供DNS服务的提供商来说可能会很昂贵。
另一种解决办法是使用专门的网络硬件来过滤DDoS攻击产生的流量。然而,为了覆盖DNS提供商托管的所有域名,可能需要大量这样的硬件设备,从而使这种解决方案变得非常昂贵。
让我们先来聊聊分片吧!在没有使用分片的情况下,分布式系统中的多个服务器处理请求时,每个请求都可以落在任何一台服务器上。这意味着,如果一个DNS提供商不使用分片,某个客户的系统遭到 DDoS 攻击,所有服务器,或者至少一部分服务器,可能会受到影响,因为每个客户的请求可以落到任何服务器上,这不仅会影响该客户,还会影响到其他客户。
图所示。所有服务器都受到了影响,因为来自单个客户的所有请求都会被分发到各个服务器上。
假设服务器被分成了多个分片,每个分片处理一部分客户请求,那么DDoS攻击的影响就可以限制在特定服务于受害客户的分片上。这样一来,只有受影响分片的客户会受到影响,从而限制了整体影响。简而言之,采用普通分片技术,DDoS攻击的总体影响仅限于部分客户。
如图所示,即使对一个客户的DDoS攻击导致整个分片不可用,分片#1所处理的所有客户都将受到影响。
如果你喜欢这些内容,可以免费订阅我的每周通讯。点击这里订阅我的每周通讯,这样你就可以直接在邮箱中收到下一篇文章了。我用非常简单的语言解释软件工程概念,就像你在五岁时一样,直接将下一篇文章发送到你的邮箱。
!点击图片可访问链接
普通分片的问题是,同一组服务器会处理来自多个客户的所有请求。如果有某个客户遭遇流量激增,那么这组服务器及其所有客户都会受到影响。
Shuffle 分片 通过将一个客户的请求分配给多个分片来解决此问题,从而减少了不同客户之间的资源重叠。这样即使其中一个处理该客户流量的分片不可用,客户仍可以继续提供服务。
图:随机分片法
在例如所示的情境中,有八个分片,标记为 M1 到 M8,每个客户从 A 到 H 分别被分配到两个不同的分片。例如,客户 A 被分配到分片 M1 和 M4,而客户 D 被分配到 M2 和 M3。如果客户 A 遭受 DDoS 攻击,分片 M1 和 M4 将受到影响。由于客户 B 和 F 也与 M1 和 M4 相关联,他们的请求也会受到影响。
然而,客户B和F可以通过未受DDoS攻击影响的健康分片M6和M8进行重定向。因此,所有来自客户B和F的请求都可以被重新导向到M6和M8。在这种情况下,动态分片有效地限制了DDoS攻击对客户A的影响,保证其他客户不受影响。
类似于普通的分片,在这种情况下,两个服务器无法使用,但整体影响要小很多。比如,在有足够的服务器的情况下,Shuffle 分片 可以保证分片数量超过客户数量,从而使每个客户都能享受到单租户的服务。
最后:让我们来看看最后的部分。
本文讨论了Shuffle Sharding 在亚马逊 Route 53 中的应用,以及它如何处理 DDos。然而,这种技术在 DNS 之外的场景中也很有用,例如后端资源是队列或数据库。Shuffle Sharding 可以减轻无效请求或[Thundering Herd Problem] 的影响。
参考- 使用洗牌分片技术实现工作负载隔离。 (未注明日期). Amazon Web Services, Inc. https://aws.amazon.com/builders-library/workload-isolation-using-shuffle-sharding
- 洗牌分片技术。 (未注明日期). Cortex. https://cortexmetrics.io/docs/guides/shuffle-sharding/
- 洗牌分片技术 | Grafana Loki 的文档。 (未注明日期). Grafana Labs. https://grafana.com/docs/loki/latest/operations/shuffle-sharding/
如果你喜欢这篇文章,请免费订阅我的周报Newsletter单击这里,就可以在你的邮箱里收到下一篇了。我用非常简单的语言解释软件工程概念,就像你在五岁一样!**