Slide 1

Slide 1 text

API Gateway Kuma Arakawa Google Developers Expert (Cloud / Google Workspace)

Slide 2

Slide 2 text

Kuma Arakawa twitter: @kumakumakkk https://kuma.bio

Slide 3

Slide 3 text

1. Google Cloud Buildpacks 2. Cloud Run (managed) 3. API Gateway 今日お話すること

Slide 4

Slide 4 text

Google Cloud Buildpacks

Slide 5

Slide 5 text

FROM ubuntu:14.10 ENV SRC_DIR=/go/src/github.com/someprogram ENV GOBIN=/go/bin WORKDIR $GOBIN ADD . $SRC_DIR RUN cd /go/src; RUN go install github.com/someprogram/; ENTRYPOINT ["./someprogram"] EXPOSE 8080

Slide 6

Slide 6 text

FROM ubuntu:14.10 ENV SRC_DIR=/go/src/github.com/someprogram ENV GOBIN=/go/bin WORKDIR $GOBIN ADD . $SRC_DIR RUN cd /go/src; RUN go install github.com/someprogram/; ENTRYPOINT ["./someprogram"] EXPOSE 8080 数百の脆弱性

Slide 7

Slide 7 text

既知の脆弱性が含まれるDockerfileの割合 44% Source: The state of open source security report 2019 by snyt

Slide 8

Slide 8 text

Demo1

Slide 9

Slide 9 text

Buildpacks create containers without a dockerfile. Source code OCI Container

Slide 10

Slide 10 text

1. CNCF Cloud Native Sandbox Project 2. Dockerfileのメンテからの開放 3. コンテナに移行しやすい環境を簡単に構築 Buildpacks

Slide 11

Slide 11 text

1. AppEngine, Functions → コンテナ化 2. Cloud Buildsなど多数のGCPプロダクトが対応 3. ベンダーロックからの開放 Google Cloud Buildpacks https://github.com/GoogleCloudPlatform/buildpacks

Slide 12

Slide 12 text

API Gateway

Slide 13

Slide 13 text

1. Goで書かれたアプリの挙動をローカルで確認 2. Cloud BuildsとBuildpacksを使ってコンテナ化 3. 作成したコンテナをCloud Runにデプロイ デモ振り返り

Slide 14

Slide 14 text

クライアント Customers API

Slide 15

Slide 15 text

クライアント OrderHistory API Customers API OderDetail API

Slide 16

Slide 16 text

クライアント OrderHistory API Customers API OderDetail API

Slide 17

Slide 17 text

クライアント OrderHistory API Customers API OderDetail API API Gateway (Open API)

Slide 18

Slide 18 text

Demo2

Slide 19

Slide 19 text

1. OPENAPI Specを定義 2. x-google-backend でバックエンドにルーティング 3. APIを作成しGatewayを作成 デモ振り返り

Slide 20

Slide 20 text

クライアント OrderHistory API Customers API OderDetail API API Gateway (Open API)

Slide 21

Slide 21 text

クライアント OrderHistory API Customers API OderDetail API API Gateway (Open API) API_KEY

Slide 22

Slide 22 text

Demo3

Slide 23

Slide 23 text

クライアント OrderHistory API Customers API OderDetail API API Gateway (Open API)

Slide 24

Slide 24 text

securityDefinitions: your_custom_auth_id: authorizationUrl: "" flow: "implicit" type: "oauth2" x-google-issuer: "issuer of the token" x-google-jwks_uri: "url to the public key" x-google-audiences: "YOUR-CLIENT-ID" security: - your_custom_auth_id: []

Slide 25

Slide 25 text

securityDefinitions: firebase: authorizationUrl: "" flow: "implicit" type: "oauth2" x-google-issuer: "https://securetoken.google.com/YOUR-PROJECT-ID" x-google-jwks_uri: "https://www.googleapis.com/service_accounts/v1/metadata/x509/[email protected]" x-google-audiences: "YOUR-PROJECT-ID" security: - firebase: []

Slide 26

Slide 26 text

考察

Slide 27

Slide 27 text

HTTP(S) Load Balancer

Slide 28

Slide 28 text

https://www.youtube.com/watch?v=7FoSrWEDx-g

Slide 29

Slide 29 text

1. API GatewayはOPENAPIに準拠している 2. 認証周りをバックエンドから切り離せる 3. モニタリングも楽 4. GCLBとの連携も今後出てきそう 考察

Slide 30

Slide 30 text

No content

Slide 31

Slide 31 text

まとめ

Slide 32

Slide 32 text

1. Buildpacksは積極的に使っていこう 2. jwt/OPENAPIを使っている場合はAPI Gatewayは 有効 3. 今後の発展に期待!!!!!! まとめ