ぺーぺーSEのブログ

備忘録・メモ用サイト。

サーバプロビジョニング

流行ってるからまとめ。

サーバプロビジョニングレイヤー定義

  • Bootstrapping
    • 説明
      • OSインストール
    • ツール
      • PXE boot + kickstart/preseed
      • Cobbler
      • EC2
      • OpenStack
  • Configuration
    • 説明
      • ミドルのインストール/設定
    • ツール
      • Puppet
      • Chef
      • Ansible
      • OpsWorks
  • Orchestration
    • 説明
      • 複数台に関連するConfiguration
      • 例1)サーバ管理ツールに登録(admintool)
      • 例2)監視ツールに登録(Nagios、Zabbix、Sensu、NewRelic)
      • 例3)メトリクス収集ツールに登録(Ganglia、Munin)
      • 例4)DNS登録(所謂、Blue-Green Deploymentもここで可能か)
      • 例5)ロードバランサ登録(BigIP、nginx、HAProxy)
    • ツール

Serf

Orchestrationの中で一番Hotっぽいから取り上げとく。

  • Serfの役割
  • 出来ることの例
    • ノードが追加されたら自動でNagios監視対象に
    • ノードが追加されたら自動でMuninの監視対象に
    • ノードが追加されたら自動で/etc/hostsに追加
    • 追加だけでなくノードの削除、故障、リカバリ等も検知できる

コンテナ

単機能・軽量なVM

  • Docker
    • ポータブルなのでローカル環境と本番環境で同じコンテナが使える
    • つまりローカルで十分テストした後にそのままデプロイすることができる。
    • 1コンテナ1機能と単純化してそれらを組み合わせてサービスをつくることが可能

これからのサーバプロビジョニング[2014/02/14に書いた]

  • テスト駆動でインフラ構築
    • BootstrappingにDocker
    • PuppetやChef
    • テストにserverspec
  • インフラCIで継続的インフラテスト
    • Jenkins
  • テストが通ったらコンテナまるごとデプロイ
    • Messos/YARNで自動的なリソース配分・最適化
    • SerfでOrchestration

テスト駆動インフラ

テスト駆動インフラが駆動するのはインフラそのものではなくインフラを記述したコードを書くこと
serverspecはインフラの状態をテストするためのツールではない
インフラの状態を記述した「コード」をテストするためのツール

ツール

  • HAProxy
    • ロードバランサ
      • 中央集権
  • MyDNS
  • Big IP
    • ロードバランサ
      • 中央集権
  • Ganglia
    • リソースメトリクス
      • gmond、Agent型
  • Munin
    • リソースメトリクス
      • 中央集権
  • Nagios
  • Sensu
  • GrowthForecast、Focuslight
  • Fluentd
    • ログ収拾
      • Agent型