コロプラではマルチクラスター構成の GKE (Google Kubernetes Engine) 上にゲームのインフラ基盤を構築しています。GKE 上のアプリケーションやミドルウェア、ツールなどは全て Helm chart として管理しており、アプリケーションは Spinnaker のパイプラインで継続的に更新してきましたが、それ以外のミドルウェアやツールは Helm で手動管理してきました。
しかし、年々運用するゲームタイトルが増加し、GKE の定期的なアップグレードを Blue/Green 切り替えで行うことがコストとなっていました。そこで、GKE の in-place アップグレードを自動化できるようにアーキテクチャを変更し、それに併せてアプリケーション以外のミドルウェアやツールを Argo CD で管理するように変更しました。また、GKE の in-place アップグレードも自作の仕組みを導入して柔軟にスケジュールできるようにしました。
本セッションではコロプラの最新のインフラ基盤のアーキテクチャと Continuous Delivery の戦略を、アプリケーションレイヤーから GKE の更新まで広く紹介します。
* Helmfile と go-task による複数の Helm chart の管理とマニフェストの生成
* Spinnaker によるアプリケーションの継続的な更新
* Argo CD によるミドルウェアやツールの継続的な更新
* Temporal Workflow Engine による GKE の継続的な更新