GCPでもServerless!!

Serverless Meetup Tokyo #15

https://serverless.connpass.com/event/162099

#serverlesstokyo

アジェンダ

● GCP とは

● GCP における serverless とは

● GCP で serverless をおこなうメリットとは

● GCP で serverless をはじめてみよう

● まとめ

2
Self introduction

3
Hello ;)

自己紹介

person:

name: “Toru Igarashi”

twitter: “@iganari_”

position:

company: “Cloud Ace Inc.”

role: “SRE”

skills: [ Terraform, Ansible, Kubernetes ]

cloud: [ GCP, Azure ] 

favorites: “Infrastructure as Code”

blood-donation: “111”
 4
注意事項

この発表は個人の意見であり、

所属する会社及び団体を

代表する発言ではございません

5
What’s GCP

6
GCP とは

GCP とは

● Google がクラウド上で提供しているサービス群の総称

○ GCP = Google Cloud Platform

● Google が提供しているサービスと同じプラットフォームを利用している

○ Google 検索、YouTube、Gmail ...etc

● ロケーション (リソースをホスト出来る単位)

○ 地理的なロケーション = リージョン

■ リージョン = 20 個

■ 東京、大阪、ダラス、モンクスコーナー

○ リージョン内で分かれる単位 = ゾーン

■ ゾーン数 = 61 個

■ 各リージョンに1つ以上のゾーン (a、b、c、d)

■ 大抵は各リージョンに3 つ以上ある
 7
GCP の主なサービス

● Compute
○ Compute Engine
○ App Engine
○ Kubernetes Engine
● Storage
○ Cloud Storage
○ Cloud SQL
○ Cloud Datastore

● BigData
○ BigQuery
○ Cloud Dataflow
○ Cloud Pub/Sub
8
Serverless on GCP

9
GCP における serverless とは

GCP の serverless

10ref. https://cloud.google.com/serverless/whitepaper/ 

Serverless computing

● Compute

○ Cloud Functions

○ App Engine

○ Cloud Run

● Data analytics

○ BigQuery

○ Data Studio

● DevOps

○ Cloud Build

○ Stackdriver

○ Cloud Scheduler

○ Cloud Identity and Access Management 

11
● Messaging

○ Cloud Pub/Sub

○ Cloud Tasks

● Database & storage

○ Cloud Firestore

○ Cloud Storage

● ML & AI

○ AI Platform

○ Cloud AutoML

● Smart assistants

○ Google Assistant SDK 

○ Dialogflow

ref. https://cloud.google.com/serverless/ 

Serverless computing

● Compute

○ Cloud Functions

○ App Engine

○ Cloud Run

● Data analytics

○ BigQuery

○ Data Studio

● DevOps

○ Cloud Build

○ Stackdriver

○ Cloud Scheduler

○ Cloud Identity and Access Management 

12
● Messaging

○ Cloud Pub/Sub

○ Cloud Tasks

● Database & storage

○ Cloud Firestore

○ Cloud Storage

● ML & AI

○ AI Platform

○ Cloud AutoML

● Smart assistants

○ Google Assistant SDK 

○ Dialogflow

ref. https://cloud.google.com/serverless/ 

Cloud Functions

イベント ドリブンなサーバーレス コンピューティング プラットフォーム
13ref. https://cloud.google.com/functions/docs/ 

● Function as a Service (FaaS)

○ サーバ管理が不要

○ コードを実行した時間分のみの課金(100ms単位)

○ 自動スケーリング

○ イベントをトリガーとしてコードを実行可能

○ 他の GCP のサービスとの連携が容易

○ 様々なランタイムが使用可能

Cloud Functions

イベント ドリブンなサーバーレス コンピューティング プラットフォーム
14ref. https://cloud.google.com/functions/docs/ 

● Function as a Service (FaaS)

○ サーバ管理が不要

○ コードを実行した時間分のみの課金(100ms単位)

○ 自動スケーリング

○ イベントをトリガーとしてコードを実行可能

○ 他の GCP のサービスとの連携が容易

○ 様々なランタイムが使用可能

AWS だと AWS Lambda

Azure だと Azure Functions

