Upgrade to Pro — share decks privately, control downloads, hide ads and more …

現場のデータを集める技術

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

 現場のデータを集める技術

Avatar for Yuta Shimakawa

Yuta Shimakawa

November 07, 2023
Tweet

More Decks by Yuta Shimakawa

Other Decks in Technology

Transcript

  1. ©2023 MODE, Inc.
 現場のデータを集める技術 8th Nov, 2023 Findy IoTアーキテクチャ -

    スケーラビリティ×⾼可⽤性を追求する Lunch LT Yuta Shimakawa (@banana_umai)
  2. ©2023 MODE, Inc.
 2
 • ソフトウェアエンジニア(バックエンド中心) 10年+ • MODE (2019~)

    • SNS ◦ Twitter: @banana_umai ◦ GitHub: @bananaumai ◦ LinkedIn: Yuta Shimakawa 島川 悠太 Yuta Shimakawa
  3. ©2023 MODE, Inc.
 11
 過去に起きた問題 1 • ⼀部のゲートウェイの下流のスループッ トを超えてデータを送り続けた結果、 (データロストは起こらなかったもの

    の)システム全体のスループットの低下 を招く。 • ⼀部のゲートウェイのトラフィックが全 体に影響を及ぼさないよう、SQSのFIFO Queueを⽤いてデータ発⽣元のゲート ウェイ毎にQueue Groupを分けていた が、SQSのFIFOの仕様の⾒落しと、適切 なデータ送信に対してのリミット設定を しなかったことが原因で問題が発⽣させ てしまった。
  4. ©2023 MODE, Inc.
 12
 過去に起きた問題 2 • ⼀部のゲートウェイのデータについて下 流のコンポーネントでの処理が時間がか かり、データ送信の量‧頻度は⾼くな

    かったものの、緩やかにMessage Queue のバックログサイズが増加。 • 最終的に、システム全体のスループット の低下を招いてしまう。
  5. ©2023 MODE, Inc.
 15
 より堅牢で安定性のあるつくりに MQTT Broker Ack Ack Nack

    • Queueのバックログをカウント • SQS nativeには存在しないのでRedisでカウンターを保持
  6. ©2023 MODE, Inc.
 16
 より堅牢で安定性のあるつくりに MQTT Broker Ack Ack Nack

    • MODEのMQTT BrokerはMQTTを喋るアプリケーションサーバー • Message Queueがフルの場合は、ゲートウェイのPublishを失敗させる ⼀般的なMQTT Brokerを⽤いる場合、同様のことをするにはMQTT5で導⼊された Request/Responseパターンのような⽅法が必要になるはず(未検証)
  7. ©2023 MODE, Inc.
 17
 より堅牢で安定性のあるつくりに MQTT Broker Ack Ack Nack

    • ゲートウェイにデータ送信の失敗が伝わることで、時間を置いてから再送する などの制御が可能になる。
  8. ©2023 MODE, Inc.
 まとめ 18
 • データの到達保証はエンタープライズ向けのIoTシステムとして重要な技術要素 • IoTゲートウェイ単体でのデータのバッファリング機能や再送機能がそのために必要 な要素。

    • ただし、システム全体として安定‧堅牢な運⽤を⾏うためには、システム全体とし てデータパイプラインの下流の滞りを上流まで届ける仕組みが必要(バックプレッ シャー)。 • データ到達保証は⼀⾒簡単そうに⾒えて、⾯倒なことが沢⼭ある。 • 更に: 今⽇は触れられなかった内容 ◦ クラウドへのデータ送信が詰まった場合ゲートウェイ内でバックプレッシャーをどのよう に扱うかも結構難しい。 ◦ ゲートウェイの内部アーキテクチャについては @takeshinodaの多様なプロトコルと 駆動モ デルをサポートするIoTゲートウェイの開発と運⽤の知⾒ をご覧ください。