2014年6月10日

Chef/serverspecを使ってPostgres-XLを2分でデプロイする(デモ動画あり)

先月、PostgreSQLのMPP拡張であるPostgres-XLがリリースされました。
PostgreSQLでも最近はデータウェアハウス系のトピックが増えてきており、Postgres-XLも注目を集めています。

一方で、このようなクラスタ系のツールや拡張は、複数のサーバから構成される複雑な構成を取ることも多く、なかなか簡単に試してみるというわけにはいきません。

そのため、今回、Postgres-XLの最少構成をデプロイするためのChefのレシピと、そのデプロイのテストをするためのserverspecスクリプトのツールキット一式を作成しましたのでご紹介します。

前提条件は以下の通りです。
  • RHEL6/CentOS6系のディストリビューションであること
  • インターネット接続が使えること(yumやgemを使います)
  • Chef soloとserverspecが動く状態になっていること
  • 構成は「GTM×1、コーディネータ×1、データノード×1」を1台に同居
Postgres-XLは、
  • 「GTM」と呼ばれる管理系プロセス
  • 「コーディネータ」と呼ばれるクライアントからの接続を受け付けるプロセス
  • 「データノード」と呼ばれる実際のデータI/Oを行うプロセス
という、3つのプロセスから構成されています。

今回のスクリプトおよびデモ動画では、これら3つを1台のサーバ(VM)上にデプロイして動作させます。Chef soloによるデプロイ、serverspecによるテストと、psqlコマンドによる接続確認までを行っています。(なお、動作確認はvagrant上のCentOS 6.4で行っています)

では、デモ動画をどうぞ(高解像度なのでVimeo.com上でHD版を見ることをお勧めします)。


Deploying Postgres-XL in 2 minutes from uptimejp on Vimeo.

以上のように、非常に短時間で簡単にデプロイできるようになっています。

Chefのレシピとserverspecスクリプトは以下で公開しています。
このツールキットを使うと、デモ動画の通り、約2分程度で最小構成のPostgres-XLのデプロイを行うことができます。(今回のデモ動画で使っているのは master ブランチの r20140610 タグのものです)

デプロイできるのはまだ最小構成のみですが、今後拡張することによって、複数サーバのクラスタ構成にデプロイできるようにしていく予定です。

今回のスクリプト類を使えば、非常に小さい構成を簡単にデプロイできますので、Postgres-XLに興味を持った方は、ぜひ試してみていただければと思います。

では、また。

0 件のコメント:

コメントを投稿