マジセミドライブ
ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。
OSS情報
2020.01.01
【OSS情報アーカイブ】Serf


※当記事に記載されている情報は、古くなっている場合があります。オフィシャルサイトで最新情報をご確認ください。
コンテンツ
「Serf」とは
基本情報
概要
Serf(サーフ)とは、非集中/分散型のクラスタ管理ツールです。対象サーバにバイナリを1つ配置して軽量エージェントを起動するだけで、手軽にクラスタを構成できます。
基本説明
Serfは、管理用サーバを必要としないクラスタを簡単に構築できます。
クラスタに所属する複数のサーバで、「死活管理」「障害探知」「一斉にセットアップ/デプロイ用コマンド実行」「バージョンの確認」などを行えます。
発生したイベントに対応してスクリプトを実行させることも可能です。
ポイント
・Go言語実装
・シンプル(機能が必要最小限)
・軽量
・管理サーバ不要(非集中型ソリューション)
・クラスタ構成が容易
・主要プラットフォームで利用可能(Linux, Mac OS X, Windows)
・高可用性
・障害耐性
経緯
HashiCorp社がオープンソースプロダクトとして開発/公開しています。
ユースケース
・構成管理ツール(Chef、Ansibleなど)を一斉実行
・監視ツール(Nagios、Sensu、Zabbixなど)の監視対象の追加/削除の自動化
・特定のサーバプロセスを一斉再起動
・インメモリDB(Redis、Memcachedなど)のクラスタリング
・DNS更新 など
主な特徴
簡単セットアップ
Serfのセットアップは、クラスタ化したいサーバに実行用バイナリファイルをインストールするだけで完了します。
システムに変更を加えずに即座に開始できます。
クラスタメンバー管理機能
主なメンバー管理機能
・クラスタ参加/離脱管理
・メンバー情報管理(ホスト名、IPアドレス、タグ 他) など
障害検出(回復)機能
Serfは、クラスタメンバーが障害などでダウンした場合、それを検出し、残りのメンバーに通知します。また、自動的に復旧させるように動きます。
この段階で指定するスクリプトを動作させることも可能です。
イベント伝搬機能
Serfは、発生したイベントをクラスタ全体で瞬時に共有します。100台のサーバ構成で約2秒で全体に伝播するとされています。
特定のイベントに対するカスタムスクリプトを実行できます。
イベントハンドラ
Serfが発行するイベントは以下のようなものがあります。
・メンバー参加
・メンバー離脱
・メンバーダウン
・メンバーアップデート
・メンバー解除
・カスタムイベント発行
・カスタムクエリ発行 など
カスタムイベント
独自のイベントをクラスタ内に伝搬させることも可能です。
「デプロイトリガー」「クラスタ再起動」などの用途に使用されます。
同様製品
同様な機能を提供する製品として、次のようなものがあります。
オープンソース製品:「Apache Mesos」「Pacemaker」など。
ライセンス情報
Serfのライセンスは「Mozilla Public License Version 2.0」です。このライセンスに従うことを条件として、ソースコードの改変と公開が許可されています。
ダウンロード
参考元サイト
・Serf
・gihyo.jp →Serf/Consulで管理を自動化!~実践的な手法を紹介~ 第1回 Serf入門:動的に変化する環境を簡単に管理
・Think IT →自動化・省力化のためのSerf入門
・SOTA →Serf 虎の巻
・Gunosy Tech Blog →3分でまとめ読むSerfとConsulの基本機能
・cloudpack.media →Serf はじめての運用ツール 〜 インストールとエージェント起動
・さくらのナレッジ →コンテナ/クラウド環境におけるSerfを使った構成管理
※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。