KLab勉強会#4へ行ってきました

第3回に引き続き、第4回のKLab勉強会にも参加させていただきました。

今回のテーマは、システム管理に関するもので、割と普段やっていることに近い話題だったので、興味深かったです。
相変わらず、刺激をもらいまくりで楽しかったです。以下にメモをペタッと貼り付けておきます。

DSASのやりくり - MATRIXの秘密と効率的なシステム管理の関係

お馴染みKLabのひろせさん(id:hirose31)。
余談だけど、今度「サーバ24時」(仮)なる書籍が出るらしい。KLab+はてなの方で執筆しているとか。これは期待!


さて、本題だけど、サーバをたくさん(数十台、数百台とか)管理していると、運用管理(手間がかかりまくり、管理できない、オペミス発生、とか)が面倒だけど、KLabさんではどう解決したかってテーマ。

  • サーバ情報の一元管理には「MATRIX」を使っている
    • サーバの一覧役割状態管理とかを定義しておく
    • テキスト形式で、、、
      • []とかで役割を書く
      • [WARN]とか[STOP]とか状態もかける
  • サーバ台数が多くなると覚えきれない
    • MATRIXのshバインディング
      • シェル変数にサーバの役割やらを書く、全サーバ分定義してあるっぽい
    • source /etc/dsds.conf で読み込ませる
    • 全てのサーバに持たせてある
      • 集中管理サーバにしていると、こけたときが大変、全てのサーバに持たせているので大丈夫
  • XXXに対してXXXしたい
    • dsas.confでXXXサーバは定義済なので、変数指定で実行可能
      • FORALL
        • 全サーバに対してXXXできる
      • SYNCALL
        • 全サーバに対してコピー
        • 全サーバにファイルコピーは、最も使用頻度が高い
      • DIFFALL
        • 全サーバに対して同一性を確認する
  • 設定ファイルが長すぎる
    • httpd.confとかkeepalived.conf(DSASのは2600行くらいあるらしい)とか
    • matrix-refrecton
      • httpd、keepalivedの設定を生成できる
        • 2600行もイジっているとミスするので、こういう仕組みが必要
  • 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の起動状態とかも監視&制御できる
  • 課題
    • 様々な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)とかいらっしゃって、もう刺激もらいまくりですた。皆さんに負けないように私も明日から精進したいと思います。