読者です 読者をやめる 読者になる 読者になる

weblog of key_amb

主にIT関連の技術メモ

CHEF Business Meetup に行ってきた #getchef #getchef_ja

システム構成管理 勉強会

5/20 クリエーションライン社で行われた「CHEF Business Meetup ~CHEF社Dicretor来日イベント~」に行ってきました。

内容は前半が ChefConf 2015(3/31-4/2開催)のレポート、後半が Chef Evangelist の Seth Thomas によるセッションでした。

以下、聴講のメモです。

ChefConf 2015 レポート

クリエーションライン社顧問 鈴木さん

15分ぐらい遅刻して、前半部分を聞き損ねました。
こちらの資料は後ほど CL Lab に公開されるとのことでした。

  • Disney の事例
    • IT投資してる
      • OSS 組合せて独自にシステム構築
    • 独自 Cookbook 多数
    • 独自 Supermarket
    • 300 台の Hadoop
    • 30 個の Cookbook
    • 20 PB の Hadoop ストレージ
    • BI
    • Chef, Docker, Mesos, ...
    • アーキテクチャ
      • Hypervisor 型 VM
      • その上に Docker コンテナ
      • サービスディスカバリに Consul 使ってる
      • Mesos でリソース管理
      • Packer でコンテナのビルド・テストして Docker Registry に push
    • 得られたもの
      • 全BIアプリケーションのレポジトリを統合できた
      • コンテナ運用を Mesos 上で実現できた
  • Keynote by Adam Jacob - Chef CTO / Co-Founder
  • Keynote by ... - Chef VP
    • アジャイル開発の問題
      • 開発だけアジャイルになっても運用で受け入れられない
    • Amazon のデプロイ統計
      • 11.6秒間隔
      • 最大 1079 回/hour
      • ...
    • Google の事例
      • 1万人以上の開発者、2000以上のプロジェクトが1つのコードトランクに対して統合して開発
      • 毎分20位上のコード変更が行われている
      • 全コードの半分以上が毎月必ず変更を受ける
      • 1日に1億個以上のテストケースが実行される
    • AWS の事例
      • 開発ルール
        • すべてのデータと機能の仕様はサービスインタフェース経由で提供
        • 開発チームはこれらのインタフェースでコミュニケートする
        • 他の手法を用いたプロセス間通信は禁止
        • 使用する技術は問わない: HTTP, Corba, Pub/Sub
        • すべてのサービスインタフェースは外部に公開できる品質にする
      • 「コードを作った人は運用の責任を持つ」

CHEF DELIVERY

Seth Thomas
@cheeseplus

  • CHEF DELIVERY
  • Shared Pipeline
    • 認証システムの統合
    • フェーズ
      • Union => Rehearsal => Delivered
  • Unified Pipeline Shape
  • Chef 社が Chef Delivery を社内で使ってる
    • コーポレートシステムとか
  • DEMO: コーポレートウェブサイトをどう更新してるか
    • Web UI
    • Build フェーズ
      • Unit Test, Lint, Syntax
      • 承認
    • Union フェーズ
      • 特定の arch/マシンにレシピを実行してみる(?)
    • Rehearsal ... リハーサル環境
    • どんな変更でもこれらのテストスイートを全部通す
    • Pipeline
      • ビルドの単位?
  • chef-solo => chef-zero migration
    • chef-zero に書き替えるだけ、と。
  • Test Kitchen について
    • Fletcher Nichol ...作った人
    • Cookbook をテストするツール
    • VM 作って provisioning して VM 破棄する
  • DEMO
    • Fixture Cookbooks
      • テスト用のクックブック
      • Resource と Provider のみ
      • 他の Cookbook から使う
    • vagrant の設定 - .kitchen.yml
      • private network
    • AWS 上でテストもできる
      • .kitchen.yml に API Key, AMI ID など定義する
    • ViPR
  • Test Framework を選べる
    • Minitest, Serverspec, ...
  • Cookbook 開発支援ツール
    • foodcritic
    • RUBOCOP
    • GUARD
      • file system の変更をフックに動く仕組み
      • 保存する度に foodcritic / RUBOCOP 走らせるとか
      • chef 以外でも使える
  • Q/A
    • chef-solo => chef-zero 移行
      • なぜ移行する必要があるのか?
        • サーバ機能を使いたい
        • chef-solo だとノードの検索とかできない

懇親会にて

いま chef-solo を使ってる人たちって別にサーバ機能欲してないのに、chef-zero に移行しないといけないのはちょっとなーと思って、その辺りを Seth Thomas さんに聞いてみました。

曰く、
「移行を強制するわけじゃないけど、オススメしたい」と。

よく知らなかったのですけど、chef-zero(chef-client --local-mode)で立ち上げられたインメモリの chef-server はコマンド実行後に破棄されるそうです。

なんとなく心配していたのは、単にサーバ構築したいだけなのに chef-server に依存せざるを得ない状況になるのではないか、ということでしたが、上の話であればそんなことにはならなさそうだなと思いました。

余談

Seth Thomas の Twitter 上の名前が「大丈夫コンピューター」になってたのが気になって、つい「どういう由来なの?」って聞いてしまいました。

すると、下のような回答が返ってきました。