0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Google Cloud Day'21】「日本最大級の医療従事者専用サイト m3.com を運営するエムスリーのアンケートシステムのアーキテクチャーをご紹介  〜マイクロサービスの分割とアンケートデータのやりとり〜」を視聴して

Posted at

日本最大級の医療従事者専用サイト m3.com を運営するエムスリーのアンケートシステムのアーキテクチャーをご紹介  〜マイクロサービスの分割とアンケートデータのやりとり〜
https://cloudonair.withgoogle.com/events/google-cloud-day-digital-21/watch?talk=d1-da-09
エムスリーでは医療従事者向けにアンケートを実施しています。アンケートと一口に言ってもやるべきことは多岐にわたり、配信や督促、アンケート回答画面、データ分析など、様々なステップを経てクライアントへその結果が届けられます。そして、それらを実現するシステムは、ステップごとに責務を分けたマイクロサービスとして構成しています。本セッションでは全体のアーキテクチャの説明に加えて、Cloud Pub/Sub を利用した依存関係の整理や、データベースの使い分けなどについて紹介します。

質問 回答
マイクロサービスのような仕組みにすると、データの複製がある程度システム間にできてしまうと思いますが、データの不整合などの不具合は発生していないでしょうか? インフラの障害(ネットワークエラーなど)で不整合が発生するケースは今の所ありませんが、同期ロジックのバグで不整合が発生するケースはありました。データはアンケート回答システムをメイン、他はそのコピーという位置づけで運用していて、不具合がある場合は同期ロジックの修正後、再同期という形で修正しています
Pub/Subを経由する場合のエラーハンドリングについてどのようにやっているか教えてください。 送信側はPublishできるところまで確認しています。受信側の処理が失敗した場合はACKを返さないことで、メッセージをPub/Subから再取得できるようにしています。
Pub/Subを経由する場合、大量データを扱う際にデータの欠損、取りこぼし等は発生しないのでしょうか? 大量データはAPIのURLをデータとして受け渡すことで対処しています。取りこぼしについてはPub/Sub側のリトライにまかせています
ETLでデータを同期するバッチが動いていると思いますが、失敗したときにはどのようにリカバリしていますか? 基本的に日次で同期している処理と、毎時の処理の2種類を動かしています。毎時の処理は失敗しても許容していて、日次のものは失敗時に通知で問題にきづけるようになっています。また、日付を指定して再実行できるようになっています。
アンケート定義・回答DBもSpannerを使用しているのですか? アンケート定義・回答DBとしてはpostgreSQLを利用しています
切り口 内容
M3について
アンケートシステムのアーキテクチャ
システム構築時のポイント
GCPを利用した理由 効率よく情報を抽出できるようになった。コンパイル・起動が高速なのはサーバーレスな構成にするときにも大きなポイントになった。一般的なWEBサーバに近づけることができたので、ピーキーな使い方はしなくていい。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?