ホーム あぴらぼ式 Cloud BuildでGAE/Goデプロイ by Slack vol.1
Cloud BuildでGAE/Goデプロイ by Slack vol.1
 

Cloud BuildでGAE/Goデプロイ by Slack vol.1

Information

この記事はアピリッツの技術ブログ「あぴらぼ式」から移行した記事です。情報が古い可能性がありますのでご注意ください。

自動的にデプロイ

どんなアプリケーションであれ、
世の中に価値を提供するためには、デプロイメントを行う必要があります。

そして、
アプリケーションを一度作ったら終わりということは稀で、
継続的に、かつ頻繁に改修を加えていくことが多いので、
必然的にデプロイも継続的に、かつ頻繁に行うことになります。

いわゆるCI/CDですね。

GCPが提供するフルマネージドなCI/CDサービスがCloud Buildになります。

[blogcard url=”https://cloud.google.com/cloud-build/?hl=ja”]

Cloud Build

CI/CDの処理をフルマネージドな環境で実現できるという点でも魅力的ですが、
このCloud Build、毎日120分以内であれば、無料で使えます。

また、今までデプロイの話をしてきましたが、
名前の通りDockerコンテナのビルドなどもできます。
デフォルトで用意されているDockerイメージを使用してステップ(Cloud Buildでは個々のタスクをステップと呼びます)を定義することや、
自前のDockerイメージを使ってステップを定義することができるので、基本的になんでもできます。

GCP上のサービスと連携する上で、GCPの権限管理のシステムであるIAMとも連携できるのも嬉しいポイントです。

そして、現時点(2018/08)で、

  • GitHub
  • BitBucket
  • Cloud Source Repositories

のPushをフックして、起動させることができます。

デプロイパイプラインの自動化

そこで今回から数回に分けて、

Slack上でmasterブランチにマージするとCloud BuildでGAE/Goをデプロイ

というパイプラインを組んでみたいと思います。

登場人物は

  • Slack
  • BitBucket
  • Cloud Source Repositories
  • Cloud Build
  • GAE/Go

となります。

構成図:

Slack上のBotのMergeボタンを押す(1)と、
BitBucketのmasterブランチにマージされる(2)と同時に、
Cloud Source Repositoriesにミラーリング(3)され、
Cloud Buildが起動(4)してビルドを行い(5)、
GAE/Goにソースがデプロイ(6)される
※()内数字は構成図内の処理番号に対応

といった流れになります。

なお、
BitBucketとCloud Source Repositoryと両方使っている理由は以下になります。

  • BitBucketにはプルリクエストのマージをSlack上で行うSlackBotが提供されています。
  • Cloud Buildをgcloudコマンドから直接実行する際には、Cloud Source Repositoryにソースがあった方が都合が良いからです。

終わりに

というわけで、
次回以降、Slack上でマージしたらGAE/Goに自動でデプロイ!の仕組みを作っていこうと思います。

次回 Cloud BuildでGAE/Goデプロイ by Slack vol.2

記事を共有

最近人気な記事