BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース DoorDash社、サービスメッシュとセルベースのアーキテクチャによりデータ転送コストを大幅に削減

DoorDash社、サービスメッシュとセルベースのアーキテクチャによりデータ転送コストを大幅に削減

原文リンク(2024-01-23)

最近の動きとして、DoorDash社はクラウドインフラのコストを大幅に最適化した。同社は、マイクロサービス・アーキテクチャに移行する際、AZをまたぐデータ転送コストの増加に直面した。このコストを大幅に削減するため、DoorDash社はEnvoyベースのサービスメッシュに、セルベースアーキテクチャの利点を生かしたゾーン・アウェア・ルーティングを導入した。

DoorDash社がEnvoyベースのサービスメッシュにゾーン認識ルーティングを導入したことは、クラウド・インフラのコスト削減に不可欠だった。この実装により、DoorDash社は同じアベイラビリティゾーン(AZ)内のトラフィックを効率的に誘導し、コストのかかるAZをまたぐデータ転送を最小限に抑えられた。

Envoyのゾーン認識ルーティング機能により、発信側サービスは同じAZ内の着信側サービスにトラフィックを誘導することを好むため、AZをまたぐデータ転送コストを削減できる。下図の 「Before」は、単純なラウンドロビン・ロードバランサーを使ってAZをまたいでポッド同士が通信している様子を示しており、追加料金が発生している。一方、「After」の図は、ゾーンを意識したルーティングによって、同じゾーン内のサービスを優先する方法を示している。

ポッド間のシンプルなラウンドロビン負荷分散*(*ソース)

ポッド間のゾーン認識ルーティング**(ソース)

ゾーン認識ルーティングを可能にするために、DoorDash社は自社でカスタムしたサービス・メッシュ・コントロール・プレーンを変更し、Envoyに各ノードのAZ情報を提供するようにした。

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

エンドポイント・ディスカバリー・レスポンスの例 - 追加されたローカリティ情報には注意が必要(出典

DoorDash社のセルベースアーキテクチャは、この移動の成功に大きく貢献した。セルベースアーキテクチャーとは「船の隔壁の概念に由来し、垂直の仕切り壁が船内を自己完結型の水密区画に細分化している。ソフトウェアアーキテクトは、複雑なシステムにおいてこのパターンを再現し、故障の隔離を可能にしている。障害隔離された境界は、ワークロード内の障害の影響を限られた数のコンポーネントに限定し、境界外のコンポーネントは障害の影響を受けないようにする。

Slackは最近、グレー障害を軽減するためにセルベースアーキテクチャを使用していることを紹介した。

DoorDash社のセルベースアーキテクチャでは、各セルは複数のKubernetesクラスタで構成され、各マイクロサービスは指定されたセル内の1つのクラスタのみに展開される。DoorDash社のエンジニアは、可用性とフォールトトレランスを強化するために、各Kubernetesクラスタを複数のAZに展開した。

セルベースのマルチクラスターデプロイメント*(*出典)

これらのセル内でゾーン・アウェア・ルーティングを有効にすることで、DoorDash社はトラフィックを効果的に局所化し、可用性ゾーンをまたぐデータ転送をさらに削減した。このアプローチは、ネットワーク効率を最適化するだけでなく、システム全体の耐障害性を向上させ、単一セル内の障害の影響を最小限に抑え、DoorDash社のマイクロサービス・エコシステムの堅牢性に貢献した。

著者のHochuen Wong 氏とLevon Stepanian氏は、節約率そのものは公表していない。しかし、同氏らは、「これらのアクションは、DoorDash社のデータ転送コストを大幅に削減した。同氏らは次のように結論付けている。

クラウド・サービス・プロバイダーのデータ転送価格は、当初考えられていたよりも複雑である。正しい効率化ソリューションを構築するためには、時間をかけて価格モデルを理解して検討する必要がある。

AZをまたぐすべてのトラフィックを包括的に理解・把握することは困難である。しかし、さまざまなソースからのネットワーク・バイトのメトリクスを組み合わせることで、ホットスポットを特定できる。

マイクロサービスのコールグラフでホップ数が増えるにつれて、AZをまたいでデータが転送される可能性が高くなり、すべてのホップがゾーンを考慮したルーティングをサポートすることを保証する複雑さが増す。

著者らは、マイクロサービスベースのシステムの所有者が、データ転送コストに注目し、トラフィック管理機能だけでなく、効率化の可能性からもサービスメッシュを検討することを推奨している。

作者について

この記事に星をつける

おすすめ度
スタイル

BT