Blue/Green デプロイメントパターン
K8s環境のマネジメントサービスであるニフクラHatobaと、DevOps環境を提供するニフクラ DevOps with GitLabサービスを利用して、Blue/Green デプロイメントを構成するパターンです。
解決したい課題/要求事項
- セットアップ、パッチ適用、バックアップ環境などの設計、構築に時間やコストがかかる。
- 構築、運用には期間やスキルが必要となり、アプリケーション開発などの本業に集中できない。
- 複雑なコンテナ管理には時間を割かずに、アプリケーションの開発業務に専念したい。
ニフクラでの解決パターン
以下によって、解決したい課題の解決や要求事項を実現します。
- ニフクラ DevOps with GitLabとL4ロードバランサーを活用することで、Blue/Greenデプロイメントが実現可能です。今までのインフラリソースも並行して利用でき、新バージョンをリリースした際にもし問題が起きても、簡単に旧バージョンに切り戻すことが可能です。また、利用者自身でそういった環境を運用せずに、アプリケーションの開発に集中することができます。
- L4ロードバランサーからの接続先を切り替えることで、バージョンアップ時にサービス停止時間を最小限にすることができます。
- 切り替え後の旧環境を開発環境として継続利用することで、無駄な出費を抑えられます。
実装
- ニフクラ DevOps with GitLabを利用すると、Blue/Green環境へのデプロイメントが容易となり、L4ロードバランサーの接続先を切り替えるだけで、簡単にBlue/Green環境を作り上げることが可能となります。
- コードの管理、プロジェクトの管理、可視化、デプロイメント、DevOpsサーバーの運用に必要な機能が一通り揃っており、これらを活用することで運用工数を大幅に削減できます。
- なお、DevOpsの設定が簡単にできる分、利用者自身でDevOps環境をカスタマイズ・管理するよりも制約が多くなります。ニフクラ DevOps with GitLab、ニフクラHatobaの制約条件や留意事項と、利用者自身で環境を運用/構築する場合のメリット・デメリットとを勘案して、ニフクラ DevOps with GitLab、ニフクラHatobaの利用について検討してください。
- Runnerサーバーの構築は、利用者自身で用意する必要があります。
補足
- コントロールパネル操作で大半の機能がご利用可能です。
- DevOpsの機能を全て活用するには、GitLab EEサブスクリプションの購入が必要です。GitLab EE サブスクリプション詳細につきましては、以下のページにご確認ください。
- システムの特性によってはBlue/Greenに向かないものもあります。特にデータ同期や切り替えタイミングなどの条件が厳しいシステムについては充分な検討が必要です。
注意点
- ニフクラ DevOps with GitLabで選択可能なサーバータイプ、ディスク容量には制限があります。詳細につきましては、以下のページをご確認ください。
- GitLab Runnerのインストールと設定方法については、GitLab Docを参照してください。
- ニフクラ Kubernetes Service Hatoba(以下 ニフクラ Hatoba)で選択可能サーバータイプや制限については、こちらをご確認ください。