をイメージして下さい!! 

App Engine

フルマネージド型のサーバーレスなプラットフォーム上で、高度なスケーラビリティを備え
たアプリケーションをビルド

15ref. https://cloud.google.com/appengine/docs/ 

● Platform as a Service (PaaS)

○ 様々な言語で実行可能

○ フルマネージド

○ アプリケーションのバージョニング

○ トラフィック分割

○ アプリケーションのセキュリティ

○ モニタリング、ロギング、診断

App Engine

フルマネージド型のサーバーレスなプラットフォーム上で、高度なスケーラビリティを備え
たアプリケーションをビルド

16ref. https://cloud.google.com/appengine/docs/ 

● Platform as a Service (PaaS)

○ 様々な言語で実行可能

○ フルマネージド

○ アプリケーションのバージョニング

○ トラフィック分割

○ アプリケーションのセキュリティ

○ モニタリング、ロギング、診断

AWS だと

AWS Elastic Beanstalk

Azure だと App Service 

をイメージして下さい!! 

Cloud Run

フルマネージド環境または Anthos でステートレス コンテナを実行します。

17ref. https://cloud.google.com/run/docs/ 

● Knative (Kubernetes-based platform)

○ コンテナ エコシステムと親和性の高い

○ 迅速な自動スケーリング

○ 冗長性

○ フルマネージド / for Anthos

■ Cloud Run for Anthos on Google Cloud

Cloud Run

フルマネージド環境または Anthos でステートレス コンテナを実行します。

18ref. https://cloud.google.com/run/docs/ 

● Knative (Kubernetes-based platform)

○ コンテナ エコシステムと親和性の高い

○ 迅速な自動スケーリング

○ 冗長性

○ フルマネージド / for Anthos

■ Cloud Run for Anthos on Google Cloud

フルマネージドな Knative はGCP
のみ!!

※ 2020年1月の時点

DevOps with serverless

● CI/CD

○ Cloud Build

○ GCP 内で実行される CI/CD ツール 

● Monitoring

○ Stackdriver Monitoring 

○ フルマネージドなモニタリングツール 

● Security

○ Cloud Identity and Access Management (IAM) 

○ GCP 上における権限の管理を行える 

● Scheduler

○ Cloud Scheduler

○ フルマネージドな cron ジョブスケジューラ 

19ref. https://cloud.google.com/serverless/ 

What is the advantage?

20
GCP で serverless をおこなうメリットとは

GCP で serverless を使うメリット

● Google が提供しているサービスと同じプラットフォームを利用している

○ 瞬時に数十億件の検索結果を返し、YouTube 動画を月に 60 億時間再生し
て、10 億人に及ぶ Gmail ユーザーにストレージを提供している

● 初期導入時のコストが(比較的)低コストではじめられる

● (他のクラウドと比べると) 事例や記事が少ないので先駆者となれる(かも?)

● コンテナに関しても高い技術力を持っている

○ serverless を支えるのはコンテナの技術!!

21ref. https://cloud.google.com/why-google-cloud/ 

個人的に思うデメリット

情報が少ない

● 公式ドキュメントはある程度知識があれば、十分な情報量だけど…

○ 開発初期の場合、GCP に直接聞ける場というのもあまりない

● コミュニティやカンファレンスでの発表も少ない

○ 個人の観測範囲では...

● 勉強会などの頻度も他のクラウドと比べると少ない

○ 日本においては...

● 公式ドキュメントが OSS で公開されていない

○ 英語で読む癖をつけるしかない

22
First step of serverless

on GCP

23
GCP で serverless をはじめてみよう

どこから始めたらいいか

● とにかく手を動かしたい人向け

○ GitHub にサンプルコードがある

● まずは雰囲気や成り立ちを理解したい人向け

○ ハンズオンや Google が推奨しているサービスがある

● 公式ドキュメント

○ コンポーネント毎に簡潔にまとまっているので読みやすい

○ 公式ドキュメントが他のクラウドと違い、OSS で公開されていないので、極力英
語で読んで下さい

■ 翻訳が追いついていないことが結構ある

24
手っ取り早く始めてみる

● Cloud Functions

