JX通信社はサーバレス/コンテナ、AWS/GCPなどさまざまな環境でアプリケーションをホストしてサービスを提供しています。アプリケーションによって最適なホストの仕方は違うため、各チームがそれぞれ工夫をして日々の開発とデプロイを行なっています。
CI/CDの整備は各チームで自由に作っているので色々なパターンが存在しますが、その中から世のいろんなフェーズのいろんなチームでも応用の効きそうな定番パターンについて紹介します。
レビュー依頼のワークフロー、クラウドの権限の持ち回り、各環境の責務や使い方など多少ツールが異なっても共通な考え方から、様々なツールやGitLab特有の機能をフル活用した具体的な工夫までお話しします。
- (前提編) Vaultを利用してセキュアにデプロイに必要な権限をCIに渡す方法
- (前提編) kanikoとGitLab Registryを活用したコンテナイメージの作り方
- (具体例: 1) ecspressoを使ったコンテナワークロードのデプロイ - Blue/Greenを添えて
- (具体例: 2) Serverless Frameworkを使ったLambda関数のデプロイ - シンプルな関数もコンテナも
- (具体例: 3) CIOpsとGitOpsをいいとこ取り!Kubernetes上でレビューごと検証環境の自動生成・自動破棄