Upload
joyzo
View
894
Download
1
Embed Size (px)
Citation preview
Twitter: @yamaryu0508 FB: https://www.facebook.com/ryu.yamashita.3
2015年12月4日 株式会社ジョイゾー/kintoneエバンジェリスト/ kintone Café 運営事務局・東京支部 山下 竜
kintone & AWSサーバレス アーキテクチャのベストプラクティス
-kintoneエコシステムのピースは揃った!-
#kintone
自己紹介「山下 竜」
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) 福岡県大牟田市出身
「ブルーウェーブ」という共通点
会社紹介「株式会社ジョイゾー」
3
会社名 株式会社ジョイゾー 所在地 東京都江東区木場3-5-5 設立 2010年12月20日(6期目) 社員数 8名(kintoneエバンジェリスト2名) 主な事業 kintone導入支援・カスタマイズ開発 サイボウズOffice/ガルーン構築支援 案件の9割以上がkintone
日本初定額制来店型システム開発「システム39」
4
1Week20万円の定額kintoneカスタマイズ
5
kintoneエコシステム背景
新しいSI・働き方
コミュニティ
ユーザー
コアサービス
グローバル
他サービス開発者/パートナー
kintoneエコシステムの本質
8
作って、使って、 コミュニケーションして、楽しい!
ユーザーが、 コミュニティ参加者が、 開発者/パートナーが、 サイボウズの人が、
新しいSI・働き方
コミュニティ
ユーザー
コアサービス
グローバル
他サービス
2011
2006
2014
20142015
20132011
開発者/パートナー
kintoneエコシステム、ファストSIを楽しむためのピースが実際に埋まった!
紙芝居でなく写真になり、 システムも今回実証しています!
kintoneエコシステム
11
「kintoneエコシステム」構築の3つのテクニカルキーワード
Lv.1 kintoneプラグイン
kintone連携サービス
サーバレスアーキテクチャ
Lv.2
Lv.3
帳票
複合機
経費精算
基幹
EAI
BI
kintoneエコシステム
12
「kintoneエコシステム」構築の3つのテクニカルキーワード
Lv.1 kintoneプラグイン
kintone連携サービス
サーバレスアーキテクチャ
Lv.2
Lv.3
帳票
複合機
経費精算
基幹
EAI
BI
最近注目しています!
kintoneとAWSナイスな相性だと 言われています!
kintoneとAWS
14
• アプリケーション寄りPaaS(SaaS)
• クライアントサイド/フロントエンド (UI/UX)
• 行動的/解釈の共有でアクションを起こし、コミュニケーションで業務を回す
• インフラ寄りPaas(IaaS、BaaS)
• サーバーサイド/バックエンド (コマンド)
• 思考的/データを捌き事象を解釈する
APIで 結合・補完
良質のインプット
強力なデータ処理
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
AWS Lambdaによる サーバレスアーキテクチャ
参考・引用「Serverless Architecture on AWS」 (http://www.slideshare.net/keisuke69/serverless-architecture-on-aws)
肝となる
サーバ(EC2)による処理系の例
17
データプッシュポーリング・ 待機・監視
データの発生状況を ポーリングチェック
処理(コード)の 実行
・ロードバランス ・レプリケーション ・オートスケール
データ
サーバレス(Lambda)による処理系の例
18
データ
トリガー
データの発生が トリガーとして渡る
・ロードバランス ・レプリケーション ・オートスケール
処理(コード)の 実行
• インフラ構築不要
• インフラの運用管理不要
• キャパシティ
• スケール
• デプロイ
• 障害耐性
• モニタリニグ
• ロギング
• セキュリティパッチ適用
サーバレス(Lambda)の恩恵
結局サーバレスとは?
19
EC2にあれこれ作って、処理しつつ、面倒見る
Lambdaでイベントに応じたアクションの コードを書くだけ!
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
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
(定期的な集計、サービス間連携)
AWS各サービスを用いたkintoneへのインプット
23
・農業(圃場) ・見守り ・建設・工事現場 ・工場設備 ・エネルギー設備
現場
センサー
・温度 ・湿度 ・照度 ・加速度 ・騒音
センサー クラウド kintone
・通知 ・ワークフロー ・スレッド ・カスタマイズビュー
事象・データが発生する データを捌き、 事象を解釈する
解釈の共有でアクションを起こし、コミュニケーションで業務を回す
IoT
AWS各サービスを用いたkintoneへのインプット
24
kintone controller
REST API
AWS LambdaAWS IoTコントローラー
IoT連携
・レコード操作 ・ワークフロー操作 ・スペース操作 ・アプリ操作
①ボタンを押す ②IoT情報を受け取って、次のサービスに渡す
③受け取った情報をトリガーにkintoneにアクセス
kintoneへのAPIアクセスのラッピング
25
Webhook Event REST API
①Gitのプッシュ、 課題追加等の発生
②APIでパラメータを 渡す
③Eventでパラメータを受け取り、 APIでkintoneへ
Webhook(通知等)をAPI Gatewayを経由してLambdaで捌いた内容を kintoneに連携
Webhookからのkintoneアクセス
kintoneへのAPIアクセスのラッピング
26
①kintoneデータへのアクセスをAPI Gatewayで APIを再定義
②kintoneを意識することなく 有益な情報にアクセス
kintoneに蓄積されたデータをAPI Gatewayで再定義したAPIで柔軟に公開
kintoneのデータを再定義したAPIで公開
REST API Event REST APIRESTful Service
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のデータ管理に予測機能を追加!
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
Schedule Eventによるkintoneバッチ処理
29
①Lambdaを定期起動
スケジュールイベント(定期実行)で、サービス間連携
Event REST API
連携 サービス
REST API ②connpassのデータを取得
③connpassのデータを kintoneへ
④kintoneに入ったデータを kViewerで公開
kintone REST APIおさらい
kintone3大要素とREST API
31
データベース プロセス管理 コミュニケーション
充実 強化中 弱いAPIからの操作も3大要素をバランスよく活用することが重要!
API操作で3大機能同士を密に結合できるようになると、更に便利になると期待しています!
kintone3大要素とREST API(ポータル画面)
32
スペースの 作成・メンバー更新等
アプリの作成・更新
(欲しい)
(参考:「cybozu.com developer network > kintone API」)
kintone3大要素とREST API(詳細画面)
33
レコードの 取得・登録・更新・削除
添付ファイルの アップロード・ダウンロード
レコードの ステータス変更
(欲しい)(参考:「cybozu.com developer network > kintone API」)