このような、ITシステムのリリースにおける課題を解決する手法の一つが「ブルーグリーンデプロイメント」です。ブルーグリーンデプロイメントは、既存のシステム(ブルー)を稼働させながら、次のバージョンとなる「もう一つの新しいシステム」(グリーン)を準備して、短時間で切り替える、という方法論です。
これまでの既存のシステムを停止して、更改のための差分を適用するシーンを想像してみてください。この差分は、更新版のプログラム、データベースなどのミドルウェア、OSの設定変更、設定追加などが含まれます。このとき、以下の課題が挙がります。
ブルーグリーンデプロイメントは、この(1)から(5)への解決策を実現します。既存のシステムを動作させながら、じっくり時間をかけて次期バージョンのためのシステムを別に作っておき、そちらへ瞬時に切り替えることでリリースします。システムの停止時間の短縮と、環境構築やテストに必要な時間をかけることを両立できます。
また、アプリケーションを置き換えるのではなく、テスト済みの「環境と差分を反映したアプリケーション」をそのまま本番環境化することになるので、本番とテスト環境の差に起因した問題発生リスクも回避できます。アプリケーションに差分を適用するのではなく、アプリケーションを作り直すことによって、移行計画で考慮すべきことである「本番環境の設定状態の調査」などの行程も省略できます。
(1)から(5)の課題を解決すると、リリースの頻度を上げることも可能になります。結果的に、(6)の解決につながることも重要です。細かいリリースによって不具合のリスクを減らすことができ、スクラムとも相性が良い──。それは、「継続的インテグレーション」の目指すところでもあります。
万一リリース後に問題が発生したとしても、「Ctrl+Z(やり直し)」をするかのように、これまで正常に動作していたシステム環境に切り戻せます。これで清水の舞台から飛び降りるかのような思いをせずに済みます。
では、実際にどのようにシステムを構成し、運用すればよいのでしょう。切り替えの手段にはルーターやロードバランサ、DNSを使う例がありますが、本連載では、自動化を行いやすい特徴を持つIaaS(Infrastructure as a Service)基盤である「OpenStack」上でブルーグリーンデプロイメントを実現する手法を解説していきます。
OpenStackでは、各機能をAPI経由でやりとりし、全体としてIaaS機能を提供します。自動化しやすいのは、このAPIに理由があります。
次回は、「ブルーグリーンデプロイメントをOpenStackで実現する」具体的なノウハウを紹介します。お楽しみに。
Copyright © ITmedia, Inc. All Rights Reserved.