View
413
Download
0
Category
Preview:
Citation preview
Serverlessで行こう!Google Cloud Platformで簡単Serverless
GDG TokyoJan. 16, 2018Hayato Yoshikawa
Hi there!
● Hayato Yoshikawa @hayatoy @hayatoy82
● Publication!「Google Cloud Platformではじめる機
械学習と深層学習」という本を書きまし
た。
Serverlessって?
サーバー(インフラ)を意識しないでシステムが作れちゃう
つまり・・・
機能だけ作ればOK!な環境
*https://cloud.google.com/appengine/
例題Hello World!を世界に。
Hello World! を表示するプログラムを書いてください。
Hello World! を1億人が表示できる
プログラムを書いてください。
何が難しいのか?
● Hello World! を表示 機能
● OS管理● HTTP サーバ● ロードバランサー● スケーリングetc etc..
インフラ
何が難しいのか?
● Hello World! を表示 機能
● OS管理● HTTP サーバ● ロードバランサー● スケーリングetc etc..
インフラここ、メンドクサイですよね
Serverlessは、このメンドクサイところが全部オートなのです!
Cloud Functions
exports.helloWorld = (req, res) => { res.status(200).send('Hello World!');};
Hello Worldの例
3行のコードで、1億人(それ以上!)に。
Functionの作り方
名前
メモリサイズ
何をトリガにするか
HTTPトリガの場合、そのURL
ソースのアップ方法
Functionの作り方(続き)
ソースコード(インラインエディタを使うとその場で編集できる)
実行される関数名
ボタン押しておしまい。
Functionの実行方法 (Ajax)
$.ajax({ url: "https://xxx.cloudfunctions.net/function-1", ...}).done(function(res) { console.log(res);});
Functionの実行方法 (Android)
OkHttpClient client = new OkHttpClient();
String run(String url) throws IOException { Request request = new Request.Builder() .url(url) .build();
Response response = client.newCall(request).execute(); return response.body().string();}
var bigquery = require('@google-cloud/bigquery')({ projectId = 'PROJECTID'});
exports.writetobq = function (req, res){ var dataset = bigquery.dataset('DATASET'); var table = dataset.table('TABLE'); table.insert({ foo: "hoge", bar: "fuga" }).then(() => { /// });};
おまけ:BigQueryに書き込もう
Serverlessな仲間たち
GCPのServerlessプロダクト(一例)
App Engine BigQuery
Cloud Dataflow
Cloud Machine Learning
もっと規模の大きいシステムを組みたい!
ビッグデータ解析したい!
大規模にデータの処理をしたい!
機械学習の学習と推論をスケーラブルにしたい!
*下2つは若干インフラが見え隠れしますが・・
Thank you!
Recommended