iot/gpsトラッキング プラットフォームがサーバレス...

48
Powerd by 株株株株株株株株株 IoT/GPS 株株株株株株 株株株株株株株株株株株株株株 株株株株株 2 株株株株株株株株株 トトトトトトトトトト ()

Upload: yuki-takahashi

Post on 16-Apr-2017

2.502 views

Category:

Technology


0 download

TRANSCRIPT

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

Powerd by

株式会社スタイルズ

IoT/GPS トラッキングプラットフォームがサーバレス

だからこそ 2 ヶ月で構築できた話

(トラッカーアイオー)

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

Powerd by

Who am I ?

- 2 -

髙橋 ゆうき ( @ukitiyan )  - Stylez Corp.   Technology Strategy Group  Lead Developer

  - Japan ownCloud UserGroup    Member

サーバサイドアプリエンジニア 。 ownCloud はPHP だけど、主に Java 。

SoftLayer 本に寄稿してるけど、主に AWS 。

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

Powerd by

About Us

- 3 -

 会社名  株式会社スタイルズ

 所在地  東京都千代田区神田小川町1丁目2番地

        URL   https://www.stylez.co.jp/ 設  立  平成 15 年 12 月 5 日

      (創業:平成 5 年 11 月 17 日)

 代表者   梶原 稔尚

 社員数    93 名(平成 28 年 6 月 1 日現在)

 資本金    3,000 万円

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

Powerd by - 4 -

長年、エンタープライズのシステムを開発してきた アプリ育ちなメンバーによるクラウドで提供される マネージドサービスの利用を前提とした、クラウドネイティブなシステムの開発・運用事業。

Powered by

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

Powerd by - 5 -

本 題

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

Powerd by - 6 -

Trackrr Service API デバイスの認証、トラッキング情報をプラットフォームへ送信、トラッキング情報をプラットフォームから取得するための API

Trackrr Device SDK スマートフォンなどの IoT 用デバイス上で、トラッキングをおこなうためのアプリケーションを開発するための SDK

Trackrr Management Console デバイスの登録や管理などを行う管理画面

Trackrr Device SDK

Trackrr Service APITrackrr Management

Console

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

Powerd by - 7 -

Trackrr Service API

IoT Device

User Interface

Push Tracking Data

Search Tracking Data

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

Powerd by - 8 -

Trackrr Device SDK

IoT Device

SDK

Built-in

Download

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

Powerd by - 9 -

Trackrr Management Console

Registration&

Management

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

Powerd by - 10 -

Only 4 steps to start

STEP 1 - 登録:デバイスの登録や管理などを行う管理画面( Trackrr Management Console )にログインするために Trackrr アカウントを作成。

STEP 2 - 設定:接続に必要なデバイス毎のアクセスキーの設定、シークレットキーの発行・確認。

STEP 3 - 接続:お手持ちのデバイスにデバイス用の SDK ( Trackrr Device SDK )を組み込み。

STEP 4 - 開始:ステップ 2 で確認したアクセスキー・シークレットキーをデバイスに設定。

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

Powerd by - 11 -

IoT/GPS トラッキングを低コストにすぐ始められる

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

Powerd by - 12 -

地域住民への除雪車情報の公開

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

Powerd by - 13 -

長距離バスのための運転情報の収集

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

Powerd by - 14 -

トラックドライバーの健康状態の管理

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

Powerd by - 15 -

物流配送者のスケジューリング支援

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

Powerd by - 16 -

車両管理・テレマティクスサービス

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

Powerd by - 17 -

良さそうだけど、その手の BaaS って他にもあるよね?

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

Powerd by - 18 -

 いいえ

ちがいます!!

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

Powerd by - 19 -

“Serverless Architecture”

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

Powerd by - 20 -

こちらが本題

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

Powerd by - 21 -

Serverless Architecture100% AWS Managed ServiceFull Scale Out

User Info.

GPS Info.

Authentication API

STS Token

MQTT PUT

Search API

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

Powerd by

②Get STS Token

Amazon API Gateway

AWSLambda

AmazonRDS

AmazonCognito

AWS IoT

①AuthenticationRequest

③Put GPS Info.(MQTT)

API Server

AuthenticationProvider

User Info.

Authentication + MQTT

- 22 -

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

Powerd by

AWS IoT Amazon Kinesis

AWSLambda

AmazonS3

①Stream ②Serialize

JSON

Serialize

- 23 -

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

Powerd by

AmazonDynamoDB

Publish

AmazonRDS

API Server

AmazonS3

AWSLambda

User Info.

GPS Info.

Publish

- 24 -

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

Powerd by

API + Management Console

