Contenu connexe
Similaire à [Cloud OnAir] 最新版 GCP ではじめる、サーバーレスアプリケーションの開発。 2018年11月8日 放送 (20)
Plus de Google Cloud Platform - Japan (20)
[Cloud OnAir] 最新版 GCP ではじめる、サーバーレスアプリケーションの開発。 2018年11月8日 放送
- 7. Cloud OnAir
Google のサーバーレス サービス
Cloud Functions
イベント駆動
App Engine
スタンダード環境
Cloud Firestore
NoSQL &
リアルタイム同期
Cloud Datastore
NoSQL
BigQuery
データウェアハウス
& 分析
コンピューティング データベース
機械学習 データ処理 その他
Cloud ML Engine
トレーニング
& 予測
Cloud AutoML
専門知識なしで
トレーニング&予測
Cloud Dataflow
ストリーム & バッチ
データ処理
Cloud Pub/Sub
グローバル リアルタイ
ム メッセージング
Firebase
- 8. Cloud OnAir
サーバーレスのメリット
サーバーレス
1. プログラミング
2. サーバーの構築
3. ネットワーク、ストレージのセットアップ
4. インデックスの定義
5. ソフトウェアのセットアップ
6. サーバーの管理
7. スケールを管理
サーバーの自社運用
1. プログラミング
2. サーバーの構築
3. ネットワーク、ストレージのセットアップ
4. インデックスの定義
5. ソフトウェアのセットアップ
6. サーバーの管理
7. スケールを管理
サービスの開発にフォーカスできる
- 10. Cloud OnAir
サーバーレス コンピューティング & アプリ
App Engine
スタンダード環境
Cloud Functions Firebase
アプリバックエンド
(e.g. APIs、Web apps)
Functions as a Service モバイルアプリ
● コードを書いてデプロイするだけ
● 2008 年からサービス提供
● オートスケール
● フルマネージド(インスタンス数の管
理、ロードバランサなどは Google に
任せる)
● Python, Java, PHP, Go, Node.js
● トリガーイベントに反応して、関数を
自動的に実行
● クラウドの ”接着剤”
● Python 3.7ベータ
, Node.js 6,
Node.js 8ベータ
● 課金 : 100 ミリ秒毎&割り当てメモリ
をベースに
● 統合したモバイルアプリ
プラットフォーム
● リアルタイム データベース
● ホスティング、メッセージング、ア
ナリティクス、認証、ML Kit、etc
- 12. Cloud OnAir
Cloud Functions GA
Cloud Functions が一般提供開始
● 東京
● すべてのデベロッパーに公開
● 安定、製品使用にも対応
● サービス水準合意
$ gcloud functions deploy --region asia-northeast1
- 16. Cloud OnAir
Webhook: HTTP Function
わずか数行のコードで
サーバーレスバックエンド
を構築:
● 他に追加設定なし
● HTTPS エンドポイント
● FQDN を提供
● SSL/TLS 証明書を自動生成
● 自動スケーリング
● 1 秒以下の単位による課金
// Function triggered via HTTPS
const translate = require('@google-cloud/translate')();
exports.hello = function hello(req, res) {
let msg = req.query.msg || 'Hello, world!';
let lang = req.query.lang || 'fr';
translate.translate(msg, lang, (err, translation) => {
if(err) console.error(err);
res.status(200).send(translation);
})
}
- 18. Cloud OnAir
軽量ETL: Cloud Storage イベントのトリガー
Cloud Storage
Cloud Storage
Cloud Functions
Cloud Functions
Cloud Vision API
サムネイル
ラベル
- 19. Cloud OnAir
画像分析
exports.analyzeImage = (event) => {
const file = event.data;
const context = event.context;
return visionApiClient
.labelDetection(`gs://${file.bucket}/${file.name}`)
.then(results => {
results[0].labelAnnotations.forEach(console.log);
})
.catch(err => { console.error('ERROR:', err); });
};
- 26. Cloud OnAir
複数の機能をつなげる: Pub/ Sub を使いましょう
高信頼性のリアルタイム メッセージ
Cloud Pub/Sub
アプリケーション間で信頼性のある多対多の
非同期メッセージングを提供
処理するパイプラインにデータを送り込み、
他のアプリ、デバイス、Google Cloud Services に出力
- 27. Cloud OnAir
パブリッシャー と サブスクライバー
サブスクライバー C
パブリッシャー
トピック
メッセージ
サブスクリプション A サブスクリプション B サブスクリプション C
サブスクライバー B
Pub/Sub
- 30. Cloud OnAir
Dataflow とは
● 様々なデータ処理パターンの実行に対応した
マネージド サービス
● 大量データに対する ETL(Extract, Transform, Load)
処理を実行する
● バッチ、ストリーミングの両方のモデルに適用可能
● Apache Beam のプログラミングモデルを利用し、
開発を行う
- 31. Cloud OnAir
監視とエラー報告
ログ
console.log() ⇒ Stackdriverでのログ
捕捉されない例外 ⇒ Stackdriver Errors
Log にアクセスする方法 :
gcloud ( CLI )
Cloud Console ( UI )
REST API
監視
デフォルトで Essential telemetry がレポートされる :
● 実行回数
● 実行時間
● メモリ使用
- 38. Cloud OnAir
環境変数の設定
const mysql = require('mysql');
const pool = mysql.createPool({
connectionLimit : 1,
socketPath: '/cloudsql/myproject:us-central1:mydatabase',
user: 'root',
password: 'ItIsASecret',
database: production'
});
...
- 40. Cloud OnAir
IAM によるアクセス制御
IAM を使用してユーザーのアクセス制御
● 開発者
● 他の Cloud Functions 或いは GCP サービス
● エンドユーザー(Google Sign in)
個別 Cloud Functions に IAM ポリシーを設定可能
$ gcloud functions add-iam-policy-binding myFunc2
--member='myFunc1@projectid.iam.gserviceaccoumnt.com'
--role='roles/cloudfunctions.invoker'
myFunc1() myFunc2()
不正アクセス