IoTアーキテクチャについて
こんにちは。
この記事ではIoTチームから、LuupのIoTってざっくりどういう仕組みなの?をお伝えできたらなと考えています。
IoTチームって何やっているの?
主に自転車やキックボードをインターネット経由で取り扱う部分がIoTの部分になります。
IoTチームがやっていることをなんとなく囲うと以下のような感じです。
LUUP のシステム構成図(21年10月時点)
車両(自転車やキックボード)とおしゃべり(通信)をする仕組みになります。通信といってもいろいろな内容があり、下記のようなものがあります。
- 車両の解錠・施錠(これが一番良く動いています!)
- ファームウェア(車両側のソフトウェア)のアップデート
- 車両の情報(バッテリーの量や位置情報など)の取得
- etc
そのような感じで、IoTチームではCloud Functionsから車両を操作するマイクロサービスを運用したり、開発したりしています。
またLuupではCloud Functions専任のエンジニアはいないため、Cloud Functions側への繋ぎこみの実装も行います。
車両によってはBluetoothでの操作をサポートしていたりするので、操作するためのAndroidアプリを開発したりもしました。
LuupでのIoTの難しさ
車両を操作するための仕組みを車両からモバイルまで一気通貫で作っているため、関わる技術領域がとても広いのがIoTの難しさであり、楽しさです。
メインはGCPで構築されていますが、各クラウドベンダーの提供サービスの癖を調査して一部AWSにしたりなど、かなり柔軟な形で構築しています。(特にIoT絡みは各社対応状況や制約条件が違うため)
そして一番大変なところは車両毎に通信プロトコルが違ったり、フォーマットが違ったり、サーバーアプリケーションが提供されたり、されなかったりとバラバラなところです。
IoT関連システム概況(22年7月時点)
車両側のソフトウェアはLuupでは運用していないので、新車両が開発される毎にメーカーの仕様に合わせて新しいマイクロサービスを作っており、車両毎にCloud Functionsで切り分けて操作しているという状況です。
さいごに
なかなか技術領域が広いIoTの世界ですがいかがでしたでしょうか?
今回は広く浅く説明しましたが、以後は個別の内容を共有していければと考えています。
興味が湧いて話を聞いてみたかったり、いやこれこうした方がいいんじゃないか、なんてご意見含めて気軽にご連絡頂けたらと思います。
Discussion