Uberはデータセンターが落ちたときのために運転手たちのスマートフォンをバックアップに使っている

2015年9月24日

ソフトウェアによって従来のタクシー業界を一変させようとしているUber。同社はスマートフォンとクラウドで稼働するソフトウェアによって、位置情報を用いた利用者とUberドライバーのマッチングや、キャッシュレスな支払いなど、さまざまなサービスを実現しています。

このサービスの要であるデータセンターが災害などで落ちたときの備えについて、同社はほかのデータセンターにデータをレプリケートするのではなく、Uberと契約しているドライバーが持つスマートフォンをバックアップ先とするアーキテクチャを、先週9月14日にサンノゼで開催されたイベント「@Scale」のセッション「How Uber Uses your Phone as Backup Datacenter」(Uberはいかにしてスマートフォンをデータセンターのバックアップに用いているのか)で紹介しました。

その動画が公開されていますので、前半で説明されているシステムの概要について要点を記しました。動画の後半では詳しい実装について解説されています。

How Uber Uses your Phone as Backup Datacenter

Uberの仕組みについて。

Uberの利用者がスマートフォンから利用要求(Tripの要求)を送信すると、その位置情報とドライバーたちの位置情報がデータセンターでマッチングされ、ドライバーがそれを受諾すると、それが利用者に伝えられる。

ドライバーが利用者の場所へ到着し、利用者が乗車するとTrip(行程)が始まる。

利用者が目的地に着きTripが完了するまで、データセンターとスマートフォンのあいだではTripに関する何回もの通信とトランザクションが発生する。

しかし万が一データセンターが落ちてしまった場合、どうすべきか。

クラッシックな対策法としては、バックアップ用のデータセンターを用意し、つねにデータを複製し続け、障害時にフェイルオーバーするというものがある。

この方法は、高速な複製のためデータセンター間に広帯域のネットワークが必要となるなどの課題がある。

そこで、もしもTripに関するすべてのトランザクションをドライバーのスマートフォンに保存し、フェイルオーバー先のどんなデータセンターにでも展開できたらどうだろうか。 われわれは、このモバイルによる実装を選択した。

fig 右がドライバーのスマートフォン。ここに保存されていたトリップデータを、バックアップデータセンターに展開する。利用者もそのデータにアクセスするため問題なくTripを継続できる

もちろんこの方法にも課題はある。利用者の情報保護などのため、データを暗号化してドライバーのスマートフォンに保存しなければならない。

シンプルな実装のレプリケーションプロトコルで、ネットワークの帯域を最小限にしなければならない。シンプルなプロトコルのため、われわれはキーバリューストアとget、set、deleteを使うことにした。

TripごとにTrip番号を設定し、Trip番号ごとにバージョン管理をしてデータの更新に対応している。

Tags: クラウド システム開発 データセンター

このエントリーをはてなブックマークに追加
ツイート
follow us in feedly




タグクラウド

クラウド / AWS / Azure / Google Cloud
コンテナ / Docker / Kubernetes
クラウドネイティブ / サーバレス
クラウド障害 / 運用・監視

プログラミング言語 / 開発ツール
JavaScript / Java / .NET / WebAssembly
HTML/CSS / Web標準

アジャイル開発 / スクラム / DevOps / CI/CD
ソフトウェアテスト・品質
ローコード/ノーコード開発

データベース / RDB / NoSQL / 機械学習・AI
Oracle Database / MySQL / PostgreSQL
Office / 業務アプリケーション

ネットワーク / HTTP / QUIC / セキュリティ
OS / Windows / Linux / VMware
ハードウェア / サーバ / ストレージ

業界動向 / 働き方 / 給与・年収
編集後記 / 殿堂入り / おもしろ

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本