○ https://cloud.google.com/functions/docs/quickstarts

● App Engine Standard Environment (Go, PHP, Java, Python, Node.js, Ruby)

○ Node.js

■ https://cloud.google.com/appengine/docs/standard/nodejs/quickstart

○ Go 1.12

■ https://cloud.google.com/appengine/docs/standard/go/quickstart

● App Engine Flexible Environment (.NET, More language...)

○ .NET

■ https://cloud.google.com/appengine/docs/flexible/dotnet/

● Cloud Run

○ https://cloud.google.com/run/docs/quickstarts


 25
動画やハンズオン形式で雰囲気を掴みたい

● Google Cloud Platform Online Handson

○ https://inthecloud.withgoogle.com/gcp-online-handson/index.html

○ Google 公式のハンズオンサイト

● Coursera

○ https://www.coursera.org/

○ 動画で GCP を学ぶことが出来る

● Qwiklabs

○ https://www.qwiklabs.com/

○ ハンズオンで GCP を学ぶことが出来る

26
まとめ

● GCP とは

○ Google がクラウド上で提供しているサービス群の総称

● GCP における serverless とは

○ GCP 上でアプリケーション開発のみに専念する機構

● GCP で serverless をおこなうメリットとは

○ Google の技術力の一部にあやかることが出来る

● GCP で serverless をはじめるには

○ 動画やハンズオンをやってみしょう!!

27
Enjoy serverless

on GCP !! ;)

28

