BT

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

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース DoorDash、CockroachDBを使用してマイクロサービス用の構成管理プラットフォームを構築

DoorDash、CockroachDBを使用してマイクロサービス用の構成管理プラットフォームを構築

原文リンク(2024-02-14)

DoorDash社は、物流チームが増え続けるビジネス・プリファレンスと設定値を管理するために、構成管理プラットフォームを構築した。同社は、永続化にCockroachDBを使用し、以前のソリューションと比較してアーキテクチャを簡素化した。新しいプラットフォームは、実験を可能にし、設定値のライフサイクルを改善し、柔軟性と拡張性を提供する。

DoorDashのロジスティクスチームは、幅広い機能領域を担当し、さまざまな業種や小売店舗にまたがるプラットフォームのさまざまなビジネス面をチューニングするために、多くの設定値を管理している。従来、設定値を更新するには、ソースコードリポジトリに変更をコミットする必要があり、DoorDashの広大なマイクロサービスプラットフォーム内の多くのサービスに変更を伝播するための複雑なアーキテクチャに依存していた。

構成管理ソリューションの以前のアーキテクチャ(出典:DoorDash Engineering Blog)

既存のソリューションには、多くの課題と制限があった。その主な原因は、巨大なファイルを更新する必要性であり、多くの場合、1行の変更であった。このため、意図しない更新が頻繁に発生し、監査やバージョン管理が困難で、新しい環境設定を追加するプロセスに時間がかかっていた。さらに、設定値を伝達するフローが複雑なため、チームは、割り当てプロセス中に設定変更の時間と発生元を明確に主張するのに苦労した。

DoorDash社のソフトウェアエンジニアであるSaurabh Gupta氏とReid Arwood氏は、同社が既存の構成管理ソリューションをリプレースしなければならなかった理由を次のように説明する。

このプロセスは限られた設定値セットから始まりましたが、古いシステムはDoorDashの新しい業種にわたる成長についていくのに苦労していました。これらの設定が標準形式に保たれていないのに困りました。JSONもあれば、CSVもあり、まったくフォーマットがないものもあります。これらのファイルを維持し、 DoorDash社の成長スピードに合わせて更新することは、 困難であると同時に危険でもあり、構成が正しくないために複数の停止が発生していました。

エンジニアは、CockroachDBに保存されたデータに対して、より柔軟なデータモデルを持つ新しいアーキテクチャを構築した。CockroachDBは、多くの粒度(店舗、ビジネスなど)で設定値のバージョン管理と監査をサポートしている。設定値は、管理者UIアプリケーションを使用して更新および承認される。新しいソリューションは、自動復帰する有効期限ベースの設定、特定の時間帯に適用される時間ベースのプリファレンス、実験を支援するエフェメラル設定タイプ、自動検証、自動承認/拒否などをサポートしている。

構成管理ソリューションの新しいアーキテクチャ(出典:DoorDash Engineering Blog)

チームは、新しいアーキテクチャを提供するために、段階的なアプローチを採用した。CockroachDBクラスタノードに使用するインスタンスタイプをアップグレードし、クエリとスレッドプールの最適化を含むアプリケーションコードを改善することで、 設定値の取得待ち時間を約10ミリ秒(99パーセンタイル)に最適化した。

より多くのユースケースが新しいアーキテクチャに移行するにつれて、開発者は、毎秒10,000リクエストを処理するためにソリューションを拡張し、信頼性と大容量ファイルの処理を改善し、より柔軟性をサポートするためにデータモデルを改良し、より開発者に優しくすることを計画している。

InfoQは最近、マイクロサービス・プラットフォームを改善するためのDoorDashの他の取り組みについて報告した。これには、サービスメッシュとセルベースのアーキテクチャを使用してインフラコストを削減することや、キャッシングレイヤーを再構築してパフォーマンスとスケーラビリティを向上させることなどが含まれる。

作者について

この記事に星をつける

おすすめ度
スタイル

BT