Slide 1

Slide 1 text

Cloud Run に憧れて
 Google Cloud を推進している話
 2023/6/16
 CX事業本部Delivery部サーバーサイドチーム 田中孝明


Slide 2

Slide 2 text

2 ● CX事業本部 Delivery部 サーバーサイドチーム・チームマネージャー
 ● 福岡オフィス所属
 ● 2023 Japan AWS All AWS Certifications Engineers
 ● 2022 APN ALL AWS Certifications Engineer
 ● 2021 APN AWS Top Engineer
 ● Google Cloud Partner Top Engineer 2023
 ● サウナ・スパ プロフェッショナル
 田中 孝明 (Takaaki TANAKA) こーめい


Slide 3

Slide 3 text

3 注意事項 前提 • CX事業本部は AWS を主軸に使う方針です • マルチクラウドを推奨する内容ではないです • 個人の見解です • 実運用していないものが含まれています

Slide 4

Slide 4 text

4 この登壇に関するモチベーション https://cloud.google.com/blog/topics/hybrid-cloud/the-career-benef its-of-multicloud-fluency?hl=en

Slide 5

Slide 5 text

5 複数のクラウドでスキルを構築するケース 他のクラウドを学ぶモチベーション • クラウドの共通言語を学ぶことで、他のクラウドを学ぶときの学 習時間を短縮する • プライマリクラウドを深く掘り下げた上で、セカンダリクラウドを学 ぶ • 裏側の技術を学ぶのが面白い

Slide 6

Slide 6 text

6 Google Cloud を学ぶモチベーション 裏側を支える技術が面白い • Borg: クラスタマネージャ • Maglev: ロードバランサー • Slicer: オートスケール • Jupiter: データセンターのネットワーク • GFS: クラスタレベルのファイルシステム

Slide 7

Slide 7 text

7 ソリューションデザインパターン これの時はこう • ユースケースごとに、よく 使われるアーキテクチャ が取り上げられている • SAP / 医療 / ゲーム(FPS / MMO) https://www.gc-solution-design-pattern.jp/

Slide 8

Slide 8 text

8 二刀流エンジニアを目指す方向けの資料 二刀流エンジニア • 他のクラウド (AWS / Azure) との 違いが赤裸々に公開されている • インフラ編・データベース編は必 見 https://cloudonair.withgoogle.com/events/jump-start-22/resources

Slide 9

Slide 9 text

9 Google Cloud Partner Top Engineer について https://cloud.google.com/blog/ja/topics/partners/partner-top-engineer-2023-award-winners

Slide 10

Slide 10 text

10 Google Cloud Partner Top Engineer を目指そう https://cloud.google.com/blog/ja/topics/partners/partner-top-engineer-2023-award-winners ※来年もあるかはわからないので 注意

Slide 11

Slide 11 text

11 話す内容 話す内容 • Cloud Run について • 第 2 世代について • CPU ブーストについて • Google Cloud の社内事情(オフレコ)

Slide 12

Slide 12 text

12 Cloud Run について

Slide 13

Slide 13 text

13 Cloud Run の概要 サーバーレスコンテナ実行環境 • コンテナを秒単位でデプロイできるフルマネージド のサーバーレスコンピューティングプラットフォー ム • HTTPリクエストを受け取るとコンテナを起動して実 行し、リクエストが完了するとコンテナを停止する (起動数の設定による) • Cloud Functions のバックエンドにも採用されてい る

Slide 14

Slide 14 text

14 Cloud Run の事例 https://classmethod.jp/cases/zenn/

Slide 15

Slide 15 text

15 Cloud Run の事例 https://classmethod.jp/cases/zenn/

Slide 16

Slide 16 text

16 Zenn の Google Cloud Japan ブログ https://zenn.dev/p/google_cloud_jp

Slide 17

Slide 17 text

17 Cloud Run はどうやって使うの 簡単にデプロイ • Github と Cloud Build を連携し、コンテナ イメージをビルド • ビルドしたコンテナイメージを Artifact Registry に配置 • コンテナイメージを指定してデプロイ

Slide 18

Slide 18 text

18 Cloud Run はどうやって使うの 簡単にデプロイ • Github と Cloud Build を連携し、コンテナ イメージをビルド • ビルドしたコンテナイメージを Artifact Registry に配置 • コンテナイメージを指定してデプロイ

Slide 19

Slide 19 text

19 Cloud Run はどうやって使うの 簡単にデプロイ

Slide 20

Slide 20 text

20 Cloud Run のオプション 柔軟なオプション • 最小インスタンス数を調整することで、必要なと きに起動、スケールさせるような設定が柔軟にで きる • AlwaysCPU などで常にCPUを割り当てることで、 起動時間を改善する

Slide 21

Slide 21 text

21 第 2 世代 について

Slide 22

Slide 22 text

22 Cloud Run 第 2 世代 Linux の完全互換性を実現 • ついにGA • さまざまなパフォーマンス改善(CPU・ネットワーク) • サービスとジョブの使い分けることでアプリケーションにバリエー ションを持たせることが可能に • 最大起動時間増加 • Eventarc に対応しているサービスと連携

Slide 23

Slide 23 text

23 Cloud Run 第 2 世代 Cloud Run Jobs • スクリプト、バッチなどのスケジュールジョブ向け • 1 Job = N Task / 1 Task = 1 Container Instance

Slide 24

Slide 24 text

