はじめに
こちらの記事にあるように、弊社のWebアプリケーションのバックエンドはGoで作っています。アプリケーションを動かす環境としてはGoogle App Engine(以下GAE)を使用しており、リクエスト特性に応じて以下の3種類のServiceが存在しています。
・api: フロントエンドから呼ばれるAPI Service
・batch: Cloud Schedulerから呼ばれるバッチ処理向けService
・task: Cloud Tasksから呼ばれる非同期処理向けService
上記の3種類のServiceにデプロイする必要があるため、gcloud app deployコマンドを3回実行することになり、1回のデプロイに8分ほど時間がかかっていました。個人的には8分という時間は短いようで長いと感じており、このぐらい待ち時間があるとデプロイを忘れて他の作業(Twitterを見るなど)をしてしまう弊害があります。
また、デプロイの待ち時間が長くなってしまうと、デプロイ頻度の低下につながり、機能追加やバグ修正などのデリバリーサイクルが回りにくくなってしまうという課題もありました。そのため、重い腰をあげてデプロイ速度の改善に取り組みました。具体的にはGitHub Actionsのbuild matrixを使って速度改善したので、その紹介をしたいと思います。