Blue/Green デプロイメントパターン
DevOps環境を提供するニフクラ DevOps with GitLabサービスを利用して、KubernetesでのBlue/Green デプロイメントを構成するパターンです。
解決したい課題/要求事項
-
セットアップ、パッチ適用、バックアップ環境などの設計、構築に時間やコストがかかる。
-
構築、運用には期間やスキルが必要となり、アプリケーション開発などの本業に集中できない。
-
複雑なコンテナ管理には時間を割かずに、アプリケーションの開発業務に専念したい。
ニフクラでの解決パターン
以下によって、解決したい課題の解決や要求事項を実現します。
-
ニフクラ DevOps with GitLabとL4ロードバランサーを活用することで、Blue/Greenデプロイメントが実現可能です。今までのインフラリソースも並行して利用でき、新バージョンをリリースした際にもし問題が起きても、簡単に旧バージョンに切り戻すことが可能です。また、利用者自身でそういった環境を運用せずに、アプリケーションの開発に集中できます。
-
L4ロードバランサーからの接続先を切り替えることで、バージョンアップ時にサービス停止時間を最小限にできます。
-
切り替え後の旧環境を開発環境として継続利用することで、無駄な出費を抑えられます。


実装
-
ニフクラ DevOps with GitLabを利用すると、Blue/Green環境へのデプロイメントが容易となり、L4ロードバランサーの接続先を切り替えるだけで、簡単にBlue/Green環境を作り上げることが可能となります。
-
コードの管理、プロジェクトの管理、可視化、デプロイメント、DevOpsサーバーの運用に必要な機能が一通り揃っており、これらを活用することで運用工数を大幅に削減できます。
-
ニフクラ DevOps with GitLabでは、Hosted Runnerを提供しています。利用者自身でRunnerサーバーを構築・運用する必要はありません。簡単に専用のCI/CD環境を立ち上げることができます。
-
なお、DevOpsの設定が簡単にできる分、利用者自身でDevOps環境をカスタマイズ・管理するよりも制約が多くなります。ニフクラ DevOps with GitLabの制約条件や留意事項と、利用者自身で環境を運用/構築する場合のメリット・デメリットとを勘案して、ニフクラ DevOps with GitLabの利用について検討してください。
補足
-
コントロールパネル、Web操作ですべての機能が利用可能です。
-
DevOpsの機能を全て活用するには、GitLab EEサブスクリプションの購入が必要です。GitLab EE サブスクリプション詳細につきましては、以下のページを確認してください。
機能・サービス:GitLab 製品の利用 -
システムの特性によってはBlue/Greenに向かないものもあります。特にデータ同期や切り替えタイミングなどの条件が厳しいシステムについては充分な検討が必要です。
-
構成図にありますKubernetesの環境は、お客様ご自身で構築・運用する必要があります。
注意点
-
ニフクラ DevOps with GitLabで選択可能なサーバータイプ、ディスク容量には制限があります。詳細につきましては、以下のページを確認してください。
機能・サービス:DevOps with GitLab
本パターンの構成要素
本パターンを実現するためのニフクラサービス構成要素例は以下表の通りです。
サービス名 |
タイプ |
用途 |
数量 |
備考 |
|---|---|---|---|---|
10Mbps |
- |
1 |
- |
|
DevOps with GitLab [1] [2]
1. GitLab Enterprise Edition サブスクリプションと組み合わせることで、GitLab Enterprise Edition の追加機能やサポートが利用できます。詳しくは、GitLab製品の利用 を確認してください。
2. DevOps with GitLabのRunner機能はDocker executorを採用しています。必要な実行環境のイメージを宣言すると、自動的に環境が立ち上げられます。詳細は、DevOps with GitLab技術仕様 を確認してください。
|
devops.c-medium |
DevOpsサーバー |
1 |
- |
ディスク容量(100GB) |
ディスク |
1 |
- |
|
ファイアウォールグループ |
ファイアウォール |
1 |
- |
|
runner.c-medium |
DevOps Runner |
1 |
- |
|
c2-medium |
Blueリソース/Greenリソース |
2 |
- |
|
c2-large |
コンテナ環境構築用 |
2 |
Blueリソース/Greenリソース |
|
- |
- |
2 |
- |
|
- |
- |
1 |
任意で利用 |