- 25 -

AmazonDynamoDB

AmazonRDS

API

API Device

System

TrackrrManagement

Console

API Server

Management Console

Server

User Info.

GPS Info.

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

Powerd by - 26 -

Why Serverless?

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

Powerd by

スモールスタート

- 27 -

1,000kAPI callsare free

250k messages are free

$14.51 per provisioned shard-month 1,000k

Requests are free

db.t2.micro instanceis free

two t2.micro instances

are $ 14.28

25 units of read/write

capacity are free*

1,000k synchronous operation are free

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

Powerd by

スケーラビリティ

- 28 -

チューニング無しに、 1500 台のデバイスからの PUSH成功

1.5K Virtual buses

Push Search

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

Powerd by

アプリ屋の苦手な工程を省いて実装に専念

- 29 -

Requirements

Design

Development

QA-Test

Release

可用性性能 / 拡張性運用 / 保守性セキュリティ

コスト

実 装

サーバーメンテナンス

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

Powerd by

自律的な開発

- 30 -

Requirements

Design

Development

QA-Test

Release

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

Powerd by

自律的な開発

- 31 -

Design

Development

QA-Test

Design

Development

QA-Test

Design

Development

QA-Test

Design

Development

QA-Test

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

Powerd by

自律的な開発

- 32 -

zero base.

parallel

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

Powerd by

変更への柔軟な対応

- 33 -

client

front database

Web Layer

Service Layer

Repository Layer

DTO

Domain

Model

Service

Application

Layer Base

Before serverless

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

Powerd by

変更への柔軟な対応

- 34 -

client

Publish

Application

Authentication

Application

Serialize

Application

Queueing

Application

frontdatabase

Service

ApplicationBase

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

Powerd by

変更への柔軟な対応

- 35 -

偉い人からの「 IoT なんだから、 MQTT にしたいよね?」という急な要望(汗)

Amazon Kinesis

AWSLambda Amazon

S3

JSON

HTTPS

AWS IoT

MQTT

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

Powerd by

AmazonDynamoD

BAmazon

S3AWS

LambdaGPS Info.

変更への柔軟な対応

- 36 -

Amazon Redshift Amazon

QuickSight

Amazon Machine Learningnew feature

(coming soon?)

Machine Learning関連の要望はきっと上がってくる

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

Powerd by - 37 -

PAIN Point

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

Powerd by

ステートフルな機能

- 38 -

UI を伴うようなステートフルな機能は、割り切ってインスタンスを起動して対応

API Service

Management Console

上記で実装する Service ロジック等コードベースが共通な機能は無理に Serverless化しない CODE BASE

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

Powerd by

バラバラなコードベース

- 39 -

自律させ過ぎた結果、コードベースがバラバラに。。

GRUNT でビルド・ UT ・デプロイを自動化はしたが、、

Or

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

Powerd by

1 アプリの障害でサービス停止

- 40 -

clientPublish

Application

Authentication

Application

Serialize

Application

Queueing

Application

frontdatabase

Service

CRUSH

結合テスト時点でより多く障害を知ることが Robust への近道

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

Powerd by

ログのレベル感が大きい

- 41 -

今までは catalina.out だけ見れば良かった感があったが。

統合的に監視・通知する仕掛けは必須

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

Powerd by

ラーニングコスト

- 42 -

それなりに高い。予知できない例外に対しては、Try& Error するしかない。

Provisioned ThroughputExceededException

CodeStorageExceededException

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

Powerd by - 43 -

Summary

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

Powerd by

Summary

- 44 -

スモールスタート & 柔軟な対応を要する

 開発はどんどん Serverless !

使い分けと現時点の PAIN POINT を知るこ

とは重要で、それを知るには恐れず Try&Error を繰り返し、 Robust な

Serverless !

直近の課題は、コードベースとログ・監視

を統合した Serverless !

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

Powerd by - 45 -

Other Serverless

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

Powerd by - 46 -

Serverless Chat Bot API

FAQ

AWS Elasticsearch Service

AWS Machine Learning

AWS Lambda

AdministratorAWS Lambda AWS S3

AWS CloudTrail

AWS S3

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

Powerd by - 47 -

Contact Us

株式会社スタイルズ CloudShift 担当

03-5244-4113電話でのお問い合わせ

受付時間:平日 10 : 00~ 17 :00

メールでのお問い合わせ

受付時間: 24時間受付中

[email protected]

株式会社スタイルズ〒 101-0052 東京都千代田区神田小川町 1-2 風雲堂ビル6F https://www.stylez.co.jp/ https://cloudshift.stylez.co.jp/

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

Powerd by - 48 -

Thank you !