iotにおけるクラウドインフラからサーバサイドまでの概要的な話

15
IoT on Cloud Infrastructure, Server side and more

Upload: masashi-terui

Post on 20-Jul-2015

406 views

Category:

Technology


1 download

TRANSCRIPT

IoT on CloudInfrastructure, Server side and more

Social Twitter: marcy_terui Facebook: marcy.terui Github: marcy-terui

Work R&D (Automation, IoT?) Dev for Ops Cloud Architecting

Cloud, Infrastructure

AWS認定SA, SysOps, Developer (Associate) Chefの周辺ツール(OSS)作ってみたり

なんか出るみたいです https://enq.itmedia.co.jp/on24/form/986545

Server Side

元PHPer Work: Python, PostgreSQL

Like: Ruby, MySQL

誰ですか?Masashi Terui

照井 将士

所属 ジグソー株式会社 サービスユニット技術開発グループ リーダー

アラサー2児の父

IoTデータマネジメントパートナー

月面探査チーム「HAKUTO」(株式会社ispace)

国際宇宙開発レース「Google Lunar XPRIZE」中間賞

Kudan Limited

欧州における拡張現実(AR)技術のリーディングカンパニー

IoTと弊社

※具体的にはまだこれから

Agenda

クラウド #とは

クラウドの特徴

IoTサーバサイドをクラウドでやるべき理由

WebサーバサイドとIoTサーバサイドの違い

余談

クラウドコンピューティングとは、ネットワーク、サーバー、ストレージ、アプリケーション、サービスなどの構成可能なコンピューティングリソースの共用プールに対して、便利かつオンデマンドにアクセスでき、最小の管理労力またはサービスプロバイダ間の相互動作によって迅速に提供され利用できるという、モデルのひとつである。

http://ja.wikipedia.org/wiki/クラウドコンピューティング より引用

クラウド #とは

IaaS (Infrastructure as a Servce)

PasS (Platform as a Servce)

SaaS (Software as a Servce)

And more…

クラウドの特徴(IaaS)

初期投資不要

従量課金

調達スピード(ポチッとするだけ、API叩くだけ)

サーバ費用だけを考えると決して安くはない

リスクが少ない

圧倒的に人的コストが安くできる

新しいこと(IoT)を始めるのに適している※人的コストをちゃんと見つめればほとんどのケースでクラウドに適していることになるんですがw

IaaSを機能面で捉えると基本的にただの仮想NWや仮想サーバ じゃあ、何が違うのか?

IoTサーバサイドをクラウドでやるべき理由新しい市場で戦うためには、

スピードとトライ&エラーできる環境が大事

クラウドの特徴(PaaS)アプリケーションサーバHeroku, Azure Website, Engine Yard etc… RDBRDS, SQL Database, Cloud SQL NoSQLDynamoDB, BigTable etc… BigDataRedshift, SQL Data WarehouseEMR, HD Insight, Treasure DataBigQuery データストリームKinesis, Event Hubs, Cloud Dataflow 機械学習(Amazon|Azure) Machine Learning, Prediction API

※PaaSの基準をかなり広めにしてますので、異論を認めます

IoTサーバサイドをクラウドでやるべき理由

こんなに部品が揃ってる

双方向通信とか考えると、 手前に何か置いたりする必要も

MQTT対応サービスまだですか…

図にすると

規模によっては、 多重にすることも

価値が生まれるのは 大体このへん

クライアントに戻すこともあれば、人に見せる・伝えることも

WebサーバサイドとIoTサーバサイドの違い

相手が機械である(当たり前だけど大事)

具体的にどう違う?

項目 Web IoT

通信 広帯域 低帯域

同時接続数 少ない(場合による) 多い(場合による)

データ RDBが向いていることが多いRDBに向かないデータが多い

時系列等

品質

低くてもなんとかなる相手が人間だから柔軟に対応できる

(極論です)

絶対に高くないとダメ機械は失敗しても

決められたようにしか動けない

価値を生む場所(主に)

オンライン処理(UX) バックエンド処理(分析等)

具体的にどう変わる?

項目 Web IoT言語 Ruby, Python, PHP etc… Java, Scala, C#, Golang etc…

データベース RDBメイン NoSQLメイン通信プロトコル HTTP MQTT, AMQP, HTTP2

分析 場合による ほぼ必須

大量のセッションや高品質に対応するためにコンパイル型言語がメインになる

RDBメインから、用途に合わせたNoSQLの選定が必要になる

→PaaSを使おう

Hadoop等の分析基盤が求められる可能性が高い

→PaaSを使おう

通信プロトコルは要件に依る(現状の雰囲気↓)

極めて低帯域だったり、通信頻度が多い場合「MQTT」

そこまでではなければ「HTTP2」場合によって「HTTP」

余談

クライアントサイド(≒組み込み)の人は凄いと思う

サーバサイドはクラウドの恩恵もあってかなり環境は良くなった

実質無限のリソースや再現性のあるインフラ等

でも、クライアントサイドはリソースが有限だし凄い少ない

サーバサイドは手元からリカバリできる

クライアントサイドはほぼできない

ぶっちゃけ、僕もよく分かってない所も多いので、 一緒に勉強していきましょう!

間違ってる所があったら教えて下さい。 ツッコミ歓迎です:-)