それでは、ブルーグリーンデプロイメントをこれから考察していただくための一例として、筆者の所属するユニアデックスが開発した、OpenStackを基盤としたブルーグリーンデプロイメント機能の仕組みを説明します。
図5の左上に示したOpenStackの管理画面に「BGDパネル」が組み込まれます。運用者はこれを操作することで、ブルー系/グリーン系の切り替え操作をワンクリックで行えるようになっています。ブルー系/グリーン系には仮想マシンとして構成されたWebサーバも接続されており、それぞれが青い画面/緑の画面をクライアントに返すことで、どちらが本番系なのかを把握できます。どんな動きをするか、以下の動画もご覧ください(動画1)。
ブルー系/グリーン系がどのように構成されているのかをOpenStackのネットワークトポロジー管理画面(図6)で説明します。
図6では、ブルー系/グリーン系に対応した2つの内部ネットワークがあり、Webサーバとなるインスタンス(仮想マシン)が接続されています。この2つの内部ネットワークは、仮想ルーターを経由して外部ネットワークと接続されます。クライアントは、この外部ネットワークに接続します。Webサーバは各系に2つ存在しています。また、管理画面には表示されていませんが、これらは内部的なロードバランサーで負荷分散されています。
続いて、ブルーグリーンデプロイメントの実現方法を以下の図で示します(図7)。
環境の切り替えは、仮想ルーターに設定される「フローティングIP(FIP)」を利用しています。OpenStackでは、外部ネットワークと独立した内部ネットワークを持つことができます。外部から内部への通信を行うためにFIPを割り当てて、クライアント/ユーザーはこの不変的なFIPに対してアクセスします。
切り替え行程では、ブルー系のロードバランサーにFIPが対応しているのを初期状態とします。この時、クライアントにはブルー系が本番環境であることを示す「青い画面」が表示されます。BGDパネルから環境の切り替え操作を行うと、内部的にはFIPをグリーン系のロードバランサーに対応付けます。これで、クライアントにはグリーン系に移ったことを示す「緑の画面」が表示されます。この切り替えを、OpenStackのFIPを制御するREST API(REpresentational State Transfer Application Programming Interface)を利用して実現しています。
なお、今回は分かりやすく切り替え行程を示すために、ブルーグリーンデプロイメントの切り替え機能をOpenStackの管理画面に組み込みましたが、これは必須ではありません。REST API経由で制御できるため、例えば継続的デリバリーに使う「Jenkins」などのツールを用いて、OpenStackの外部から切り替え操作を行うことも可能です。
今回は、ブルーグリーンデプロイメントの概念と必要性、OpenStack環境におけるブルーグリーンデプロイメントを実現する仕組みの一例を紹介しました。
次回はより現場視点に沿った、OpenStackを使ったブルーグリーンデプロイメントの効果と課題について解説する予定です。
ユニアデックス株式会社 自社IP電話関連プロダクトなど、ソフトウェア開発を経験した後、近年はSDNやOpenStack、IoTなどに関するR&Dを担当。IKEAでDIYが休日の楽しみ。
ユニアデックス株式会社 パワポと戯れるOpenStack商品企画担当。バックパック片手に世界をぶらり旅。次の旅先を妄想中。
Copyright © ITmedia, Inc. All Rights Reserved.