Save 37% off PRO during our Black Friday Sale! »

20160318 PaaS 勉強会 〜NIFTY Cloud MQTT / Timer / mBaaS Script

20160318 PaaS 勉強会 〜NIFTY Cloud MQTT / Timer / mBaaS Script

298fc05a116ab1a1e5ec1ae3583d6592?s=128

muddydixon

March 18, 2016
Tweet

Transcript

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

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

  3. ޿ࠂ 3

  4. ΞδΣϯμ 4 NIFTY Cloud MQTT NIFTY Cloud Timer NIFTY Cloud

    mBaaS Script機能 組み合わせ
  5. 5 /*'5:$MPVE.255

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

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

    通信コストの削減➔バッテリ消費減
  8. .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
  9. .2554FSWJDF 9 ぶっちゃけどっちもMosquitto 参照実装としても使われる Will、Retain、QoS0/1/2に対応してる TLS、WebSocketにも対応 ニフティ: 認証プラグイン:これによりbroker再起動無し でユーザ追加/削除やACL追加削除が可能 独自の接続数確認/Inbound/Outboundの帯域制

    ࣮૷ ϓϩτίϧ ಛ௃ $MPVE.255  ίϯύωͰҰൃͰىಈ ίϯύω͔Β4:4ΞΫηεՄೳ /*'5:$MPVE.255  ίϯύωͰҰൃͰىಈ ίϯύω͔Β1VC
  10. .255ͷߏ੒ 10 -# "1* "1* %0$,&3 .255 .255 .255 .255

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

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

    "VUI"$- %0$,&3 .255 .255 .255 .255 0Q ৽͍͠JNBHFΛ %PDLFSCVJME
  13. .255ͷߏ੒ 13 -# "1* "1* %0$,&3 .255 .255 .255 .255

    "VUI"$- %0$,&3 .255 .255 .255 .255 %# 0Q %#ͷ৘ใΛݩʹɺ 4UPQ3FOBNF3VO ※ imageʹෆ۩߹͕ൃੜͨ࣌͠ʹ੾Γ໭ͨ͢ΊʹRename
  14. 14 Let’s Create MQTTs!

  15. 15 /*'5:$MPVE5JNFS

  16. 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ૢ࡞
  17. /*'5:$MPVE5JNFS 17 特筆すべきは、Instanceの制御ができる! 起動/停止/再起動 スナップショット作成

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

  19. 19 /*'5:$MPVE NPCJMFCBDLFOE4DSJQU

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

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

  22. ࣮ࡍͷ࣮ߦʹ͸ 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){ // Τϥʔॲཧ });
  23. 4DSJQUͷߏ੒ 23 -# 0Q %# ※֤ॴiptables/userݖݶͳͲͰ੍ݶ/ೝূͰ੍ݶ ձ৔ ONLY Docker ͱ

    Consul ͕ ͝ʹΐ͝ʹΐͯ͠·͢
  24. ӡ༻ 24 負荷増 このセットをまるごと追加 Consulが自動でjoin Docker registratorによりAPI起動を検 知し、Consulに通知 nginxの名前解決によりLB メタ情報はDB内

    Script実行imageにモロモロ手を入れてある モジュール追加imageされたimageを更新
  25. 4DSJQUͷӡ༻Ϋϥελ૿ڧ 25 -# ձ৔ ONLY Docker ͱ Consul ͕ ͝ʹΐ͝ʹΐͯ͠·͢

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

  27. 27 ͜ΕΒΛ૊Έ߹ΘͤΔ

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

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

  30. 30 ·ͱΊ

  31. /*'5:$MPVE1BB4 31 3%#.Z42- 1PTUHSF42-ͳͲ %/4ωʔϜαʔό &44ϝʔϧ -#ϩʔυόϥϯα 'JSFXBMM "VUPNBUJPO$IFG 4DSJQUY1VC4VCΛத৺ʹ

    5JNFSY3%#Y$PNQVUJOHΛ૊Έ߹ΘͤΔ͜ͱͰ ಺෦ͷ छʑͷΦϖϨʔγϣϯͷࣗಈԽɾޮ཰ԽΛ࣮ݱ͍ͨ͠ 4UPSBHF4తͳ .255 5JNFS 4DSJQU Ծ  N#BB4 1VTI%PDVNFOU4DSJQU
  32. 32 σόΠεɺϓϥοτϑΥʔϜ͔Β69ઃܭ·Ͱ Ұ؏͓ͯ͠٬༷ͷՁ஋ΛҾ͖ग़͠ɾ૑଄Ͱ͖Δ ͓࢓ࣄͰ͢ɻ 8FBSFIJSJOH