24 Cloud Run 第 2 世代 Cloud Run Jobs の使い分け • 1つの Task を実行 • 複数の Task を直列に実行 • 複数の Task を並列に実行

Slide 25

Slide 25 text

25 CPU ブースト について

Slide 26

Slide 26 text

26 公式ブログ Start up CPU boost (Preview) • Cloud Run / Cloud Functions 第二世代向け https://cloud.google.com/blog/ja/products/serverless/ann ouncing-startup-cpu-boost-for-cloud-run--cloud-functions

Slide 27

Slide 27 text

27 CPUブースト Start up CPU boost (Preview) • Cloud Run / Cloud Functions 第二世代向け • コールドスタート時間を短縮し、より迅速にリクエストを処理でき るようになる • 詳しい挙動については調べきれてないです

Slide 28

Slide 28 text

28 CPUブースト 起動時のCPUブースト • 起動時により多くのCPUがコンテナに動的に割り当てられる • Java (SpringBoot / GraalVM) でより大きな高速化がみられる

Slide 29

Slide 29 text

29 CPUブースト Cloud Run 第 2 世代 • コマンドライン or コンソール画面から有効化 • Cloud Functions 第2 世代 • デフォルトで有効

Slide 30

Slide 30 text

30 CPUブースト CPUブーストなし CPUブーストあり • デフォルトで有効

Slide 31

Slide 31 text

31 検証記事 Start up CPU boost (Preview) • Cloud Run / Cloud Functions 第二世代向け • • 広い門の下には、この男のほかに誰もいない。 https://zenn.dev/cloud_ace/articles/bd95501cb0cd3f

Slide 32

Slide 32 text

32 Google Cloud の社内事情

Slide 33

Slide 33 text

33 Google Cloud について 問い合わせがはいってくるようになってきた • アライアンス統括部がリセールを担当 • 来期からは Google Cloud のソリューションアーキテ クトの採用にも力を入れる • DA事業本部で BigQuery ガンガン利用している • DA事業本部でアプリ寄りの案件の相談もあり • CX事業本部では細々とやってますが、AWS やり尽 くした人の次の選択肢に是非候補に入れて欲しい

Slide 34

Slide 34 text

34

Slide 35

Slide 35 text

35 ここで一息

Slide 36

Slide 36 text

CX事業本部で使われている技術
 2023/6/16
 CX事業本部Delivery部サーバーサイドチーム 田中孝明


Slide 37

Slide 37 text

37 前提 CX事業本部で使われている技術についてお話しします • 日吉さんがしゃべった内容と重複するところもあります • ツッコミ、ガヤ大歓迎!

Slide 38

Slide 38 text

38 話す内容 話す内容 • AWS アーキテクチャ • 言語 • フレームワーク / ライブラリ • IaC • CI/CD • 認証認可 • プロジェクト管理、支援ツール • AI系サービス

Slide 39

Slide 39 text

39 AWS アーキテクチャ • サーバーレスアーキテクチャーが採用されている案件が多い ○ API Gateway + AWS Lambda + Amazon DynamoDB ○ API Gateway + AWS Lambda + Amazon Aurora (RDS Proxy) ○ AWS IoT を採用する案件で利用実績多し • AWS Fargate on ECS + Amazon Aurora • Amazon EKS を使っている案件もあるがレアケース

Slide 40

Slide 40 text

40 言語 • TypeScript の利用割合が多い ○ CDK の影響から採用される傾向あり ○ 次点で JavaScript • Python、Golang、Java、Scala、Ruby も案件によって使われている • モバイルは Swift / Kotlin 、Flutter も採用実績あり • Rust を実証実験しているプロジェクトもある • 言語選定は慎重に行っています

Slide 41

Slide 41 text

41 フレームワーク / ライブラリ • フロントエンドは React が多い • Fastify (TypeScript) • TypeORM (TypeScript) • モバイルの宣言的UIでは SwiftUI が採用されている ○ 既存の UIKit と共存が多い ○ Jetpack Compose は情報なし • Play! framework 2.8 (Scala) • Spring Boot

Slide 42

Slide 42 text

42 フレームワーク / ライブラリ • Unitテスト時のMock ○ localstack ○ moto ○ dynalite ■ jest-dynalite ● vitest 用のプラグインを作ったメンバーも ○ vitest-environment-dynalite

Slide 43

Slide 43 text

43 フレームワーク / ライブラリ

Slide 44

Slide 44 text

44 IaC • CDK (TypeScript) が大勢力 • Terraform (Google Cloudを利用している案件で多い) • CloudFormation (AWS SAM) • 一部では Serverless framework も採用されている

Slide 45

Slide 45 text

45 CI/CD • GitHub Actions ○ ほぼ主流 • CodePipeline • GitLab Runner • CircleCI ○ 新規で採用するのは減ってきている • Bitrise • Autify を採用していた案件もあり

Slide 46

Slide 46 text

46 認証認可 • Auth0 の採用実績が多い • LINEに関してはこの後、城岸さんがしゃ べってくれるはず・・・

Slide 47

Slide 47 text

47 プロジェクト管理、支援ツール • GitHub / Gitlab / Code Commit • Zenhub • Trello / Pivotal tracker を使っているところも • Backlog • デザインは Figma が主流になりつつある • Notion / miro • スクラム開発

Slide 48

Slide 48 text

48 AIサービス • Github Copilot ○ 一部の案件では採用に向けて顧客と調整中

Slide 49

Slide 49 text

49