アカウント ログイン
Jump to section

ブルーグリーン・デプロイメントとは

Copy URL

ブルーグリーン・デプロイメントは、ユーザートラフィックを、アプリケーションやマイクロサービスの以前のバージョンから、ほぼ同一の新しいリリースに徐々に転送するアプリケーション・リリースモデルで、両バージョンが稼働中の状態で実施するものです。

古いバージョンはブルー環境、新しいバージョンはグリーン環境と呼ばれます。ブルーからグリーンへの本番環境のトラフィックの転送が完了すると、ブルーはロールバックに備えてスタンバイさせるか、あるいは本番環境からプルして更新し、次回の更新の際にテンプレートとして使用することができます。

この継続的なデプロイメントモデルにについては、すべての環境がブルーグリーンの場合と同じアップタイム要件や CI/CD プロセスを適切に実行するためのリソースを備えている訳ではないため、すべての環境に展開できる訳ではないというのが現状です。しかし、多くのアプリケーションは、エンタープライズによるデジタル・トランスフォーメーションの進展に伴い、継続的デリバリーを支援できるように進化しています。

 

 

次のように考えてみてください。あなたはシンプルなクラウドネイティブ・アプリケーションを開発しました。ユーザーが画面上を飛ぶ色とりどりの風船をタップしてポイントを獲得するモバイルゲームです。ゲームのバックエンドは、ゲームの実績、スコアリング、メカニクス、コミュニケーション、プレーヤーの識別を処理する複数のコンテナベースのマイクロサービスによってサポートされています。

最初のリリース後、何百人ものユーザーがゲームをプレイし始めます。毎分数千ものトランザクションがログに記録されます。DevOps チームが迅速で頻繁なリリースを推奨しているので、あなたは、メカニック・マイクロサービスにマイナーアップデートをリリースして、赤い風船のサイズとスピードを増加しようとしています。

本番環境への更新を深夜 (アクティブユーザーの数が最も少ない時間帯) まで待つのではなく、ブルーグリーン・デプロイメントモデルを使用して、ピーク使用時にアプリケーションを更新します。ダウンタイムは生じません。

これができるのは、本番環境 (ブルー) でメカニック・マイクロサービスを取得し、それを同一、ただし別個のコンテナ (グリーン) にコピーしたからです。グリーン環境で赤い風船のサイズとスピードを増加した後、その更新がアクティブなブルー環境と共に本番環境にプッシュされる前に、Q/A とステージング (Jenkins のようなオープンソースのストレステスト・プロジェクトによって自動化されている場合もあります) を完了します。

運用チームは、ロードバランサーを使用して各ユーザーの次のトランザクションをブルーからグリーンにリダイレクトできます。すべての本番環境のトラフィックがグリーン環境でフィルター処理されると、ブルー環境がオフラインになります。ブルーは、障害復旧のためのオプションとしてスタンバイすることも、次回の更新のためのコンテナにすることもできます。

Kubernetes は、クラウドネイティブ・アプリケーション、マイクロサービス、コンテナ、継続的インテグレーション、継続的デリバリー、継続的デプロイメント、SRE、DevOps など、ブルーグリーン・デプロイメントのプロセスに関連するすべての要素と自然に調和します。Linux® コンテナのオペレーションを自動化するオープンソース・プラットフォームとして、Kubernetes はクラウドネイティブ・アプリケーションのマイクロサービスをパッケージ化するコンテナのオーケストレーションをサポートするだけでなく、Kubernetes では開発者がアプリケーション・アーキテクチャをゼロから作成せずに再利用できるアーキテクチャ・パターンのコレクションを使用することもできます。

これらの Kubernetes パターンの 1 つに、宣言的デプロイメントパターンがあります。マイクロサービスは本質的に小さいため、非常に迅速に数を増やすことができます。宣言的デプロイメントパターンにより、Kubernetes アーキテクチャで最小かつ最も単純なユニットである新しい Pod をデプロイするために必要な手動の労力が軽減されます。

Red Hat は、主要なエンタープライズ Kubernetes プラットフォームの Red Hat® OpenShift を、コアの CI/CD 機能と共に強化しました。また、Red Hat OpenShift 環境内でブルーグリーン・デプロイメントをロールアウトするためのステップバイステップのコマンドラインプロンプトと引数についてもすでに文書化しています。

また、エンタープライズ Kubernetes プラットフォームをオープンソースのままにしておくと、プラットフォーム全体とそれに依存するすべてのものを制御できるため、アプリケーションとサービスの場所や、それらが何をサポートしているかに関係なく、そのまま機能させることができます。

そこから始めて、テクノロジーを支えるソースコードを調査、修正、改良しましょう。Red Hat の製品はフォーチュン 500 企業の 90% 以上から信頼を集めており*、Red Hat の製品およびテクノロジーを活用して構築されたインフラストラクチャでできないことはないと言えるでしょう。

関連資料

記事

DevSecOps とは

DevOps によるアジリティと応答性を存分に利用するのであれば、IT セキュリティはアプリケーションのライフサイクル全体を通じて、重要な役目を果たす必要があります。

記事

CI/CD とは

CI/CD によって、統合およびテストのフェーズからデリバリー、デプロイメントに至る、アプリケーションのライフサイクル全体を通じて、継続的な自動化と継続的な監視が導入されます。

記事

DevOps エンジニアとは

DevOps エンジニアは、組織内でのコラボレーション、イノベーション、文化的変革を可能にする特有のスキルと専門知識を持ち合わせています。  

DevOps の詳細はこちら

製品

Red Hat Open Innovation Labs

Red Hat のエキスパートによる徹底的かつ集中的な研修。アジャイルの方法論とオープンソースツールを使用して、社内業務の課題に対処する方法について学びます。

Red Hat Consulting

Red Hat の戦略的アドバイザーが、企業組織の全体像を把握しながら課題を分析し、包括的かつコスト効率に優れたソリューションで課題を解決できるようお手伝いします。

リソース

ホワイトペーパー

Red Hat Ansible Automation Platform を使用して CI/CD パイプラインを最適化する

  • Red Hat 顧客データとフォーチュン 500 リスト、2018 年 6 月

Illustration - mail

その他の関連コンテンツ

無料のニュースレター「Red Hat Shares」(英語) では、注目の IT トピックスに関するコンテンツをお届けしています。

Red Hat logo LinkedInYouTubeFacebookTwitter

製品

ツール

試す、買う、売る

コミュニケーション

Red Hat について

エンタープライズ・オープンソース・ソリューションのプロバイダーとして世界をリードする Red Hat は、Linux、クラウド、コンテナ、Kubernetes などのテクノロジーを提供しています。Red Hat は強化されたソリューションを提供し、コアデータセンターからネットワークエッジまで、企業が複数のプラットフォームおよび環境間で容易に運用できるようにしています。

ニュースレター「Red Hat Shares」を購読する

今すぐ登録する

言語を選択してください

© 2022 Red Hat, Inc. Red Hat Summit