Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Cloud Buildを気軽なコンテナ実行環境として利用する / gcpug-cloud-build-day

chidakiyo
October 01, 2019

Cloud Buildを気軽なコンテナ実行環境として利用する / gcpug-cloud-build-day

chidakiyo

October 01, 2019
Tweet

More Decks by chidakiyo

Other Decks in Technology

Transcript

  1. 話すこと ❑ 1. Cloud Build の概要(あっさりめ) ❑ 2. Cloud Build

    をコンテナ実行環境として利用する 4 話さないこと ❑ Cloud Build でコンテナをビルドする方法
  2. 9 2-1. Cloud Build をコンテナ実行環境として利用する 外部のサイトから zip ファイルを取得し、 展開した CSV

    ファイルの特定のカラムのみ抽出し、 GCS に出力したい。 ファイルサイズはそこそこ大きい、GCPのどのプロダクトを使います か? 質問 ✋
  3. 10 2-1. Cloud Build をコンテナ実行環境として利用する 外部のサイトから zip ファイルを取得し、 展開した CSV

    ファイルの特定のカラムのみ抽出し、 GCS に出力したい。 ファイルサイズはそこそこ大きい、GCPのどのプロダクトを使います か? 質問 ✋ GCE? GAE? GKE? Functions? Dataflow?
  4. 11 2-1. Cloud Build をコンテナ実行環境として利用する 外部のサイトから zip ファイルを取得し、 展開した CSV

    ファイルの特定のカラムのみ抽出し、 GCS に出力したい。 ファイルサイズはそこそこ大きい、GCPのどのプロダクトを使います か? 質問 ✋ GCE? GAE? GKE? Functions? Dataflow? それ、Cloud Build でもやれそう!  
  5. Cloud Build のパイプラインイメージ 12 2-1. Cloud Build をコンテナ実行環境として利用する /workspace にファイルを

    マウント Step 1 を実行 Step 2 を実行 Step n を実行 GCR/GCS に成果物を 出力 サンプルコード マウントされたディレクトリを 複数のコンテナで順々に (*)処理していく Linuxコマンドのパイプでつなぐイメージ (*並列にも実行できます)
  6. 14 2-1. Cloud Build をコンテナ実行環境として利用する ❑ 手動 ❏ gcloud コマンド(gcloud

    builds submit ~~) ❏ API ❑ ビルドトリガー ❏ Cloud Source Repositories、GitHub または Bitbucket のトリガー ❑ GitHub アプリトリガー(alpha) Cloud Build の実行方法
  7. 15 2-1. Cloud Build をコンテナ実行環境として利用する ❑ gcloud builds submit した際に指定したディレクトリ配下のファ

    イルがそのまま圧縮されて送られる ❏ サイズ制限があるので場合によってはGCSに先に置いておき、 そこからパイプラインで取得するなどの方法で回避 ❏ 不要なファイルは .gcloudignore で除外する 実行時の注意点
  8. 18 2-2. Cloud Build をコンテナ実行環境として利用する ❑ 無料枠がある ❏ 1 日あたり

    120 分までのビルド、同時ビルド数最大 10 件 ❑ Cloud BuildのSAで実行できるので、気軽にgcloudコマンドで自 動化する環境が作れる ❑ タイムアウトが長い(変更可能) ❑ スケールアップができる ❑ 並列実行も可能 Cloud Buildをコンテナ実行環境として利用する良い点
  9. 20 2-2. Cloud Build をコンテナ実行環境として利用する ❑ Cloud Build 上からAppengineのデプロイ ❏

    Go, scala, node, elm を含んだデプロイ ❑ gcloudコマンドを使った自動化用の環境として利用 ❏ k8sのクラスタのサイズを夜間休日に減らす ❑ Dataflowを使っていた処理を一部Cloud Build化した(?) 事例
  10. 1例 : Appengineをデプロイ(以前) 21 2-2. Cloud Build をコンテナ実行環境として利用する Go Elm

    node Java Scala 個人の開発環境へのデプロイのためにローカル PCに各種言 語がインストール/設定されている必要がありました
  11. Appengineをデプロイするイメージ 22 2-2. Cloud Build をコンテナ実行環境として利用する Cloud Build 個人PC gcloud

    build submit を asyncで実行 Cloud Build(GAE) コンテナ上でElm, Type Script などをbuild gcloud app deploy でGAEアプリケーションを デプロイ
  12. Appengineをデプロイ(以後) 23 2-2. Cloud Build をコンテナ実行環境として利用する Go Elm node Java

    Scala gcloudコマンドさえインストールされていれば 自由にデプロイできるように!