Serverless on GCP

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つは若干インフラが見え隠れしますが・・

GCPをはじめよう

https://cloud.google.com/

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

ここをポチる

Thank you!

Recommended