インフラエンジニア勉強会(hbstudy#8)に参加してきた

前から存在は知ってはいたもののまだ一回もいったことなかったんですが、今回はスケジュール的に都合がついたので参加できました。
会社の近くで毎回開催されています。歩いて5分です。これは行くしかないだろうと。

というわけでその復習を兼ねたざっくりした感想中心です。メモしながらスライド見ながらTwitterしながらだったのでここだけ見ても参考にならないので、参加出来なかった方はアップされている資料を見た方がよいでしょう。

インフラエンジニア勉強会hbstudy | 株式会社ハートビーツ
ハッシュタグ#hbstudy

スクリプトを使ったサービスの監視・運用について 〜 パストラックの実例をもとに

スピーカー:奥 一穂さん
資料リンク:Infrastructure of Pathtraq

パストラック(Pathtraq)のインフラについてのお話。自分はこのサービスが公開されたときには使ってたものの今は利用は指定ないんですが、久々に見たら大分変わってますね。

当たり前の感想ですが、設計がきちんと考えられてるなーというものです。想定される負荷を計算してハードウェアの性能からネットワーク・サーバの構成が考えられています。まあ当然すぎることではあるんですが、うちにはあまりない考え方だったりするわけです・・・。こういう考え方を定着させるべく色々画策しています。結構大雑把なハードウェア選定だったりするので、こういう考えたは非常に参考になります。
インフラエンジニアはハードウェアの知識がないとダメですね。まあ自分はこういうの好きなので現状変える余地が沢山あるので結構楽しんでいたりするわけですが。

パストラックではSSDが使われているのは奥さんのブログや書籍で記事を可かれていたりするのでかなり有名だと思うんですが、CPUであったりというハードウェアの部分は知りませんでした。Opteronなんですね。

あとXenServerが使われているのでうちには参考になります。過去の記事ですがこういうのも。
Kazuho@Cybozu Labs: リモートからXenのDomUとかLVMやファイルを差分バックアップするスクリプトを書いた

タスクの管理とか監視とか

監視とは継続的なテストである

バックアップとか

Kazuho@Cybozu Labs: blockdiff を使ったお手軽ホットバックアップ環境の構築 (Linux, MySQL, etc.)

  • blockdiff
    • 実質無停止のホットバックアップ
    • ボリュームレベルのバックアップ
    • インクリメンタルバックアップ
    • エージェントのインストール不要
    • LVMスナップショットを使う
      • ただしスナップショットの差分だけを取ることはできない
      • ZFSiSCSIならできるのに。ZFS最強。
まとめ
  • 必ずしも汎用的ではあるが複雑なツールが優れているとは限らない
  • 細かなツールの組み合わせがいいばあいもある


この結論は同感ですね。複雑にしすぎる必要はないと思います。小回りがきくってのはそれだけでかなりいいことです。
ただまあうちの場合は数が多いのと運用の小回りがきかないのでやはりnagiosやzabbixのようなツールで統合的に監視しないと厳しいんですが・・・。

Puppetのススメ

スピーカー:宮下 剛輔 さん
資料リンク:Puppetのススメ

puppet*1については「サーバ/インフラを支える技術」という書籍にも書いてあるので知ってはいましたが、詳細はよくわかっていませんでした。
使ってみたいなー、うちに結構マッチングするんじゃないかなーとは思ってたので、このセッションは楽しみでした。

puppet
  • rubyで書かれた監視ツール
  • OSのインストールやネットワークの設定、puppetのインストール後のフェーズで設定管理を受け持つ
    • パッケージインストール
    • ユーザー追加
    • パッケージアップデートなど
  • 手作業では問題がどうしても出てくる
    • 時間コスト
    • 正しい手順書があってもミスることもある
    • 手順書自体が古い、更新されていない、間違っているなど
  • 導入のメリット
    • システム構築・アップデートの自動化
    • システムの状態を目に見える形で記録できる
    • マニフェストの独自言語は自由度が低いが、その分管理する人のスキルに依存しにくい
    • サーバー群の集中管理ができる
    • マニフェストはテキスト管理なので、バージョン管理と併用すればトラッキング可能

実際の構成や設定については省略。資料参照。

  • 使いどころ
    • 大量にサーバがある
    • 異なるOSや環境のサーバが混在
    • 台数少なくても同じような手順を何度も実行する可能性がある
    • システムの状態を何らかの形で記録しておきたい、バージョン管理したい
    • インクリメンタル/テスト駆動サーバ構築

まさにうちじゃん・・・。

インクリメンタル/テスト駆動サーバ構築
  • テスト環境ではマニフェストを少しずつ書き足しテストしながら構成を詰めていく
  • puppet化しておくと作り直しがらくちん
  • マニフェストはテスト環境・本番環境のどちらでも使えるように作成。環境の違いはfecter変数などで吸収
  • 本番環境ではテスト環境で作り上げたマニフェストを適用するだけ
  • マニフェストは宣言型言語
    • 設定ではなく言語
    • 手続き型ではない
    • 何を実行するか」ではなく「最終的な状態の定義
      • 手続き型:OpenSSHをインストールする
      • 宣言型:OpenSSHがインストールされた状態にする
    • プロセスの記述と状態の記述の違い

このあとは細かな実際の設定や注意事項とか。そこは資料参照で。ピックアップだけ。

  • パッケージ利用がほぼ必須
  • ロールバックできない
  • サーバ間の依存関係が記述できない
  • パッケージ削除は微妙
    • 追加はyumだけど削除はrpmコマンドでやっているっぽい
    • なので不要なパッケージは最初から入れないようにするのがgood
まとめ

今回は初参加だったけど、これは次回も参加しないといけないなーと思いました。
インフラよりの勉強会ってなかなかないし、会社外の人といろいろ情報交換とか交流したいのでこれはいい機会になります。Twitterでフォローしたりされたりしてる人もいたので話したかったなー。
今回は会社にそのまま戻らないといけない用事があったので懇親会には参加できませんでしたが、次回は絶対参加ですねこれは。
hbstudy(・∀・)イイ!!

興味ある人は勉強会のTwitterのアカウントフォローしておくと情報キャッチ早いと思います。
hbstudy heartbeats (hbstudy) on Twitter

*1:パペットっていうとパペットマペットがいつも出てくる。パペットってのは操り人形という意味なんですね。調べてどちらもなるほどと思った。