前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >DoorDash 利用蜂窝架构实现区域感知路由,大幅降低数据传输成本

DoorDash 利用蜂窝架构实现区域感知路由,大幅降低数据传输成本

作者头像
深度学习与Python
发布2024-02-17 15:06:16
840
发布2024-02-17 15:06:16
举报
作者 | Eran Stiller

译者 | 明知山

策划 | 丁晓昀

最近,DoorDash 大幅优化了其云基础设施成本。DoorDash 在转向微服务架构时面临跨可用区数据传输成本增加的问题。为了大幅降低这一成本,DoorDash 充分利用了蜂窝架构,在其基于 Envoy 的服务网格中实现了区域感知路由。

DoorDash 在其基于 Envoy 的服务网格中实现的 区域感知路由 对于降低云基础设施成本来说至关重要。这一实现使得 DoorDash 能够高效地在同一 可用区(AZ)内定向流量,最大限度地减少更昂贵的跨 AZ 数据传输。

借由 Envoy 的区域感知路由功能,调用者服务倾向于将流量定向到同一可用区内的被调用服务,从而降低跨可用区数据传输成本。下面的“Before”一图显示了 Pod 如何使用简单的轮询负载均衡器跨可用区进行通信,从而产生额外的费用。相反,“After”一图显示了区域感知路由如何优先在同一区域内选择服务。

Pod 之间的轮询负载均衡 (Source)

Pod 之间的区域感知路由 (Source)

为了启用区域感知路由,DoorDash 修改了其内部自定义的服务网格控制平面,为 Envoy 提供每个节点的 AZ 信息,如下例所示。

代码语言:javascript
复制
resources:
 - "@type": type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment
   cluster_name: payment-service.service.prod.ddsd
   endpoints:
     - locality:
         zone: us-west-2a
       lb_endpoints:
         - endpoint:
             address:
               socket_address:
                 address: 1.1.1.1
                 port_value: 80
     - locality:
         zone: us-west-2b
       lb_endpoints:
         - endpoint:
             address:
               socket_address:
                 address: 2.2.2.2
                 port_value: 80
     - locality:
         zone: us-west-2c
       lb_endpoints:
         - endpoint:
             address:
               socket_address:
                 address: 3.3.3.3
                 port_value: 80

端点发现响应示例——请注意添加的地域信息 (Source)

DoorDash 的蜂窝架构对这一举措的成功做出了重要贡献。蜂窝架构 “概念源自船舶中的 防水隔板,垂直隔板将船舶内部分割成独立的水密隔间。”软件架构师在复杂的系统中复制这种模式,以实现故障隔离。故障隔离边界将工作负载的故障影响限制在有限数量的组件上,使边界之外的组件不受故障影响。

Slack 最近也分享了他们 如何使用蜂窝架构来缓解灰色故障。

在 DoorDash 的蜂窝架构中,每个单元由多个 Kubernetes 集群组成,每个微服务被专门部署到给定单元内的一个集群。DoorDash 的工程师跨多个可用区部署每一个 Kubernetes 集群,以增强可用性和容错性。

基于单元的多集群部署 (Source)

通过在这些单元内启用区域感知路由,DoorDash 有效地将流量本地化,进一步减少跨可用区数据传输。这种方法不仅优化了网络效率,还增强了系统的整体弹性,因为它最大限度地减少了单个单元内的故障影响,提升了 DoorDash 微服务生态系统的健壮性。

作者 Hochuen Wong 和 Levon Stepanian 并未透露节省的百分比,但他们表示“这些措施极大地降低了 DoorDash 的数据传输成本,以至于我们的云服务供应商主动联系我们,询问我们是否遇到了与生产相关的问题。”他们总结道:

云服务供应商的数据传输定价比最初看起来更加复杂。为了构建正确的效率解决方案,花时间了解定价模型是值得的。

要全面了解所有跨可用区流量是具有挑战性的。尽管如此,将不同来源的网络字节度量结合起来就足以确定热点,一旦解决这些热点,就可以显着降低使用量和成本。

随着微服务调用图中跃点数量的增加,数据跨可用区传输的可能性也会增加,从而增加了确保所有跃点支持区域感知路由的复杂性。

作者建议微服务系统所有者重新审视其数据传输成本,对于服务网格,不仅要考虑其流量管理功能,还要考虑其提供更高效率的潜力。

查看英文原文

https://www.infoq.com/news/2024/01/doordash-service-mesh/

声明:本文由 InfoQ 翻译,未经许可禁止转载。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-02-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 InfoQ 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
服务网格
服务网格(Tencent Cloud Mesh, TCM),一致、可靠、透明的云原生应用通信网络管控基础平台。全面兼容 Istio,集成腾讯云基础设施,提供全托管服务化的支撑能力保障网格生命周期管理。IaaS 组网与监控组件开箱即用,跨集群、异构应用一致发现管理加速云原生迁移。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档