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

34
Twitter: @yamaryu0508 FB: https://www.facebook.com/ryu.yamashita.3 2015年12月4日 株式会社ジョイゾー/kintoneエバンジェリスト/ kintone Café 運営事務局・東京支部 山下 竜 kintone & AWSサーバレス アーキテクチャのベストプラクティス -kintoneエコシステムのピースは揃った!- #kintone

Upload: joyzo

Post on 09-Jan-2017

891 views

Category:

Software


1 download

TRANSCRIPT

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

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

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

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

-kintoneエコシステムのピースは揃った!-

#kintone

Page 2: 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 & AWSサーバレスアーキテクチャのベストプラクティス

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

3

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

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

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

4

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

1Week20万円の定額kintoneカスタマイズ

5

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

kintoneエコシステム背景

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

新しいSI・働き方

コミュニティ

ユーザー

コアサービス

グローバル

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

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

kintoneエコシステムの本質

8

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

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

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

新しいSI・働き方

コミュニティ

ユーザー

コアサービス

グローバル

他サービス

2011

2006

2014

20142015

20132011

開発者/パートナー

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

kintoneエコシステム、ファストSIを楽しむためのピースが実際に埋まった!

紙芝居でなく写真になり、 システムも今回実証しています!

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

kintoneエコシステム

11

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

Lv.1 kintoneプラグイン

kintone連携サービス

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

Lv.2

Lv.3

帳票

複合機

経費精算

基幹

EAI

BI

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

kintoneエコシステム

12

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

Lv.1 kintoneプラグイン

kintone連携サービス

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

Lv.2

Lv.3

帳票

複合機

経費精算

基幹

EAI

BI

最近注目しています!

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

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

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

kintoneとAWS

14

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

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

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

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

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

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

APIで 結合・補完

良質のインプット

強力なデータ処理

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

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

15

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 16: kintone & AWSサーバレスアーキテクチャのベストプラクティス

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

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

肝となる

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

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

17

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

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

処理(コード)の 実行

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

データ

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

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

18

データ

トリガー

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

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

処理(コード)の 実行

• インフラ構築不要

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

• キャパシティ

• スケール

• デプロイ

• 障害耐性

• モニタリニグ

• ロギング

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

サーバレス(Lambda)の恩恵

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

結局サーバレスとは?

19

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

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

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

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

20

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 21: kintone & AWSサーバレスアーキテクチャのベストプラクティス

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

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

その3

その2

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

22

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

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

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

(従来IoT、kintone controller)

(Webhookからの連携、kintoneデータの柔軟な公開、  CORSによるWebからのアクセス)

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

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

API

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

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

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

23

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

現場

センサー

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

センサー クラウド kintone

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

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

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

IoT

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

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

24

kintone controller

REST API

AWS LambdaAWS IoTコントローラー

IoT連携

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

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

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

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

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

25

Webhook Event REST API

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

②APIでパラメータを 渡す

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

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

Webhookからのkintoneアクセス

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

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

26

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

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

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

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

REST API Event REST APIRESTful Service

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

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

27

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 28: kintone & AWSサーバレスアーキテクチャのベストプラクティス

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

28

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

kintoneからAWS IoT経由で家電の電源をON/OFF

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

Schedule Eventによるkintoneバッチ処理

29

①Lambdaを定期起動

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

Event REST API

連携 サービス

REST API ②connpassのデータを取得

③connpassのデータを kintoneへ

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

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

kintone REST APIおさらい

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

kintone3大要素とREST API

31

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

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

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

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

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

32

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

アプリの作成・更新

(欲しい)

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

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

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

33

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

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

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

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

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