Blog

今年流行りそうな「インフラエンジニア」向けトレンドのまとめ その1 (Blue-Green DeploymentとImmutable Infrastructure編)

2014/02/24

あけましておめでとうございます。バズワード評論家 横田でございます。(恐らく)皆様1月6日から出社ですね。お仕事がんばりましょう。

というわけで今年のインフラ業界のバズワードトレンドをまとめてみました。年始の仕事前にどうぞ

《Blue-Green DeploymentとImmutable Infrastructure》

今年のインフラ業界の一番のトレンドは「Blue-Green Deployment」と「Immutable Infrastructure」となる気がしています。今までは、サーバの設定を変更する時は、運用中のサーバを変更していましたが、「Blue-Green Deployment」と「Immutable Infrastructure」の考え方は、運用中のサーバの変更するのではなく、新しくサーバ群を用意し、本番環境をそちらに切り替えるという手法を取っております。

手法自体は「Blue-Green Deployment」と「Immutable Infrastructure」も近いのですが、微妙に二つの考え方は違います。

※私は数時間前まで、この2つの考えがゴッチャになっていましたがヌーラボの中村さん・染田さんの解説記事を読んでスッキリしました。「はてブ」で話題になっている物よりも、こちらの解説記事を読むことをオススメします。

それでは、まずは「Blue-Green Deployment」から見てみましょう。

《Blue-Green Deployment(ぶるーぐりーん でぷろいめんと)》

Blue-Green Deployment(ぶるーぐりーん でぷろいめんと)とは、2つの環境を用意し、可動している環境をルータやロードバランサで切り替える手法です。具体的には、ブルーとグリーンという2つの環境を作成し、本番環境をルータやロードバランサで、どちらかの環境に割り振っておきます。わかりやすくするために、今回は「ブルー」の環境が割り振られているとします。

この時にブルーの環境に手を入れる場合は、直接ブルーのサーバをいじらず、割り振られていない「グリーン」の環境のサーバを変更し、それが終わった後ルータやロードバランサの振り向け先を「グリーン」にすることで環境を更新します。また、さらに「グリーン」を更新する場合は「ブルー」を更新し、再びルータやロードバランサを切り替えます。

この手法を利用することにより「ブルー」と「グリーン」を切り替えた時に問題が発生した場合は、また「ブルー」と「グリーン」を入れ替えるだけで「復旧」できるというメリットがあります。

[関連リンク]
BlueGreenDeployment

《Immutable Infrastructure(いみゅーたぶる いんふらすとらくちゃー)》

この「Blue-Green Deployment」の考えを一歩進めたのが「Immutable Infrastructure(いみゅーたぶる いんふらすとらくちゃー)」です。Immutable Infrastructureとは「Immutable(不変な)」の意味通り「一度セットアップし運用中のサーバは変更をしない」という運用スタイルです。サーバの設定変更などをしたい場合は、現在運用している環境(サーバ群)を変更せずに、まったく新しい環境を用意し、環境の設定変更が終わったら、ルータやロードバランサ等で新しいサーバ群に切り替えるというものです。

「Blue-Green Deployment」が、新しくサーバの設定をする度に「ブルー」と「グリーン」の環境を入れ替えるのに対し、Immutable Infrastructureは、新しい環境(サーバ群)を立ち上げ切り替えた後は、元々可動していた環境は削除します。従来は、サーバが物理サーバだったため、サーバを用意・購入するだけでも大変だったのですが、近年はクラウドが普及し、即時に仮想サーバが利用でき、さらに「時間単位」でサーバを利用できるようになったため、サーバの即時起動と使い捨てが可能となりました。このため「Immutable Infrastructure」のように、環境(サーバ群)の使い捨てることができるようになったのです。

「Immutable Infrastructure」のメリットして「サーバを設定して変更しないので、長年使い続けて変更を重ねてきたサーバに対し、全てのサーバが同じ状態であることが保証される。」「テストした環境で問題が無ければ、そのまま公開できる。また、公開後に問題があった場合は戻せば良い」といったメリットがあります。

一方デメリットとしては「サーバの使い捨て」をするためにログが残らず、ログを集約化する必要があること、データベースやストレージなどを「使い捨てる」には、まだ難易度が高いということもあります。

ところで「Immutable Infrastructure」ですが非常に言いにくいですよね。先進的な人達には既に「II(あいあい)」という略称が広がっているようです。(私はあまり聞いたことがありませんが…)

[関連リンク]

Immutable Infrastracture について - apatheia.info

今さら聞けない Immutable Infrastructure - 昼メシ物語

Trash Your Servers and Burn Your Code: Immutable Infrastructure and Disposable Components - Chad Fowler

《Configuration(コンフィギュレーション)とOrchestration(オーケストレーション)》

昨年は「Chef(しぇふ)」の年だったと言っても過言では無いほどChefがナウいヤング先進的な人達にとって話題となりました。ChefやAnsible(あんしぶる/あんしぼぉ)に代表されるConfiguration(こんふぃぎゅれーしょん)ツールは、「構成管理ツール」「サーバ管理ツール」とも呼ばれているもので、サーバの作成やパッケージのインストールなどを自動で行ってくれるツールです。

この「Configurationツール」の他に、最近では個々のサーバの設定だけでなく、大量のサーバの対してアプリケーションをインストールしたり設定を行う「Orchestration(おーけすとれーしょんつーる)」が登場しています。

ここでは主なConfigurationツール、Orchestrationツールをご紹介します。

《Configuration(こんふぃぎゅれーしょん)》

Chef(しぇふ)

[関連リンク]
サーバー設定ツール「Chef」の概要と基礎的な使い方 - さくらのナレッジ

Ansible(あんしぶる/あんしぼぉ)

[関連リンク]
Ansible でさくらのVPS の環境構築を自動化 〜ハマりポイントとともに〜 - akiyoko blog
構成管理ツール Ansible について - apatheia.info

《Orchestration(おーけすとれーしょん)》

Fabric(ふぁぶりっく)

[関連リンク]
Fabricでサーバーの初期設定を自動化する | 日曜研究室

Fabricでサーバー管理をDRYにしよう - 倖せの迷う森

Capistrano(きゃぴすとらーの)

[関連リンク]
CapistranoとChefでサーバー管理を自動化〜インスタンス作成から15分で実戦投入〜 : ニフティクラウド ユーザーブログ

Serf(さーふ)

[関連リンク]
正月休みだし Serf 触ってみた - sonots:blog

今回はここまでです。次回は「Flat-File CMS」について書こうと思います。

-Blog