54
kintoneエコシステム時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ- kintone Café 札幌 Vol.7 #kintonecafe Twitter: @yamaryu0508 FB: https://www.facebook.com/ryu.yamashita.3 2015年11月30日 株式会社ジョイゾー/kintoneエバンジェリスト/ kintone Café 運営事務局・東京支部 山下 竜

kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

Embed Size (px)

Citation preview

Page 1: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-

kintone Café 札幌 Vol.7

#kintonecafe

Twitter: @yamaryu0508 FB: https://www.facebook.com/ryu.yamashita.3

2015年11月30日 株式会社ジョイゾー/kintoneエバンジェリスト/ kintone Café 運営事務局・東京支部 山下 竜

Page 2: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

自己紹介「山下 竜」

2

2013.3 IOTとグループウェア(デヂエ)の連携を試みてkintone に出会う2014.4 - kintoneエバンジェリストに

2014.11 kintone好きが高じて、界隈初のkintone転職2015.2 kintone Café 運営事務局開設、事務局メンバーに

2014.5 - 2014.10 kintone Café 福岡 Vol.1 - 3を主催

現在(kintone歴2年ちょっと、AWS歴数週間) 多分、“日本で唯一100%kintoneでご飯食べてる人”

株式会社ジョイゾー 山下 竜(33) 福岡県大牟田市出身

「ブルーウェーブ」という共通点

Page 3: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

会社紹介「株式会社ジョイゾー」

3

会社名  株式会社ジョイゾー 所在地  東京都江東区木場3-5-5 設立  2010年12月20日(6期目) 社員数  8名(kintoneエバンジェリスト2名) 主な事業  kintone導入支援・カスタマイズ開発  サイボウズOffice/ガルーン構築支援 案件の9割以上がkintone

Page 4: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

日本初定額制来店型システム開発「システム39」

4

Page 5: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

kintoneエコシステムいよいよ準備が整ってきた

Page 6: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

新しいSI・働き方

コミュニティ

ユーザー

コアサービス

グローバル

他サービス開発者/パートナー

Page 7: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

グローバル

他サービス

コミュニティ

ユーザー

コアサービス

新しいSI・働き方 開発者/パートナー

Page 8: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

kintoneエコシステムの本質

8

作って、使って、 コミュニケーションして、楽しい!

ユーザーが、 コミュニティ参加者が、 開発者/パートナーが、 サイボウズの人が、

Page 9: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

kintoneエコシステムの本質

9

作って、使って、 コミュニケーションして、楽しい!

ユーザーが、 コミュニティ参加者が、 開発者/パートナーが、 サイボウズの人が、

Page 10: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

kintone Caféも・・・

10

https://kintonecafe.com

kintone Caféを核とした kintoneエコシステムを醸成

Page 11: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

今日は私なりの切り口で

Page 12: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

kintoneエコシステム

12

「kintoneエコシステム」構築の3つのテクニカルキーワード

Lv.1 kintoneプラグイン

kintone連携サービス

サーバレスアーキテクチャ

Lv.2

Lv.3

帳票

複合機

経費精算

基幹

EAI

BI

Page 13: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

kintoneエコシステム

13

「kintoneエコシステム」構築の3つのテクニカルキーワード

Lv.1 kintoneプラグイン

kintone連携サービス

サーバレスアーキテクチャ

Lv.2

Lv.3

帳票

複合機

経費精算

基幹

EAI

BI

今日はもちろんココ!

Page 14: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

kintoneとAWSまず・・・

ナイスな相性だと 言われています!

Page 15: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

AWS re:Invent 2015でも実感

15

