見守りサービスは どう作っているのか ...€¦ · スマホアプリ ......
TRANSCRIPT
センサを使った見守りサービスはどう作っているのか
株式会社チカク 高橋一貴
高橋 一貴(たかはし かずよし)
株式会社チカク シニアエンジニアリングマネージャー
いくつかの会社にてエンジニアやマネージャーを担当し、ヤフーに在
籍時はトップ1%以上のクリエイター職が認定される黒帯制度において
第2代目に選出。全社の生産性改善に携わる。
共訳書に「Fearless Change アジャイルに効く アイデアを組織に広め
るための48のパターン」(丸善出版)、「一人から始めるユーザーエクス
ペリエンス」(丸善出版)。
チカクでは開発マネジメントのほか、サーバサイド開発・運用全般を担
う。
サービス開発の概要と要件
1 センサデータは5秒に1回送られる
温度・湿度・振動情報など10種類ほど
2 集計はリアルタイム性が求められる
3 少なくとも数千台の安定稼働
センサデータを集計し、ご実家の状況をイベント
という形で離れて暮らす子どもたちにゆるく伝え
る
● 特定のしきい値の超過○ 温度や振動情報など
● 差分の超過○ 急激な温度の変化など
● 蓄積データによる状況の推測○ 在宅等
● センサデータの時系列グラフ
技術的な方向性
● スケーラビリティの追従性
○ その場その場でちょうど良いコストバランスが必要
→ Lambdaを利用
● 高可用性
○ 見守りという目的のため通常のサービス以上に止まると問題
→ マネージドサービスを活用
● スケジュール遅延のリスクを下げる
○ 他社との提携サービスのため、ステークホルダが多い
→ 自社での経験がある Rubyで実装
システム構成
先ほどの図はこちらでもご覧いただけます
→ https://miro.com/app/board/o9J_kwqx18Q=/
プロジェクト中に発生した問題
● Ruby + Lambdaの事例が少ないのでどのように設計実装したらよいかわからない
→ フレームワークを利用せず実装。設計はDDDに則る。terraformでデプロイ。
● センサデータ保存Lambda Functionがタイムアウトする場合がある
→ 1件1件処理をしていてタイムアウトしていた。バッチ的に書き込むことで対応
● ユーザ認証・端末情報取得等のサブシステムとの連携時のパフォーマンスが思った以上に悪
い
→ キャッシュ機構を実装。今後Amazon SNS等でメッセージ配信の仕組みを構築予定