検索
連載

「ブルーグリーンデプロイメントの仕組み」を理解するOpenStack上に構築する、ブルーグリーンデプロイメント実践入門(2)(3/3 ページ)

本連載では、「OpenStackを基盤としたブルーグリーンデプロイメント」を実現する“現場目線”のノウハウを解説していきます。今回は、「ブルーグリーンデプロイメントの利点とその仕組み」を説明します。

PC用表示 関連情報
Share
Tweet
LINE
Hatena
前のページへ |       

OpenStackを基盤としたブルーグリーンデプロイメント機能の例

 それでは、ブルーグリーンデプロイメントをこれから考察していただくための一例として、筆者の所属するユニアデックスが開発した、OpenStackを基盤としたブルーグリーンデプロイメント機能の仕組みを説明します。

photo 図5 ユニアデックスにて開発したブルーグリーンデプロイメント機能

 図5の左上に示したOpenStackの管理画面に「BGDパネル」が組み込まれます。運用者はこれを操作することで、ブルー系/グリーン系の切り替え操作をワンクリックで行えるようになっています。ブルー系/グリーン系には仮想マシンとして構成されたWebサーバも接続されており、それぞれが青い画面/緑の画面をクライアントに返すことで、どちらが本番系なのかを把握できます。どんな動きをするか、以下の動画もご覧ください(動画1)。

動画が取得できませんでした
動画1 BGD切り替えの様子

 ブルー系/グリーン系がどのように構成されているのかをOpenStackのネットワークトポロジー管理画面(図6)で説明します。

photo 図6 OpenStack上に構成したブルーグリーンデプロイメントのネットワークトポロジー管理画面

 図6では、ブルー系/グリーン系に対応した2つの内部ネットワークがあり、Webサーバとなるインスタンス(仮想マシン)が接続されています。この2つの内部ネットワークは、仮想ルーターを経由して外部ネットワークと接続されます。クライアントは、この外部ネットワークに接続します。Webサーバは各系に2つ存在しています。また、管理画面には表示されていませんが、これらは内部的なロードバランサーで負荷分散されています。

 続いて、ブルーグリーンデプロイメントの実現方法を以下の図で示します(図7)。

photo 図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.

前のページへ |       
ページトップに戻る