第3回に引き続き、第4回のKLab勉強会にも参加させていただきました。
今回のテーマは、システム管理に関するもので、割と普段やっていることに近い話題だったので、興味深かったです。
相変わらず、刺激をもらいまくりで楽しかったです。以下にメモをペタッと貼り付けておきます。
DSASのやりくり - MATRIXの秘密と効率的なシステム管理の関係
お馴染みKLabのひろせさん(id:hirose31)。
余談だけど、今度「サーバ24時」(仮)なる書籍が出るらしい。KLab+はてなの方で執筆しているとか。これは期待!
さて、本題だけど、サーバをたくさん(数十台、数百台とか)管理していると、運用管理(手間がかかりまくり、管理できない、オペミス発生、とか)が面倒だけど、KLabさんではどう解決したかってテーマ。
- サーバ情報の一元管理には「MATRIX」を使っている
- サーバの一覧、役割、状態管理とかを定義しておく
- テキスト形式で、、、
- []とかで役割を書く
- [WARN]とか[STOP]とか状態もかける
- サーバ台数が多くなると覚えきれない
- MATRIXのshバインディング
- シェル変数にサーバの役割やらを書く、全サーバ分定義してあるっぽい
- source /etc/dsds.conf で読み込ませる
- 全てのサーバに持たせてある
- 集中管理サーバにしていると、こけたときが大変、全てのサーバに持たせているので大丈夫
- MATRIXのshバインディング
- XXXに対してXXXしたい
- dsas.confでXXXサーバは定義済なので、変数指定で実行可能
- FORALL
- 全サーバに対してXXXできる
- SYNCALL
- 全サーバに対してコピー
- 全サーバにファイルコピーは、最も使用頻度が高い
- DIFFALL
- 全サーバに対して同一性を確認する
- FORALL
- dsas.confでXXXサーバは定義済なので、変数指定で実行可能
- 設定ファイルが長すぎる
- httpd.confとかkeepalived.conf(DSASのは2600行くらいあるらしい)とか
- matrix-refrecton
- httpd、keepalivedの設定を生成できる
- 2600行もイジっているとミスするので、こういう仕組みが必要
- httpd、keepalivedの設定を生成できる
- MATRIXの言語バインディング
- sh, perl, php
- dmetad
- メタデータサーバ
- 統一的なI/Fでアクセス・情報を提供できる
- リクエスト
- HTTP(GET only)
- レスポンス
- sh, yaml, json
- リクエスト
- http://meta/{role}/{property}
- 例 ⇒ /ps/node, /ps/vip とか
- まとめ
- 一元管理
- 重複の排除
- 同じ情報を複数の場所で管理するのは良くない
- 適度に管理ファイルをまとめる
- ばらしすぎると数が多くない過ぎて大変
- まとめるとみづらい
- 重複の排除
- 機械にやらせる
- 手間・ミスを減らす
- 一元管理
最後にひろせさんが、
- サバ管もコード書きたい
- サーバ管理も楽しいけど、コード書くのも楽しい
とおっしゃっていたのが印象的だった。共感。
オープンソースシステム管理フレームワークFunc
mizzy.orgの宮下さん。
今はpaperboy&co.でシステムアーキテクトをしていらっしゃるとか。(ロリポップやってるトコ)
- Funcについて
- システム管理フレームワーク
- システム管理用のプログラムを開発するためのフレームワーク
- 複数のサーバに対して、何らかの処理を一括してまとめて実行できる
- なんらかの部分は、モジュールで拡張できる
- ちなみに、gihyo.jpで連載中
- システム管理フレームワーク
- Funcの特徴
- ホスト情報も管理する
- やりとりは、XMLRPC over HTTPS
- SSL証明書による相互認証
- Pythonの内部データ形式で結果取得できる
-
- 構成
- certmaster(管理サーバ) ⇒ funcd(クライアント、実際に処理する)
- 構成
-
- Funcを使えるのは、まだFC6、RHEL4以降のみ
- 起動スクリプト、モジュールがRedHat依存になっている
- virtモジュールの利用
- XenやVMの起動状態とかも監視&制御できる
- Funcを使えるのは、まだFC6、RHEL4以降のみ
- 課題
- 様々なOSへの対応
- puppetのようなOSの違いを吸収するための仕組みが必要
- モジュールの充実
- Func上で動作するアプリケーションの充実
- ホスト管理方法のバリエーション
- DBとか、YAMLとかLDAPとか
Func...かなり魅力的に映りました。複数のサーバに同一の処理を実行させることが簡単に出来そうです。モジュールも色々あるみたいだし、これは是非使ってみようと思った。
懇親会
終わったあとは、もちろん懇親会へ。色々、情報交換させてもらいました。
つか、皆さんすごいよねー。うちみたいな"スーツの会社"の中にいると無縁のようなテクニカルトークを延々としていました。お腹いっぱいです。
個人的には、座った席の両隣が、古橋さん(id:viver)と水野さん(id:mizuno_takaaki)で、最初ちょっと緊張しましたw
VIVER CORE Serverを活用していますよーって話をすると、古橋さんから「初めて使っているって話を聞きました」と。「コミッタになりませんか?」とお誘いを受けたりw
使っている人、意外といないのかなぁ、あんなに素晴らしいのに。VIVER COREについては、今度ブログに書いて紹介しますよ!VIVER COREだけじゃなくて、Partty!についても。
水野さんは、今は百度にいらっしゃる(元は、はてな)そうで。百度のクローラ問題で、なかなか苦労していらっしゃるみたいです。でも、もう大丈夫ですから!とのこと。その他、百度についても色々と。
同じテーブルには他にも、価格コムのイケてる方や、PHPのフレームワーク(Maple)作った方(id:kunit)とかいらっしゃって、もう刺激もらいまくりですた。皆さんに負けないように私も明日から精進したいと思います。