今年たくさんのIoT系のハッカソンに参加して気づいたことは、エンジニアでない方やフロントエンドの方にはターミナルのいわゆる「黒い画面」に抵抗があるということです。自分は1日の半分は「黒い画面」で過ごしているので麻痺しています。IFTTTやZapier、OctobluやmyThingsを使っているとサーバーを意識せずに簡単にWebサービスやクラウドを連携できるglueが重要になってきていると思うようになりました。
少なくともサーバーのプロビジョニングやアプリのデプロイをせずに、自分で書いたコードのスニペットだけをホストできてイベント駆動のWebhookが実装できればIoTがもっと使いやすくなると思います。これはServerless ArchitectureとMicroServicesのためのプラットフォームにも該当すると思います。
このシリーズ
- Webhook as a ServiceでIoTのserverlessなバックエンド考える - Part 1: リソース
- Webhook as a ServiceでIoTのserverlessなバックエンド考える - Part 2: Webtask.ioのHello world
Webscript.io
Webscript.ioはWebブラウザでLuaのコードを書いて簡単にWebhookを実装できます。データストアも利用できるのでちょっとした永続的なデータが必要なロジックを書くことも可能です。
Webtask.io
If This Then Node.jsという言葉が表すように、Webtask.ioはIf..Then型でNode.jsのコードをホストしてWebhookで実行できます。サーバーのプロビジョンングやアプリケーションのデプロイが不要です。クラウドの認証サービスとして有名なAuth0の内部で使われている仕組みのようです。
IronWorker
IronWorkerはコードをホストしてDockerのワーカーとして実行できるサービスです。Node.js、Python、Java、Goなど様々な言語のライブラリが提供されています。IronMQのMessage Queueサービスと連携した非同期の実装ができるのが魅力です。
AWS Lambda
言わずと知れたAWS Lamdaです。AWSで発生するイベントからLambdaをコールして別のAWSと連携するのが本来の用途だと思います。AWS API GatewayからLamdaファンクションとして外部のWebサービスをコールすると汎用的なイベント駆動のWebhookを実装することもできます。
その他
まだ試したことはありませんがalternativesがあります。
フローのビジュアル実装
MicroServicesのフローをビジュアルで管理できる便利な仕組みを探しているところです。今の所Node-REDや、残念ながらサービス終了となったYahoo! Inc.のYahoo! Pipesが近い感じです。