GCP でも Serverless!!

  • 1.
    GCPでもServerless!!
 Serverless Meetup Tokyo#15
 https://serverless.connpass.com/event/162099
 #serverlesstokyo

  • 2.
    アジェンダ
 ● GCP とは
 ●GCP における serverless とは
 ● GCP で serverless をおこなうメリットとは
 ● GCP で serverless をはじめてみよう
 ● まとめ
 2
  • 3.
  • 4.
    自己紹介
 person:
 name: “Toru Igarashi”
 twitter:“@iganari_”
 position:
 company: “Cloud Ace Inc.”
 role: “SRE”
 skills: [ Terraform, Ansible, Kubernetes ]
 cloud: [ GCP, Azure ] 
 favorites: “Infrastructure as Code”
 blood-donation: “111”
 4
  • 5.
  • 6.
  • 7.
    GCP とは
 ● Googleがクラウド上で提供しているサービス群の総称
 ○ GCP = Google Cloud Platform
 ● Google が提供しているサービスと同じプラットフォームを利用している
 ○ Google 検索、YouTube、Gmail ...etc
 ● ロケーション (リソースをホスト出来る単位)
 ○ 地理的なロケーション = リージョン
 ■ リージョン = 20 個
 ■ 東京、大阪、ダラス、モンクスコーナー
 ○ リージョン内で分かれる単位 = ゾーン
 ■ ゾーン数 = 61 個
 ■ 各リージョンに1つ以上のゾーン (a、b、c、d)
 ■ 大抵は各リージョンに3 つ以上ある
 7
  • 8.
    GCP の主なサービス
 ● Compute ○Compute Engine ○ App Engine ○ Kubernetes Engine ● Storage ○ Cloud Storage ○ Cloud SQL ○ Cloud Datastore
 ● BigData ○ BigQuery ○ Cloud Dataflow ○ Cloud Pub/Sub 8
  • 9.
    Serverless on GCP
 9 GCPにおける serverless とは

  • 10.
    GCP の serverless
 10ref.https://cloud.google.com/serverless/whitepaper/ 

  • 11.
    Serverless computing
 ● Compute
 ○Cloud Functions
 ○ App Engine
 ○ Cloud Run
 ● Data analytics
 ○ BigQuery
 ○ Data Studio
 ● DevOps
 ○ Cloud Build
 ○ Stackdriver
 ○ Cloud Scheduler
 ○ Cloud Identity and Access Management 
 11 ● Messaging
 ○ Cloud Pub/Sub
 ○ Cloud Tasks
 ● Database & storage
 ○ Cloud Firestore
 ○ Cloud Storage
 ● ML & AI
 ○ AI Platform
 ○ Cloud AutoML
 ● Smart assistants
 ○ Google Assistant SDK 
 ○ Dialogflow
 ref. https://cloud.google.com/serverless/ 

  • 12.
    Serverless computing
 ● Compute
 ○Cloud Functions
 ○ App Engine
 ○ Cloud Run
 ● Data analytics
 ○ BigQuery
 ○ Data Studio
 ● DevOps
 ○ Cloud Build
 ○ Stackdriver
 ○ Cloud Scheduler
 ○ Cloud Identity and Access Management 
 12 ● Messaging
 ○ Cloud Pub/Sub
 ○ Cloud Tasks
 ● Database & storage
 ○ Cloud Firestore
 ○ Cloud Storage
 ● ML & AI
 ○ AI Platform
 ○ Cloud AutoML
 ● Smart assistants
 ○ Google Assistant SDK 
 ○ Dialogflow
 ref. https://cloud.google.com/serverless/ 

  • 13.
    Cloud Functions
 イベント ドリブンなサーバーレスコンピューティング プラットフォーム 13ref. https://cloud.google.com/functions/docs/ 
 ● Function as a Service (FaaS)
 ○ サーバ管理が不要
 ○ コードを実行した時間分のみの課金(100ms単位)
 ○ 自動スケーリング
 ○ イベントをトリガーとしてコードを実行可能
 ○ 他の GCP のサービスとの連携が容易
 ○ 様々なランタイムが使用可能

  • 14.
    Cloud Functions
 イベント ドリブンなサーバーレスコンピューティング プラットフォーム 14ref. https://cloud.google.com/functions/docs/ 
 ● Function as a Service (FaaS)
 ○ サーバ管理が不要
 ○ コードを実行した時間分のみの課金(100ms単位)
 ○ 自動スケーリング
 ○ イベントをトリガーとしてコードを実行可能
 ○ 他の GCP のサービスとの連携が容易
 ○ 様々なランタイムが使用可能
 AWS だと AWS Lambda
 Azure だと Azure Functions
 をイメージして下さい!! 

  • 15.
    App Engine
 フルマネージド型のサーバーレスなプラットフォーム上で、高度なスケーラビリティを備え たアプリケーションをビルド
 15ref. https://cloud.google.com/appengine/docs/
 ● Platform as a Service (PaaS)
 ○ 様々な言語で実行可能
 ○ フルマネージド
 ○ アプリケーションのバージョニング
 ○ トラフィック分割
 ○ アプリケーションのセキュリティ
 ○ モニタリング、ロギング、診断

  • 16.
    App Engine
 フルマネージド型のサーバーレスなプラットフォーム上で、高度なスケーラビリティを備え たアプリケーションをビルド
 16ref. https://cloud.google.com/appengine/docs/
 ● Platform as a Service (PaaS)
 ○ 様々な言語で実行可能
 ○ フルマネージド
 ○ アプリケーションのバージョニング
 ○ トラフィック分割
 ○ アプリケーションのセキュリティ
 ○ モニタリング、ロギング、診断
 AWS だと
 AWS Elastic Beanstalk
 Azure だと App Service 
 をイメージして下さい!! 

  • 17.
    Cloud Run
 フルマネージド環境または Anthosでステートレス コンテナを実行します。
 17ref. https://cloud.google.com/run/docs/ 
 ● Knative (Kubernetes-based platform)
 ○ コンテナ エコシステムと親和性の高い
 ○ 迅速な自動スケーリング
 ○ 冗長性
 ○ フルマネージド / for Anthos
 ■ Cloud Run for Anthos on Google Cloud

  • 18.
    Cloud Run
 フルマネージド環境または Anthosでステートレス コンテナを実行します。
 18ref. https://cloud.google.com/run/docs/ 
 ● Knative (Kubernetes-based platform)
 ○ コンテナ エコシステムと親和性の高い
 ○ 迅速な自動スケーリング
 ○ 冗長性
 ○ フルマネージド / for Anthos
 ■ Cloud Run for Anthos on Google Cloud
 フルマネージドな Knative はGCP のみ!!
 ※ 2020年1月の時点

  • 19.
    DevOps with serverless
 ●CI/CD
 ○ Cloud Build
 ○ GCP 内で実行される CI/CD ツール 
 ● Monitoring
 ○ Stackdriver Monitoring 
 ○ フルマネージドなモニタリングツール 
 ● Security
 ○ Cloud Identity and Access Management (IAM) 
 ○ GCP 上における権限の管理を行える 
 ● Scheduler
 ○ Cloud Scheduler
 ○ フルマネージドな cron ジョブスケジューラ 
 19ref. https://cloud.google.com/serverless/ 

  • 20.
    What is theadvantage?
 20 GCP で serverless をおこなうメリットとは

  • 21.
    GCP で serverlessを使うメリット
 ● Google が提供しているサービスと同じプラットフォームを利用している
 ○ 瞬時に数十億件の検索結果を返し、YouTube 動画を月に 60 億時間再生し て、10 億人に及ぶ Gmail ユーザーにストレージを提供している
 ● 初期導入時のコストが(比較的)低コストではじめられる
 ● (他のクラウドと比べると) 事例や記事が少ないので先駆者となれる(かも?)
 ● コンテナに関しても高い技術力を持っている
 ○ serverless を支えるのはコンテナの技術!!
 21ref. https://cloud.google.com/why-google-cloud/ 

  • 22.
    個人的に思うデメリット
 情報が少ない
 ● 公式ドキュメントはある程度知識があれば、十分な情報量だけど…
 ○ 開発初期の場合、GCPに直接聞ける場というのもあまりない
 ● コミュニティやカンファレンスでの発表も少ない
 ○ 個人の観測範囲では...
 ● 勉強会などの頻度も他のクラウドと比べると少ない
 ○ 日本においては...
 ● 公式ドキュメントが OSS で公開されていない
 ○ 英語で読む癖をつけるしかない
 22
  • 23.
    First step ofserverless
 on GCP
 23 GCP で serverless をはじめてみよう

  • 24.
    どこから始めたらいいか
 ● とにかく手を動かしたい人向け
 ○ GitHubにサンプルコードがある
 ● まずは雰囲気や成り立ちを理解したい人向け
 ○ ハンズオンや Google が推奨しているサービスがある
 ● 公式ドキュメント
 ○ コンポーネント毎に簡潔にまとまっているので読みやすい
 ○ 公式ドキュメントが他のクラウドと違い、OSS で公開されていないので、極力英 語で読んで下さい
 ■ 翻訳が追いついていないことが結構ある
 24
  • 25.
    手っ取り早く始めてみる
 ● Cloud Functions
 ○https://cloud.google.com/functions/docs/quickstarts
 ● App Engine Standard Environment (Go, PHP, Java, Python, Node.js, Ruby)
 ○ Node.js
 ■ https://cloud.google.com/appengine/docs/standard/nodejs/quickstart
 ○ Go 1.12
 ■ https://cloud.google.com/appengine/docs/standard/go/quickstart
 ● App Engine Flexible Environment (.NET, More language...)
 ○ .NET
 ■ https://cloud.google.com/appengine/docs/flexible/dotnet/
 ● Cloud Run
 ○ https://cloud.google.com/run/docs/quickstarts
 
 25
  • 26.
    動画やハンズオン形式で雰囲気を掴みたい
 ● Google CloudPlatform Online Handson
 ○ https://inthecloud.withgoogle.com/gcp-online-handson/index.html
 ○ Google 公式のハンズオンサイト
 ● Coursera
 ○ https://www.coursera.org/
 ○ 動画で GCP を学ぶことが出来る
 ● Qwiklabs
 ○ https://www.qwiklabs.com/
 ○ ハンズオンで GCP を学ぶことが出来る
 26
  • 27.
    まとめ
 ● GCP とは
 ○Google がクラウド上で提供しているサービス群の総称
 ● GCP における serverless とは
 ○ GCP 上でアプリケーション開発のみに専念する機構
 ● GCP で serverless をおこなうメリットとは
 ○ Google の技術力の一部にあやかることが出来る
 ● GCP で serverless をはじめるには
 ○ 動画やハンズオンをやってみしょう!!
 27
  • 28.