【Consul】 v.0.3 バージョンアップのまとめ

【Consul】 v.0.3 バージョンアップのまとめ はてなブックマーク - 【Consul】 v.0.3 バージョンアップのまとめ


6月13日に Consul の最新版 v.0.3.0 がリリースされていました。いくつかの機能追加や、改善が図られています。以下、v.0.2 からの変更点と、v.0.4 のロードマップに向けたメモです。

てっきり、このブログに書いたと思って居たのですが、完全に私の思い違いでした。Qiita に投稿したつもりで、自己満足してしいたようです、気づきませんでした。。Qiita いいですよね。ブログに書き記すような重たいことじゃなくて、日々のメモを、マークダウンで手軽に書けるのは便利なところ。これはいいものだ。作った中の人、すごい。

さて、以下 ChangeLog の中を、日本語で軽く追っていきます。

ところで、Consul って何?という方は、先日資料を作りましたので、こちらをご覧ください (ご注文は自動化ですか? Serf と Consul を使って運用を楽しくする話 @ JTF2014)。

■ v.0.3 の変更点

細かなバグ修正以外、大きな機能は以下の通りです。

  • KVS のロック機能、セッション機能の搭載
  • DNS キャッシュ ( TTL ) の対応
  • Web UI の改善
  • パフォーマンス改善

(6/26 追記;新しい機能に関するドキュメントについては、別途、参考訳を書きました。参考程度となりますが、よろしければどうぞ。)

■ KVS のロック機能・セッション機能

機能的な目玉としては、KVS の値をロックできるようになりました。ロックされている値は、更新や削除を行う事ができません。ロックの設定・解除は、Web UI を通してか、HTTP API を使えるようになります。

ドキュメントによると、スプリットブレイン対策にもなるようで、可用性をとるか安全性を取るか、利用者側で選択出来るようですね。あとは、セッション機能が実装されましたが、これは次のバージョンで本格実装される、クライアント側のリーダ選出に向けてようです。

これは、Consul サーバのリーダ選出ではなく、サービスのマスターを特定する機能のようです。現時点でも、有る程度できるようで、自分も試そうと思っていますが、まだ試せていません。次の v.0.4 から正式に使えるみたいですね。今後に期待です。

(一応、今回も自分の参考訳っぽいものを作りましたけど、必要な方いらっしゃいますか・・・?)

■ DNS インターフェースに TTL 機能が追加

Qiita で別途まとめていましたので、以下ご覧下さい。

Consulのノードやサービス検出でTTL値の設定 – Qiita
http://qiita.com/zembutsu/items/4965ec2e3ff7838673a1

Consulの名前解決にDNS Forwardingを使う方法 – Qiita
http://qiita.com/zembutsu/items/ea05fbeff06cafb5ec2e

■ Web UI の改善

Web UI が微妙に調整され、使いやすくなりました。セッションやロックの状況を確認したり、KVS を操作するのであれば、Web を通した作業が、比較的やりやすいと思います。

使うには、Consul 本体とは別のパッケージを取得する必要があります。

# wget -O 0.3.0_web_ui.zip https://dl.bintray.com/mitchellh/consul/0.3.0_web_ui.zip
# unzip 0.3.0_web_ui.zip

展開したあとは、そのディレクトリを、適当な場所に移動させます。

# mkdir /opt/consul
# mv ./dist/ /opt/consul/webui

あとは、consul server 起動時に ‘-ui-dir=/opt/consul/webui/’ のように指定することで、Web UI が使えるようになります。http://<ホスト>:8500/ にブラウザからアクセスすると、自動的に画面が遷移します。

■パフォーマンス改善

個人的に嬉しいのが、この改善点です。Serf に比べると Consul は、コマンドの応答が「もっさり」している印象がありました。ですが、v.0.3 になって、操作感覚は Serf のそれと同じ感じです。

ちなみに、@ijin さんの JTF2014 の発表資料でも、p.35 以降にパフォーマンス計測の記録が掲載されいます。他にも Consul の概要がスッキリまとめられていて、とても良い資料ですね。

■ v.0.4 に向けて

Consul は順調に開発がすすんでいる模様です。Google Groups への作者さんによる投稿を読むと、イベントハンドラ等、Serf のイベント・クエリが利用可能になる事を目指すようです。他にはロック機能を拡充させ、クライアントによるサービスのリーダ選出も検討されているようですね。

そして、次のメジャーバージョンで、いよいよ Serf の機能が取り込まれてくるか…!! ( ゚д゚) ガタッ
そうなると、色々出来る事が増えそうです。現行バージョンでは、Serf と Consul を組みあわせ、ある意味でトリッキーな方法を使っている所が、Consul 単体で、割と手軽にできそうです。

■ 参考