kintoneコミュニティとAWSはベストパートナー? なにやってるんすか?サイボウズの面々をre:Inventで捕獲の巻 (http://ascii.jp/elem/000/001/075/1075010/)

• kintoneコミュニティはAWSと急接近している

• AWSとkintoneは補完関係があって線は太くなっている

• Amazon IoTボタンでkintoneにレコード登録

• ディスラプトの怖さも感じている

• ファンを熱狂させるようなイベントをやってみたい

Page 16: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

kintoneとAWS

16

• アプリケーション寄りPaaS(SaaS)

• クライアントサイド/フロントエンド (UI/UX)

• 行動的/解釈の共有でアクションを起こし、コミュニケーションで業務を回す

• インフラ寄りPaas(IaaS、BaaS)

• サーバーサイド/バックエンド   (コマンド)

• 思考的/データを捌き事象を解釈する

APIで 結合・補完

良質のインプット

強力なデータ処理

Page 17: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

kintoneエコシステム(王道っぽいAWSとkintoneの連携パターン)

17

Amazon DynamoDB Stream

Amazon SNS

Amazon S3

Amazon Kinesis

Amazon Lambda

Amazon EC2Lambda

イベントソース

REST API

kintone on cybozu.com

・レコード操作 ・ワークフロー操作 ・スペース操作 ・アプリ操作

REST API

kintone.proxy() & Amazon API Gateway 経由もやっぱりイイ!

REST API

プリミティブな連携 ・ホスティング ・バッチ処理

Amazon API Gateway

AWS IoT

Page 18: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

kintone REST API一応おさらい

Page 19: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

kintone3大要素とREST API

19

データベース プロセス管理 コミュニケーション

充実 強化中 弱いAPIからの操作も3大要素をバランスよく活用することが重要!

API操作で3大機能同士を密に結合できるようになると、更に便利になると期待しています!

Page 20: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

kintone3大要素とREST API(ポータル画面)

20

スペースの 作成・メンバー更新等

アプリの作成・更新

(欲しい)

(参考:「cybozu.com developer network > kintone API」)

Page 21: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

kintone3大要素とREST API(詳細画面)

21

レコードの 取得・登録・更新・削除

添付ファイルの アップロード・ダウンロード

レコードの ステータス変更

(欲しい)(参考:「cybozu.com developer network > kintone API」)

Page 22: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

AWS Lambdaによる サーバレスアーキテクチャ

参考・引用「Serverless Architecture on AWS」 (http://www.slideshare.net/keisuke69/serverless-architecture-on-aws)

肝となる

Page 23: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

サーバ(EC2)による処理系の例

23

データプッシュポーリング・ 待機・監視

データの発生状況を ポーリングチェック

処理(コード)の 実行

・ロードバランス ・レプリケーション ・オートスケール

データ

Page 24: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

サーバレス(Lambda)による処理系の例

24

データ

トリガー

データの発生が トリガーとして渡る

・ロードバランス ・レプリケーション ・オートスケール

処理(コード)の 実行

• インフラ構築不要

• インフラの運用管理不要

• キャパシティ

• スケール

• デプロイ

• 障害耐性

• モニタリニグ

• ロギング

• セキュリティパッチ適用

サーバレス(Lambda)の恩恵

Page 25: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

AWS Lambda

25

• Amazon S3 • Amazon Kinesis Streams • Amazon DynamoDB Streams • Amazon Cognito • Amazon SNS • Amazon SNS • Alexa AppKit • Amazon SWF • Amazon SES • Amazon CloudWatch Logs • Amazon Connected Home • Amazon IoT • (Schedule Event)

イベントソース

トリガー

Lambda関数の起動

Node.js Python Java

のコードを実行

最大5分間のタイムアウト

Page 26: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

結局サーバレスとは?

26

EC2にあれこれ作って、処理しつつ、面倒見る

Lambdaでイベントに応じたアクションの コードを書くだけ!

Page 27: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

kintoneエコシステム(王道っぽいAWSとkintoneの連携パターン)

27

Amazon DynamoDB Stream

Amazon SNS

Amazon S3

Amazon Kinesis

Amazon Lambda

Amazon EC2Lambda

イベントソース

REST API

kintone on cybozu.com

・レコード操作 ・ワークフロー操作 ・スペース操作 ・アプリ操作

REST API

kintone.proxy() & Amazon API Gateway 経由もやっぱりイイ!

REST API

プリミティブな連携 ・ホスティング ・バッチ処理

Amazon API Gateway

AWS IoT

Page 28: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

kintone & AWSサーバレスアーキテクチャのベストプラクティス

Page 29: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

その3

その2

kintoneとAWSサーバレスアーキテクチャのベストプラクティス

29

その1 AWS各サービスを用いたkintoneへのインプット

kintoneへのAPIアクセスのラッピング

kintoneからAWS各サービスへのアクセス

(従来IoT、kintone controller)

(Webhookからの連携、kintoneデータの柔軟な公開)

(kintoneデータを元にした機械学習)

その4 Schedule Eventによるkintoneバッチ処理

API

(定期的な集計、サービス間連携)

Page 30: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

AWS各サービスを用いたkintoneへのインプット

30

・農業(圃場) ・見守り ・建設・工事現場 ・工場設備 ・エネルギー設備

現場

センサー

・温度 ・湿度 ・照度 ・加速度 ・騒音

センサー クラウド kintone

・通知 ・ワークフロー ・スレッド ・カスタマイズビュー

事象・データが発生する データを捌き、 事象を解釈する

解釈の共有でアクションを起こし、コミュニケーションで業務を回す

IoT

Page 31: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

AWS各サービスを用いたkintoneへのインプット

31

kintone controller

REST API

AWS LambdaAWS IoTコントローラー

IoT連携

・レコード操作 ・ワークフロー操作 ・スペース操作 ・アプリ操作

①ボタンを押す ②IoT情報を受け取って、次のサービスに渡す

③受け取った情報をトリガーにkintoneにアクセス

Page 32: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

kintoneへのAPIアクセスのラッピング

32

Webhook Event REST API

①Gitのプッシュ、 課題追加等の発生

②APIでパラメータを 渡す

③Eventでパラメータを受け取り、 APIでkintoneへ

Webhook(通知等)をAPI Gatewayを経由してLambdaで捌いた内容を kintoneに連携

Webhookからのkintoneアクセス

Page 33: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

kintoneへのAPIアクセスのラッピング

33

①kintoneデータへのアクセスをAPI Gatewayで APIを再定義

②kintoneを意識することなく 有益な情報にアクセス

kintoneに蓄積されたデータをAPI Gatewayで再定義したAPIで柔軟に公開

kintoneのデータを再定義したAPIで公開

REST API Event REST APIRESTfull Service

Page 34: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

kintoneからAWS各サービスへのアクセス

34

kintoneのデータを元にしたMachine Learning

AWS Lambda

kintone on cybozu.com

①kintoneデータで 予測モデル作成

Amazon API Gateway

Amazon Machine Learning

②kintoneにデータ登録 ③API(クエリ)で パラメータを渡す

④Eventでパラメータを受け取り、 APIでリアルタイム予測へ

REST API Event REST API

⑤予測実行後 予測値を返す

※初動のモデル作成は直接実施  (Lambda未経由)

⑥予測値をセット

kintone.proxy()

kintoneのデータ管理に予測機能を追加!

Page 35: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

Schedule Eventによるkintoneバッチ処理

35

①Lambdaを定期起動

スケジュールイベント(定期実行)で、サービス間連携

Event REST API

連携 サービス

REST API ②connpassのデータを取得

③connpassのデータを kintoneへ

④kintoneに入ったデータを kViewerで公開

Page 36: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

デモ!デモ!

Page 37: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

kintone & Backlog 連携デモ1 Webhookからのkintoneインプット

Page 38: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

Backlog→kintone連携

38

Webhook Event REST API

①課題追加 ②APIでパラメータを 渡す

③Eventでパラメータを受け取り、 APIでkintoneへ

Webhook(通知等)をAPI Gatewayを経由してLambdaで捌いた内容を kintoneに連携

Page 39: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

39

Page 40: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

kintone&Backlog連携

40

デモ!

Page 41: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

kintone Switchデモ2 kintoneからAWSサービスのコントロール

Page 42: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

kintone界隈のIoTの人らしいもの

42

「2015/5/22 kintone hive 開催報告」より

やっぱりやっときましょう!

Page 43: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

まずはデモ!

Page 44: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

kintoneから電源ON/OFF

44

kintoneからデバイスをコントロール

REST API Device Shadow

kintoneからデバイスをコントロール

今回は電化製品の電源ON/OFF

Page 45: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

kintoneから電源ON/OFF

45

REST API Event REST API

Device Shadow

SOAP API

①スイッチON/OFF②API GatewayとLambdaを介して、 Device ShadowのREST APIをコール

③Device Shadowで Raspberry Piを制御

④Raspberry PiからLAN内の Wemoにアクセス

⑤家電の電源をON/OFF

Page 46: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

その3

その2

(おさらい)kintoneとAWSサーバレスアーキテクチャのベストプラクティス

46

その1 AWS各サービスを用いたkintoneへのインプット

kintoneへのAPIアクセスのラッピング

kintoneからAWS各サービスへのアクセス

(従来IoT、kintone controller)

(Webhookからの連携、kintoneデータの柔軟な公開)

(kintoneデータを元にした機械学習、kintone Switch)

その4 Schedule Eventによるkintoneバッチ処理

API

(定期的な集計、サービス間連携)

Page 47: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

kintoneエコシステム真時代の到来!なぜ今なのか?

改めて、

Page 48: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

サーバーレスアーキテクチャが 登場したから?

キーワードですが、いち要素にすぎません

Page 49: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

コミュニティ

ユーザー

コアサービス

グローバル

他サービス新しいSI・働き方 開発者/パートナー

もう一度見返してみましょう!

Page 50: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

新しいSI・働き方

コミュニティ

ユーザー

コアサービス

グローバル

他サービス

2011

2006

2014

20142015

20132011

開発者/パートナー

Page 51: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

それぞれの進化からピースが全て 実際に埋まったから^^

紙芝居でなく写真になり、 システムも今日実証しました!

Page 52: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

kintoneエコシステムの本質

52

作って、使って、 コミュニケーションして、楽しい!

ユーザーが、 コミュニティ参加者が、 開発者/パートナーが、 サイボウズの人が、

Page 53: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」

kintone、楽しんでみませんか?

Page 54: kintone Café 札幌 Vol.7 「kintoneエコシステム真時代の幕開け! -kintoneエコシステムとAWSサーバレスアーキテクチャ-」