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. Cloud Buildを
    気軽なコンテナ実行環境
    として利用する
    Cloud Build Day #1
    @chidakiyo

    View full-size slide

  2. 自己紹介
    Kiyokatsu Chida
    ID: @chidakiyo
    Engineer at Fringe81(Unipos).
    Unipos作ってます.(Uniposの1行目のコードを書いた人)
    最近は認証基盤やCDの仕組みを作ったり.
    Go と GCP が好物.
    GCPUG, #bq_sushiなどによく出現します.
    2

    View full-size slide

  3. 今日のゴール
    - 明日からすぐにCloud Buildを気軽に使いたくなる!
    3

    View full-size slide

  4. 話すこと
    ❑ 1. Cloud Build の概要(あっさりめ)
    ❑ 2. Cloud Build をコンテナ実行環境として利用する
    4
    話さないこと
    ❑ Cloud Build でコンテナをビルドする方法

    View full-size slide

  5. 1.
    Cloud Build の概要
    (あっさりめ)

    View full-size slide

  6. 正式名称は Cloud Build で、間にスペースが必要!
    6
    1. Cloud Build の概要

    View full-size slide

  7. 用途はコンテナをビルドするだけではない
    7
    1. Cloud Build の概要
    ❑ コンテナをビルドしてGCRにpushする(今日は話さない)
    ❑ パイプラインで生成されたファイルなどをGCSにアップロードする
    (artifact)
    ❑ コンテナを気軽に実行する

    View full-size slide

  8. 2-1.
    Cloud Build をコンテナ実行環
    境として利用する
    GCSに生成したファイルをアップロードする

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  13. Demo します
    13
    2-1. Cloud Build をコンテナ実行環境として利用する
    サンプルコード

    View full-size slide

  14. 14
    2-1. Cloud Build をコンテナ実行環境として利用する
    ❑ 手動
    ❏ gcloud コマンド(gcloud builds submit ~~)
    ❏ API
    ❑ ビルドトリガー
    ❏ Cloud Source Repositories、GitHub または Bitbucket
    のトリガー
    ❑ GitHub アプリトリガー(alpha)
    Cloud Build の実行方法

    View full-size slide

  15. 15
    2-1. Cloud Build をコンテナ実行環境として利用する
    ❑ gcloud builds submit した際に指定したディレクトリ配下のファ
    イルがそのまま圧縮されて送られる
    ❏ サイズ制限があるので場合によってはGCSに先に置いておき、
    そこからパイプラインで取得するなどの方法で回避
    ❏ 不要なファイルは .gcloudignore で除外する
    実行時の注意点

    View full-size slide

  16. 16
    2-1. Cloud Build をコンテナ実行環境として利用する
    ❑ 特にないように見える
    外部への接続制限

    View full-size slide

  17. 2-2.
    Cloud Build をコンテナ実行環
    境として利用する
    コンテナを気軽に実行する

    View full-size slide

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

    View full-size slide

  19. 19
    2-2. Cloud Build をコンテナ実行環境として利用する
    ❑ 何でもCloud Buildでできそうな気がしてくる
    ❑ 請求先アカウントに対しての無料枠なので複数プロジェクトで利用
    していると無料枠がすぐ溶ける
    Cloud Buildをコンテナ実行環境として利用する際の注意点

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  22. Appengineをデプロイするイメージ
    22
    2-2. Cloud Build をコンテナ実行環境として利用する
    Cloud Build
    個人PC
    gcloud build submit を
    asyncで実行
    Cloud Build(GAE)
    コンテナ上でElm, Type
    Script などをbuild
    gcloud app deploy
    でGAEアプリケーションを
    デプロイ

    View full-size slide

  23. Appengineをデプロイ(以後)
    23
    2-2. Cloud Build をコンテナ実行環境として利用する
    Go
    Elm
    node
    Java
    Scala
    gcloudコマンドさえインストールされていれば
    自由にデプロイできるように!

    View full-size slide

  24. 24
    2-2. Cloud Build をコンテナ実行環境として利用する
    その他、気になる方はお気軽に声をかけてください!

    View full-size slide

  25. 25
    恒例のやつですが・・・
    We are hiring

    View full-size slide

  26. 26
    ご静聴
    ありがとうございました

    View full-size slide