Slide 1

Slide 1 text

࠷ۙͷχϑςΟͷ1BB4 .255ͱ4DSJQU ୈճ1BB4ษڧձ !NVEEZEJYPO ৿౻େ஍

Slide 2

Slide 2 text

@muddydixon ニフティ株式会社 モバイルIoTビジネス部 データ可視化 データ前処理 時系列予測 ニューラルネットワーク ࣗݾ঺հ 2

Slide 3

Slide 3 text

޿ࠂ 3

Slide 4

Slide 4 text

ΞδΣϯμ 4 NIFTY Cloud MQTT NIFTY Cloud Timer NIFTY Cloud mBaaS Script機能 組み合わせ

Slide 5

Slide 5 text

5 /*'5:$MPVE.255

Slide 6

Slide 6 text

6 July Tech Festa 2015 http://www.slideshare.net/muddydixon/20150726-iotmqtt

Slide 7

Slide 7 text

.255ͱ͸ 7 Pub/Sub メッセージ転送プロトコル 現在のバージョンは 3.1.1 http://mqtt.org/ フットプリントが小さいことが特徴 IoTで用いられる低スペックなエッジデバイ スの通信に向いている 通信コストの削減➔バッテリ消費減

Slide 8

Slide 8 text

.255࣮૷ 8 ࣮૷ ݴޠ ϓϩτίϧ ಛ௃ ։ൃঢ়گ "QPMMP +BWB   F.255% &SMBOH    LBGLB +BWB  NPTDB /PEF   EBZTBHP NPTRVJUUP $    SBCCJUNR &SMBOH    TBOHPBLBOF &SMBOH ˞ TVSHFNR (PMBOH   EBZTBHP WFSOF.2 &SMBOH   EBZTBHP http://acro-engineer.hatenablog.com/entry/2015/06/19/120000 ʹ௥ه ※1 https://gist.github.com/voluntas/14a3421585bb08379314

Slide 9

Slide 9 text

.2554FSWJDF 9 ぶっちゃけどっちもMosquitto 参照実装としても使われる Will、Retain、QoS0/1/2に対応してる TLS、WebSocketにも対応 ニフティ: 認証プラグイン:これによりbroker再起動無し でユーザ追加/削除やACL追加削除が可能 独自の接続数確認/Inbound/Outboundの帯域制 ࣮૷ ϓϩτίϧ ಛ௃ $MPVE.255  ίϯύωͰҰൃͰىಈ ίϯύω͔Β4:4ΞΫηεՄೳ /*'5:$MPVE.255  ίϯύωͰҰൃͰىಈ ίϯύω͔Β1VC

Slide 10

Slide 10 text

.255ͷߏ੒ 10 -# "1* "1* %0$,&3 .255 .255 .255 .255 "VUI"$- %0$,&3 .255 .255 .255 .255 %# 0Q

Slide 11

Slide 11 text

.255ͷӡ༻"1*αʔόͷߋ৽ 11 -# "1* "1* %0$,&3 .255 .255 .255 .255 "VUI"$- %0$,&3 .255 .255 .255 .255 %# 0Q ී௨ʹ %FQMPZ3FTUBSU

Slide 12

Slide 12 text

.255ͷӡ༻#SPLFSͷߋ৽ 12 -# "1* "1* %0$,&3 .255 .255 .255 .255 "VUI"$- %0$,&3 .255 .255 .255 .255 0Q ৽͍͠JNBHFΛ %PDLFSCVJME

Slide 13

Slide 13 text

.255ͷߏ੒ 13 -# "1* "1* %0$,&3 .255 .255 .255 .255 "VUI"$- %0$,&3 .255 .255 .255 .255 %# 0Q %#ͷ৘ใΛݩʹɺ 4UPQ3FOBNF3VO ※ imageʹෆ۩߹͕ൃੜͨ࣌͠ʹ੾Γ໭ͨ͢ΊʹRename

Slide 14

Slide 14 text

14 Let’s Create MQTTs!

Slide 15

Slide 15 text

15 /*'5:$MPVE5JNFS

Slide 16

Slide 16 text

16 端的に言うと、Cron登録サービス 他社はHTTP Requestメイン NIFTY Cloud Timer HTTP/Fluend/MQTT NIFTY Cloud 操作が可能 αʔϏε Ձ֨ ੍ݶ DSPOBTBTFSWJDF 'SFF 1SP݄ +PCແ੍ݶɺ"MFSN +PCແ੍ݶɺ"MFSNແ੍ݶ 4FU$SPO+PC 'SFF 4JMWFS೥ (PME೥ +PC೔ɺ5JNFPVUT +PC೔ɺ5JNPVUT +PC೔ɺ5JNPVUT DSPOKPCPSH 'SFF /*'5:$MPVE5*NFS ԁ݄ )551'MVFOUE.255 /*'5:$MPVEૢ࡞

Slide 17

Slide 17 text

/*'5:$MPVE5JNFS 17 特筆すべきは、Instanceの制御ができる! 起動/停止/再起動 スナップショット作成

Slide 18

Slide 18 text

/*'5:$MPVE5JNFS 18 chkconfigなどで起動時になんらかの処理す るようなサーバを用意しておけば、定期的な バッチ処理を、バッチ起動時間だけ起動させ ることができる!

Slide 19

Slide 19 text

19 /*'5:$MPVE NPCJMFCBDLFOE4DSJQU

Slide 20

Slide 20 text

/*'5:$MPVE.PCJMF#BDLFOE4DSJQU 20 3/1 ベータリリース 機能的には下記みたいな機能 AWS Lambda Google Cloud Functions

Slide 21

Slide 21 text

࢖͍ํ 21 アップロード:method/ステータスを選ぶ 確認する テスト実行する 実行時間を確認する

Slide 22

Slide 22 text

࣮ࡍͷ࣮ߦʹ͸ 22 各種SDK対応 Android(Java) Objective-C Unity Node.js ncmb.Script .exec("GET", "testScript.js") .then(function(res){ // ࣮ߦޙॲཧ }) .catch(function(err){ // Τϥʔॲཧ }); ncmb.Script .set({"user-agent": agent}) // ϦΫΤετϔομΛࢦఆ .data({"name": name}) // ϦΫΤετϘσΟΛࢦఆ .exec("POST", "formScript.js") .then(function(res){ // ࣮ߦޙॲཧ }) .catch(function(err){ // Τϥʔॲཧ });

Slide 23

Slide 23 text

4DSJQUͷߏ੒ 23 -# 0Q %# ※֤ॴiptables/userݖݶͳͲͰ੍ݶ/ೝূͰ੍ݶ ձ৔ ONLY Docker ͱ Consul ͕ ͝ʹΐ͝ʹΐͯ͠·͢

Slide 24

Slide 24 text

ӡ༻ 24 負荷増 このセットをまるごと追加 Consulが自動でjoin Docker registratorによりAPI起動を検 知し、Consulに通知 nginxの名前解決によりLB メタ情報はDB内 Script実行imageにモロモロ手を入れてある モジュール追加imageされたimageを更新

Slide 25

Slide 25 text

4DSJQUͷӡ༻Ϋϥελ૿ڧ 25 -# ձ৔ ONLY Docker ͱ Consul ͕ ͝ʹΐ͝ʹΐͯ͠·͢

Slide 26

Slide 26 text

੍ݶ 26 ScriptからScript呼び出しは禁止 ファイルサイズは一旦8KB モジュール追加は不可 タイムアウト30秒

Slide 27

Slide 27 text

27 ͜ΕΒΛ૊Έ߹ΘͤΔ

Slide 28

Slide 28 text

ఆظόον 28 ىಈ➔ॲཧ➔ ࣗݾఀࢭ"1*ίʔϧ ॲཧʂ

Slide 29

Slide 29 text

)VCPU࡞ΕΔ ͕$SFEFOUJBM͕ɾɾɾ 29 ॲཧʂ queryparamにapikeyでできるようにたら良い かもしれない・・・

Slide 30

Slide 30 text

30 ·ͱΊ

Slide 31

Slide 31 text

/*'5:$MPVE1BB4 31 3%#.Z42- 1PTUHSF42-ͳͲ %/4ωʔϜαʔό &44ϝʔϧ -#ϩʔυόϥϯα 'JSFXBMM "VUPNBUJPO$IFG 4DSJQUY1VC4VCΛத৺ʹ 5JNFSY3%#Y$PNQVUJOHΛ૊Έ߹ΘͤΔ͜ͱͰ ಺෦ͷ छʑͷΦϖϨʔγϣϯͷࣗಈԽɾޮ཰ԽΛ࣮ݱ͍ͨ͠ 4UPSBHF4తͳ .255 5JNFS 4DSJQU Ծ  N#BB4 1VTI%PDVNFOU4DSJQU

Slide 32

Slide 32 text

32 σόΠεɺϓϥοτϑΥʔϜ͔Β69ઃܭ·Ͱ Ұ؏͓ͯ͠٬༷ͷՁ஋ΛҾ͖ग़͠ɾ૑଄Ͱ͖Δ ͓࢓ࣄͰ͢ɻ 8FBSFIJSJOH