ヤマムギ

growing hard days.

*

「GCPUG Tokyo Container Builder Day February 2018」に行ってきました

      2018/02/22


GCPUGは神戸以来の2回目で参加させていただきました。
申し込もうかと思ったら、一般参加枠が定員を余裕で越えていたので、Blog枠で申し込みました。

コンテナ使ったことないし、知らないし、でももうやらないと、いよいよやべーぞと思ってた矢先だったので、知らない人ほど勉強会に参加するべきでしょ、って思ったので参加しました。
どこまで理解できるかってのはありますが、これを機に、ということでメモしながら食らいついてみます。

Cloud Tools Introduction

最初は「GCPに存在する開発時に利用するToolたちの中でContainer Builderに関わってくるサービスを紹介します。」との@sinmetalさんのセッション。

Cloud Tools Introduction (Googleスライド資料)

Container Builder

GCP上でDocker Container Imageを生成するサービス。
GitHubをトリガーに起動することも可能、なので、ちょっとしたCIとしても使えるらしい。
「gcloud contaner builds」コマンドで実行したものはgs://になっている。
トリガーは[Build Trigger] – [Create trigger]メニューから設定できる。
設定ファイルはDockerファイルか、YAMLでかける。
Docker Imageは公式で用意されているのがあるので、とりあえず始めるの楽そうです。
n1-standard-1なら毎日120分は無料なので、個人で試してみるのは、賄えそうな気がします。

ビルドの結果はGoogle Cloud PubSubトピックにメッセージが公開されるらしい。Google Cloud PubSubトピックも初めて聞きましたが、きっと名前から見てこれはキューのように使えるのだろうな。ビルドと結果の処理は非同期で実装する、ということだろうか。

secret.jsonをCloud KMSで暗号化してリポジトリに保存できる、そしてビルド時に復号化できる、これをCIでやろうとすると暗号化のメリットが享受出来ない(KMSのコマンドを実行するためのキーをCIに書くから?)ので包括されているのは嬉しいとのこと。

Container Registry

Container Builderで出来上がったDockerのイメージを保持しておくプライベートレジストリ。
実態はCloud Storageらしい。
「gcloud docker —pull」コマンドで手元のDocker環境に持ってこれる。

料金はCloud Storageのストレージ料金が課金される。Cloud Storageのライフサイクルを使うと自動で削除も出来る。

Cloud Source Repositories

プライベートのGitリポジトリであり、それ以上でも以下でもないとのこと。
名前のとおりですね。
GCPのIAMの権限が設定できるからその点が便利。なるほど。

Google Container Builder と友だちになるまで

続いては、「実例をお見せしながら、Google Container BuilderからGKEへデプロイするパイプラインを構築する際に行った様々な泥臭い施策について説明します。」との@lestrratさんのセッション。

「何か疑問に思ったら手をあげてください」
「1人が疑問に思ったことは他の人も疑問に思っているはず」という素敵なコメントから始まりました。
質問を躊躇する人の背中を確実に押していると思いました。

CIと構造が似ているけどCIサービスではないとのこと。

Google Container Builderを使うべきケースの理由は、
* コンテナイメージを作る目的
* GCP上にリソースが全部ある
* リモートデバッグをしたくない
とのこと。

Google Container Builderを使わないケースの理由は、
* コンテナ使わない
* テストをまじめに走らせたい
* GCPのサービスを使ってない
とのこと。

そりゃそうですよねw
これは私にも理解できた。

CIとGoogle Container Builder(GCB)の違いは、
* CIはコマンドを指定していく
* GCBはコンテナイメージを操作していく
とのこと

デバッグどうする?!

デバッグはentrypointを使うと任意のコマンドを実行できる。
これもドキュメントから探すのは非常に困難らしいw

Google Source Repositoriesを使えないのでプライベートレポジトリを使う

GitLabはGitHubのようにGoogle Source Repositoriesでサポートされていない。
Google KMSを使って、プライベートのGitLabレポジトリからソースをcloneしている。
このやり方をドキュメント群から探すのは非常に困難らしいw

ローカル環境での実行

クラウドCIサービスはジョブを送って待って失敗したら手元に環境がないので手探りでデバッグするのが辛い。
GCBは全部ローカルで実行が出来る。
ローカルで実行することで問題解決が早い、爆速とのこと。

確かにそうですね。
GitHubのリポジトリでテスト結果待ってて、直して、コミットしてプッシュしてまたテスト待ってまた直してって、待つ時間がわりともったいないですもんね。

「ドキュメントのクセとして、真実はAPIリファレンスにある」
これは、GCPに限らず、開発の現場ではよくある気がします。
「動いているものが真実」ってのは、うーん、仕方ないというか、ある程度はそれもでいいと思っている派です。

懇親会

メルカリさんからビールとおにぎりとメルカリ水のご提供!
ありがとうございます!

最後に

機能を知りたいだけでしたら、資料を見たり、試してみたらいいのかもしれないですが、サービスやツールやドキュメントに対しての現場の声が聞ける、そして困ったことやつまずいたポイントが聞けるのが、ユーザー会のいいところですね。

GCPを知らないまま参加したのに、Google Container Builderがなんとなく分かったので、GCP使われている方には、すごくいい、知見が溢れている勉強会だったんじゃと思いました。

@yamamanx

開発ベンダー5年、ユーザ企業システム部門通算9年、ITトレーナー1年目のSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。

このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。

また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。

 - event, study , ,

ad

ad

  関連記事

Developers Summit 2018 「NRIの働き方改革 – 開発スタイルから文化まで変えた軌跡 -」を聞きました

以下は、思ったことや気になったことをメモしていますので、必ずしも登壇者の発表内容 …

Innovation EGG 第8回 『可視化・課題と支える技術』に行ってきました

Innovation EGG 第8回 『可視化・課題と支える技術』に行ってきまし …

Developers Summit 2018 「自然言語処理・機械学習を活用したファクトチェック業務の支援」を聞きました

以下は、思ったことや気になったことをメモしていますので、必ずしも登壇者の発表内容 …

Developers Summit 2018 「マイクロサービスをAWSサーバレス&コンテナで実装する方法」を聞きました

以下は、思ったことや気になったことをメモしていますので、必ずしも登壇者の発表内容 …

AWS Summit Tokyo 2017 聴講したセッションのメモ

2017年6月に参加しましたAWS Summitで聴講したセッションのメモを記し …

Java SE 7 Silver 試験対策セミナーで模擬問題の解説をマークダウンでメモってみた

Java SE 7 Silver 試験対策セミナーに行って、模擬問題にチャレンジ …

実録 JAWS DAYS 2017 ~RoadTrip,スタッフ,ハンズオンメンターで参加しまして~

今年もJAWS DAYSにいってまいりました。 RoadTripの話 去年に引き …

DevLOVE関西「事業会社の現場を知ろう~モノタロウ編~」に行ってきました

DevLOVE関西「事業会社の現場を知ろう~モノタロウ編~」 モノタロウさんプラ …

AWS Cloud Roadshow 2016 Osaka Night Event ミッドナイトJAWS

AWS Cloud Roadshow Osaka 2016のナイトイベントでミッ …

第四回 八子クラウド座談会in関西 「メーカーとITが急接近!?IoTってどないやねん!?」に参加しました

第四回 八子クラウド座談会in関西 「メーカーとITが急接近!?IoTってどない …