Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

IoT/GPSトラッキング プラットフォームがサーバレス だからこそ2ヶ月で構築できた話

3,068 views

Published on

先日アルファ版がローンチされた、Trackrr.ioというIoT/GPSトラッキングプラットフォーム、そのアーキテクチャーと開発話の紹介

Published in: Technology
  • Be the first to comment

IoT/GPSトラッキング プラットフォームがサーバレス だからこそ2ヶ月で構築できた話

  1. 1. Powerd by 株式会社スタイルズ IoT/GPSトラッキング プラットフォームがサーバレス だからこそ2ヶ月で構築できた話 (トラッカーアイオー)
  2. 2. Powerd by Who am I ? - 1 - 髙橋 ゆうき (@ukitiyan) - Stylez Corp. Technology Strategy Group Lead Developer - Japan ownCloud UserGroup Member  サーバサイドアプリエンジニア 。ownCloudは PHPだけど、主にJava。  SoftLayer本に寄稿してるけど、主にAWS。
  3. 3. Powerd by About Us - 2 - 会社名 株式会社スタイルズ 所在地 東京都千代田区神田小川町1丁目2番地 URL https://www.stylez.co.jp/ 設 立 平成15年12月5日 (創業:平成5年11月17日) 代表者 梶原 稔尚 社員数 93名(平成28年6月1日現在) 資本金 3,000万円
  4. 4. Powerd by - 3 - 長年、エンタープライズのシステムを開発してきた アプリ育ちなメンバーによるクラウドで提供される マネージドサービスの利用を前提とした、クラウドネ イティブなシステムの開発・運用事業。 Powered by
  5. 5. Powerd by - 4 - 本 題
  6. 6. Powerd by - 5 - Trackrr Service API デバイスの認証、トラッキング情報をプラットフォームへ送信、トラッキング情 報をプラットフォームから取得するためのAPI Trackrr Device SDK スマートフォンなどのIoT用デバイス上で、トラッキングをおこなうためのアプ リケーションを開発するためのSDK Trackrr Management Console デバイスの登録や管理などを行う管理画面 Trackrr Device SDK Trackrr Service API Trackrr Management Console
  7. 7. Powerd by - 6 - Trackrr Service API IoT Device User Interface Push Tracking Data Search Tracking Data
  8. 8. Powerd by - 7 - Trackrr Device SDK IoT Device SDK Built-in Download
  9. 9. Powerd by - 8 - Trackrr Management Console Registration & Management
  10. 10. Powerd by - 9 - Only 4 steps to start STEP1 - 登録:デバイスの登録や管理などを行う管理画面(Trackrr Management Console)にログインするためにTrackrrアカウントを作成。 STEP2 - 設定:接続に必要なデバイス毎のアクセスキーの設定、シークレットキーの 発行・確認。 STEP3 - 接続:お手持ちのデバイスにデバイス用のSDK(Trackrr Device SDK)を 組み込み。 STEP4 - 開始:ステップ2で確認したアクセスキー・シークレットキーをデバイスに 設定。
  11. 11. Powerd by - 10 - IoT/GPSトラッキングを低コストに すぐ始められる
  12. 12. Powerd by - 11 - 地域住民への除雪車情報の公開
  13. 13. Powerd by - 12 - 長距離バスのための運転情報の収集
  14. 14. Powerd by - 13 - トラックドライバーの健康状態の管理
  15. 15. Powerd by - 14 - 物流配送者のスケジューリング支援
  16. 16. Powerd by - 15 - 車両管理・テレマティクスサービス
  17. 17. Powerd by - 16 - 良さそうだけど、 その手のBaaSって 他にもあるよね?
  18. 18. Powerd by - 17 - いいえ ちがいます!!
  19. 19. Powerd by - 18 - “Serverless Architecture”
  20. 20. Powerd by - 19 - こちらが本題
  21. 21. Powerd by - 20 - Serverless Architecture 100% AWS Managed Service Full Scale Out User Info. GPS Info. Authentication API STS Token MQTT PUT Search API
  22. 22. Powerd by ②Get STS Token Amazon API Gateway AWS Lambda Amazon RDS Amazon Cognito AWS IoT ①Authentication Request ③Put GPS Info. (MQTT) API Server Authentication Provider User Info. Authentication + MQTT - 21 -
  23. 23. Powerd by AWS IoT Amazon Kinesis AWS Lambda Amazon S3 ①Stream ②Serialize JSON Serialize - 22 -
  24. 24. Powerd by Amazon DynamoDB Publish Amazon RDS API Server Amazon S3 AWS Lambda User Info. GPS Info. Publish - 23 -
  25. 25. Powerd by API + Management Console - 24 - Amazon DynamoDB Amazon RDS API API Device System Trackrr Management Console API Server Management Console Server User Info. GPS Info.
  26. 26. Powerd by - 25 - Why Serverless?
  27. 27. Powerd by スモールスタート - 26 - 1,000k API calls are free 250k messages are free $14.51 per provisioned shard-month 1,000k Requests are free db.t2.micro instance is free two t2.micro instances are $ 14.28 25 units of read/write capacity are free* 1,000k synchronous operation are free
  28. 28. Powerd by スケーラビリティ - 27 - チューニング無しに、1500台のデバイスからのPUSH成功 1.5K Virtual buses Push Search
  29. 29. Powerd by アプリ屋の苦手な工程を省いて実装に専念 - 28 - Requirements Design Development QA-Test Release 可用性 性能/拡張性 運用/保守性 セキュリティ コスト 実 装 サーバー メンテナンス
  30. 30. Powerd by 自律的な開発 - 29 - Requirements Design Development QA-Test Release
  31. 31. Powerd by 自律的な開発 - 30 - Design Develo pment QA-Test Design Develo pment QA-Test Design Develo pment QA-Test Design Develo pment QA-Test
  32. 32. Powerd by 自律的な開発 - 31 - zero base. parallel
  33. 33. Powerd by 変更への柔軟な対応 - 32 - client front database Web Layer Service Layer Repository Layer DTO Domain Model Service Application Layer Base Before serverless
  34. 34. Powerd by 変更への柔軟な対応 - 33 - client Publish Application Authenticati on Application Serialize Application Queueing Application front database Service Application Base
  35. 35. Powerd by 変更への柔軟な対応 - 34 - 偉い人からの「IoTなんだから、MQTTにしたいよね?」 という急な要望(汗) Amazon Kinesis AWS Lambda Amazon S3 JSON HTTPS AWS IoT MQTT
  36. 36. Powerd by Amazon DynamoDBAmazon S3 AWS Lambda GPS Info. 変更への柔軟な対応 - 35 - Amazon Redshift Amazon QuickSight Amazon Machine Learning new feature (coming soon?) Machine Learning関連の要望はきっと上がってくる
  37. 37. Powerd by - 36 - PAIN Point
  38. 38. Powerd by ステートフルな機能 - 37 - UIを伴うようなステートフルな機能は、割り切ってインスタ ンスを起動して対応 API Service Management Console 上記で実装するServiceロジック等 コードベースが共通な機能は無理に Serverless化しない CODE BASE
  39. 39. Powerd by バラバラなコードベース - 38 - 自律させ過ぎた結果、コードベースが バラバラに。。 GRUNTでビルド・UT・デプ ロイを自動化はしたが、、 Or ? ?
  40. 40. Powerd by 1アプリの障害でサービス停止 - 39 - client Publish Application Authentica tion Application Serialize Application Queueing Application front database Service CRUSH 結合テスト時点でより多く障害を知ることがRobustへの近道
  41. 41. Powerd by ログのレベル感が大きい - 40 - 今まではcatalina.out だけ見れば良かった感があったが。 統合的に監視・通知する仕掛けは必須
  42. 42. Powerd by ラーニングコスト - 41 - それなりに高い。予知できない例外に対しては、 Try&Error するしかない。 Provisioned Throughput ExceededException CodeStorageExceeded Exception
  43. 43. Powerd by - 42 - Summary
  44. 44. Powerd by Summary - 43 -  スモールスタート & 柔軟な対応を要する 開発はどんどんServerless!  使い分けと現時点のPAIN POINTを知ること は重要で、それを知るには恐れずTry&Error を繰り返し、RobustなServerless!  直近の課題は、コードベースとログ・監視を 統合したServerless!
  45. 45. Powerd by - 44 - Other Serverless
  46. 46. Powerd by - 45 - Serverless Chat Bot API FAQ AWS Elasticsearch Service AWS Machine Learning AWS Lambda Administrator AWS Lambda AWS S3 AWS CloudTrail AWS S3
  47. 47. Powerd by - 46 - Contact Us 株式会社スタイルズ CloudShift 担当 0 3 - 5 2 4 4 - 4 1 1 3 電話でのお問い合わせ 受付時間:平日10:00~17:00 メールでのお問い合わ せ 受付時間:24時間受付中 cloudshift@stylez.co.jp 株式会社スタイルズ 〒101-0052 東京都千代田区神田小川町1-2 風雲堂ビル6F https://www.stylez.co.jp/ https://cloudshift.stylez.co.jp/
  48. 48. Powerd by - 47 - Thank you !

×