Cloud Buildを気軽なコンテナ実行環境として利用する / gcpug-cloud-build-day
by
chidakiyo
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
Cloud Buildを 気軽なコンテナ実行環境 として利用する Cloud Build Day #1 @chidakiyo
Slide 2
Slide 2 text
自己紹介 Kiyokatsu Chida ID: @chidakiyo Engineer at Fringe81(Unipos). Unipos作ってます.(Uniposの1行目のコードを書いた人) 最近は認証基盤やCDの仕組みを作ったり. Go と GCP が好物. GCPUG, #bq_sushiなどによく出現します. 2
Slide 3
Slide 3 text
今日のゴール - 明日からすぐにCloud Buildを気軽に使いたくなる! 3
Slide 4
Slide 4 text
話すこと ❑ 1. Cloud Build の概要(あっさりめ) ❑ 2. Cloud Build をコンテナ実行環境として利用する 4 話さないこと ❑ Cloud Build でコンテナをビルドする方法
Slide 5
Slide 5 text
1. Cloud Build の概要 (あっさりめ)
Slide 6
Slide 6 text
正式名称は Cloud Build で、間にスペースが必要! 6 1. Cloud Build の概要
Slide 7
Slide 7 text
用途はコンテナをビルドするだけではない 7 1. Cloud Build の概要 ❑ コンテナをビルドしてGCRにpushする(今日は話さない) ❑ パイプラインで生成されたファイルなどをGCSにアップロードする (artifact) ❑ コンテナを気軽に実行する
Slide 8
Slide 8 text
2-1. Cloud Build をコンテナ実行環 境として利用する GCSに生成したファイルをアップロードする
Slide 9
Slide 9 text
9 2-1. Cloud Build をコンテナ実行環境として利用する 外部のサイトから zip ファイルを取得し、 展開した CSV ファイルの特定のカラムのみ抽出し、 GCS に出力したい。 ファイルサイズはそこそこ大きい、GCPのどのプロダクトを使います か? 質問 ✋
Slide 10
Slide 10 text
10 2-1. Cloud Build をコンテナ実行環境として利用する 外部のサイトから zip ファイルを取得し、 展開した CSV ファイルの特定のカラムのみ抽出し、 GCS に出力したい。 ファイルサイズはそこそこ大きい、GCPのどのプロダクトを使います か? 質問 ✋ GCE? GAE? GKE? Functions? Dataflow?
Slide 11
Slide 11 text
11 2-1. Cloud Build をコンテナ実行環境として利用する 外部のサイトから zip ファイルを取得し、 展開した CSV ファイルの特定のカラムのみ抽出し、 GCS に出力したい。 ファイルサイズはそこそこ大きい、GCPのどのプロダクトを使います か? 質問 ✋ GCE? GAE? GKE? Functions? Dataflow? それ、Cloud Build でもやれそう!
Slide 12
Slide 12 text
Cloud Build のパイプラインイメージ 12 2-1. Cloud Build をコンテナ実行環境として利用する /workspace にファイルを マウント Step 1 を実行 Step 2 を実行 Step n を実行 GCR/GCS に成果物を 出力 サンプルコード マウントされたディレクトリを 複数のコンテナで順々に (*)処理していく Linuxコマンドのパイプでつなぐイメージ (*並列にも実行できます)
Slide 13
Slide 13 text
Demo します 13 2-1. Cloud Build をコンテナ実行環境として利用する サンプルコード
Slide 14
Slide 14 text
14 2-1. Cloud Build をコンテナ実行環境として利用する ❑ 手動 ❏ gcloud コマンド(gcloud builds submit ~~) ❏ API ❑ ビルドトリガー ❏ Cloud Source Repositories、GitHub または Bitbucket のトリガー ❑ GitHub アプリトリガー(alpha) Cloud Build の実行方法
Slide 15
Slide 15 text
15 2-1. Cloud Build をコンテナ実行環境として利用する ❑ gcloud builds submit した際に指定したディレクトリ配下のファ イルがそのまま圧縮されて送られる ❏ サイズ制限があるので場合によってはGCSに先に置いておき、 そこからパイプラインで取得するなどの方法で回避 ❏ 不要なファイルは .gcloudignore で除外する 実行時の注意点
Slide 16
Slide 16 text
16 2-1. Cloud Build をコンテナ実行環境として利用する ❑ 特にないように見える 外部への接続制限
Slide 17
Slide 17 text
2-2. Cloud Build をコンテナ実行環 境として利用する コンテナを気軽に実行する
Slide 18
Slide 18 text
18 2-2. Cloud Build をコンテナ実行環境として利用する ❑ 無料枠がある ❏ 1 日あたり 120 分までのビルド、同時ビルド数最大 10 件 ❑ Cloud BuildのSAで実行できるので、気軽にgcloudコマンドで自 動化する環境が作れる ❑ タイムアウトが長い(変更可能) ❑ スケールアップができる ❑ 並列実行も可能 Cloud Buildをコンテナ実行環境として利用する良い点
Slide 19
Slide 19 text
19 2-2. Cloud Build をコンテナ実行環境として利用する ❑ 何でもCloud Buildでできそうな気がしてくる ❑ 請求先アカウントに対しての無料枠なので複数プロジェクトで利用 していると無料枠がすぐ溶ける Cloud Buildをコンテナ実行環境として利用する際の注意点
Slide 20
Slide 20 text
20 2-2. Cloud Build をコンテナ実行環境として利用する ❑ Cloud Build 上からAppengineのデプロイ ❏ Go, scala, node, elm を含んだデプロイ ❑ gcloudコマンドを使った自動化用の環境として利用 ❏ k8sのクラスタのサイズを夜間休日に減らす ❑ Dataflowを使っていた処理を一部Cloud Build化した(?) 事例
Slide 21
Slide 21 text
1例 : Appengineをデプロイ(以前) 21 2-2. Cloud Build をコンテナ実行環境として利用する Go Elm node Java Scala 個人の開発環境へのデプロイのためにローカル PCに各種言 語がインストール/設定されている必要がありました
Slide 22
Slide 22 text
Appengineをデプロイするイメージ 22 2-2. Cloud Build をコンテナ実行環境として利用する Cloud Build 個人PC gcloud build submit を asyncで実行 Cloud Build(GAE) コンテナ上でElm, Type Script などをbuild gcloud app deploy でGAEアプリケーションを デプロイ
Slide 23
Slide 23 text
Appengineをデプロイ(以後) 23 2-2. Cloud Build をコンテナ実行環境として利用する Go Elm node Java Scala gcloudコマンドさえインストールされていれば 自由にデプロイできるように!
Slide 24
Slide 24 text
24 2-2. Cloud Build をコンテナ実行環境として利用する その他、気になる方はお気軽に声をかけてください!
Slide 25
Slide 25 text
25 恒例のやつですが・・・ We are hiring
Slide 26
Slide 26 text
26 ご静聴 ありがとうございました