21
Serverlessで行こう! Google Cloud Platformで簡単Serverless GDG Tokyo Jan. 16, 2018 Hayato Yoshikawa

Serverless on GCP

Embed Size (px)

Citation preview

Page 1: Serverless on GCP

Serverlessで行こう!Google Cloud Platformで簡単Serverless

GDG TokyoJan. 16, 2018Hayato Yoshikawa

Page 2: Serverless on GCP

Hi there!

● Hayato Yoshikawa @hayatoy @hayatoy82

● Publication!「Google Cloud Platformではじめる機

械学習と深層学習」という本を書きまし

た。

Page 3: Serverless on GCP

Serverlessって?

Page 4: Serverless on GCP

サーバー(インフラ)を意識しないでシステムが作れちゃう

つまり・・・

機能だけ作ればOK!な環境

*https://cloud.google.com/appengine/

Page 5: Serverless on GCP

例題Hello World!を世界に。

Page 6: Serverless on GCP

Hello World! を表示するプログラムを書いてください。

Page 7: Serverless on GCP

Hello World! を1億人が表示できる

プログラムを書いてください。

Page 8: Serverless on GCP

何が難しいのか?

● Hello World! を表示 機能

● OS管理● HTTP サーバ● ロードバランサー● スケーリングetc etc..

インフラ

Page 9: Serverless on GCP

何が難しいのか?

● Hello World! を表示 機能

● OS管理● HTTP サーバ● ロードバランサー● スケーリングetc etc..

インフラここ、メンドクサイですよね

Page 10: Serverless on GCP

Serverlessは、このメンドクサイところが全部オートなのです!

Page 11: Serverless on GCP

Cloud Functions

Page 12: Serverless on GCP

exports.helloWorld = (req, res) => { res.status(200).send('Hello World!');};

Hello Worldの例

3行のコードで、1億人(それ以上!)に。

Page 13: Serverless on GCP

Functionの作り方

名前

メモリサイズ

何をトリガにするか

HTTPトリガの場合、そのURL

ソースのアップ方法

Page 14: Serverless on GCP

Functionの作り方(続き)

ソースコード(インラインエディタを使うとその場で編集できる)

実行される関数名

ボタン押しておしまい。

Page 15: Serverless on GCP

Functionの実行方法 (Ajax)

$.ajax({ url: "https://xxx.cloudfunctions.net/function-1", ...}).done(function(res) { console.log(res);});

Page 16: Serverless on GCP

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();}

Page 17: Serverless on GCP

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に書き込もう

Page 18: Serverless on GCP

Serverlessな仲間たち

Page 19: Serverless on GCP

GCPのServerlessプロダクト(一例)

App Engine BigQuery

Cloud Dataflow

Cloud Machine Learning

もっと規模の大きいシステムを組みたい!

ビッグデータ解析したい!

大規模にデータの処理をしたい!

機械学習の学習と推論をスケーラブルにしたい!

*下2つは若干インフラが見え隠れしますが・・

Page 20: Serverless on GCP

GCPをはじめよう

https://cloud.google.com/

300ドルのクレジットがついてくるよ!

ここをポチる

Page 21: Serverless on GCP

Thank you!