BT

Sportifyにおける信頼性の高いEvent Delivery Systemの概要

| 作者: Jan Stenberg フォローする 37 人のフォロワー , 翻訳者 笠原 王徳 フォローする 0 人のフォロワー 投稿日 2017年4月12日. 推定読書時間: 2 分 |

原文(投稿日:2017/03/31)へのリンク

Sportifyクライアントはピーク時に最大秒間150万回のイベントを生成し、全ては彼らのEvent Delivery Systemにより取り扱われている。このシステムは遅延を予測可能にすることと、イベントを消失することがないように設計されており、Igor Maravic氏は最近のQCon Londonでの彼の発表において、このシステムの高レベルの概要と鍵となるオペレーション上の側面について説明した。

250以上のイベント種別が異なるクライアントにより生成され、イベントのサイズは数バイトから数kBにばらついている。イベントのいくつかは厳格に消失してはならない要件を持っている。例えばロイヤリティ計算に用いているイベントがあり、システムを単純化するために個々の要件に関係なくイベントを100%配信するように設計されている。全てのイベントは毎時バケットに格納され、バケットは特定の日と時間の全てのイベントを含んでいる。各イベントは受信時刻が刻まれ、それにより正しいバケットに格納されることを保証している。

SportifyのソフトウェアエンジニアであるMaravic氏は、全てのイベントの配信を保証するだけでは十分でないことを強調した。設計要件が実際に満たされているかどうかを確認するための監視が必要不可欠なのである。彼らのEvent Delivery Systemは多くのマイクロサービスが協調する複雑な分散システムである。どの部分に最適化が必要そうかを見たり、インシデントが発生したときに実際の問題を発見しやすくしたり、データ配信における問題を発見したりするために、各コンポーネントは監視されている。彼らは監視に関する3つの種別が存在するとしている。

  • システムの一般的な稼働状態のためのシステム監視。CPU、メモリ使用量など。
  • 時系列の状態を確認するためのデータ監視。これによりデータが遅延要件に対応して配信されていることを保証できる。
  • イベント配信における完全性のためのデータ消失監視。このために彼らは全ての入力と全ての出力を監視するツールを構築し、データ消失や他の配信に関する問題を見つけられるようになっている。

Maravic氏は、システムが常時稼働しているのにも関わらず、オペレーションチームは存在しないと述べた。その替わりにサービスを構築する開発者がオペレーションの責任も持っており、彼はこれが良い開発者から偉大な開発者になることを後押ししている良い事例であると考えている。

Maravic氏は性能に関する数値を含めたアーキテクチャに関する更に詳細な情報についての一連のブログ記事も執筆した。

 
 

Rate this Article

Relevance
Style
 
 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT