なぜ“リリースの自動化”が重要か──今こそ「ブルーグリーンデプロイメント」を考える:OpenStack上に構築する、ブルーグリーンデプロイメント実践入門(1)(2/2 ページ)
ビジネスの「スピードと絶え間ない変化」に応じたスピーディな開発・改善を支える上で、インフラ部門は今後、どのような対策が求められるのでしょう。本連載では、インフラ部門が今後理解しておくべき運用の考え方を整理し、具体的な実践例として「OpenStackを基盤としたブルーグリーンデプロイメント」を実現する“現場目線”のノウハウを解説していきます。
今、強く求められる「ブルーグリーンデプロイメント」
このような、ITシステムのリリースにおける課題を解決する手法の一つが「ブルーグリーンデプロイメント」です。ブルーグリーンデプロイメントは、既存のシステム(ブルー)を稼働させながら、次のバージョンとなる「もう一つの新しいシステム」(グリーン)を準備して、短時間で切り替える、という方法論です。
これまでの既存のシステムを停止して、更改のための差分を適用するシーンを想像してみてください。この差分は、更新版のプログラム、データベースなどのミドルウェア、OSの設定変更、設定追加などが含まれます。このとき、以下の課題が挙がります。
- システムの停止時間が発生する
- システムを停止できる時間は限られる。時間に追われた作業となり、ミスの発生が懸念される
- 時間の制約から、十分なテストを実施できない
- 本番環境とテスト環境の差異が生じやすく、この違いが不具合を招く可能性がある
- (4)のために綿密な作業計画や調査などの準備が必要で、一度のリリースに大きな工数がかかる
- (5)のために大掛かりなリリースとなりがちで、リリースの複雑さを原因とする不具合が発生する可能性が高まる
ブルーグリーンデプロイメントは、この(1)から(5)への解決策を実現します。既存のシステムを動作させながら、じっくり時間をかけて次期バージョンのためのシステムを別に作っておき、そちらへ瞬時に切り替えることでリリースします。システムの停止時間の短縮と、環境構築やテストに必要な時間をかけることを両立できます。
また、アプリケーションを置き換えるのではなく、テスト済みの「環境と差分を反映したアプリケーション」をそのまま本番環境化することになるので、本番とテスト環境の差に起因した問題発生リスクも回避できます。アプリケーションに差分を適用するのではなく、アプリケーションを作り直すことによって、移行計画で考慮すべきことである「本番環境の設定状態の調査」などの行程も省略できます。
(1)から(5)の課題を解決すると、リリースの頻度を上げることも可能になります。結果的に、(6)の解決につながることも重要です。細かいリリースによって不具合のリスクを減らすことができ、スクラムとも相性が良い──。それは、「継続的インテグレーション」の目指すところでもあります。
万一リリース後に問題が発生したとしても、「Ctrl+Z(やり直し)」をするかのように、これまで正常に動作していたシステム環境に切り戻せます。これで清水の舞台から飛び降りるかのような思いをせずに済みます。
OpenStackを基盤に、ブルーグリーンデプロイメントを構築する
では、実際にどのようにシステムを構成し、運用すればよいのでしょう。切り替えの手段にはルーターやロードバランサ、DNSを使う例がありますが、本連載では、自動化を行いやすい特徴を持つIaaS(Infrastructure as a Service)基盤である「OpenStack」上でブルーグリーンデプロイメントを実現する手法を解説していきます。
OpenStackでは、各機能をAPI経由でやりとりし、全体としてIaaS機能を提供します。自動化しやすいのは、このAPIに理由があります。
次回は、「ブルーグリーンデプロイメントをOpenStackで実現する」具体的なノウハウを紹介します。お楽しみに。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- OpenStackが今求められる理由とは何か? エンジニアにとってなぜ重要なのか?
スピーディなビジネス展開が収益向上の鍵となっている今、システム整備にも一層のスピードと柔軟性が求められている。こうした中、なぜOpenStackが企業の注目を集めているのか? 今あらためてOpenStackのエキスパートに聞く。 - いまさら聞けないOpenStack〜よく知られた「常識」と知っておくべき「常識」
日本OpenStackユーザ会の全面協力を得て、OpenStackを徹底的に深掘りする本特集。第2回はレッドハット クラウドエバンジェリストの中井悦司氏が「OpenStackでできること」「OpenStackを使う上で必要なこと」を分かりやすく解説する。 - いまさら聞けない「DevOps」
最近さまざまなイベントやブログエントリで見かける「DevOps」。この言葉をひもとき、なぜ「Dev」と「Ops」が衝突するのか、その解決に必要な要素とは何かを分かりやすく解説します。 - 継続的デリバリ/デプロイを実現する手法・ツールまとめ
バージョン管理や継続的インテグレーションとも密接に関わる継続的デリバリ/デプロイメントの概要や主なツール、経緯、実践事例を紹介。実践手法として「ブルーグリーン・デプロイメント」「Immutable Infrastructure」が注目だ。 - 現代のソフトウェア/サービス開発で構成管理が重要になった5つの理由
「DevOps」という言葉にもあるように、ソフトウェア構成管理は、インフラ運用に取り入れられるなど、変わりつつある時代だ。本連載では、そのトレンドにフォーカスして、現在のソフトウェア開発に有効な構成管理のノウハウをお伝えする