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