サーバの構築作業や運用管理を自動化する「chef」 (cadc研究レポート発表lt)
TRANSCRIPT
1http://www.flickr.com/photos/jonathanbeard/3307862620/
[[研究課題レポート発表研究課題レポート発表]]
サーバの構築作業 運用 をサーバの構築作業 運用 を自動化する「自動化する「ChefChef」」
(株)サイバーエージェントアメーバ事業本部 プラットフォームDivサービスディベロップメントG, CADC
並河 祐貴(id:rx7, @namikawa)
2http://www.flickr.com/photos/jonathanbeard/3307862620/
最近、割とよくある光景
3http://www.flickr.com/photos/jonathanbeard/3307862620/
○△の負荷がパないので、
4http://www.flickr.com/photos/jonathanbeard/3307862620/
サーバを30台増設するしかない。
5http://www.flickr.com/photos/jonathanbeard/3307862620/
来週までに。
6http://www.flickr.com/photos/jonathanbeard/3307862620/
(((( ;゚Д゚)))ガクガクブルブル
7http://www.flickr.com/photos/jonathanbeard/3307862620/
Chefを使って、急なサーバ増設も、普通にこなせるようになってきました!
8http://www.flickr.com/photos/jonathanbeard/3307862620/
「「ChefChef」とは」とは• サーバの構築作業 システム の ール
– システムのあるべき状態を設定する• オープンソース、Ruby製
• 用実– 37signals– Engine Yard– Rackspace hosting– etc…
9http://www.flickr.com/photos/jonathanbeard/3307862620/
サーバ構築・システム 自動化の 勥勯サーバ構築・システム 自動化の 勥勯
• 手作業では、そもそも時間がかかる– 数十台、数百台のレベルになると・・・– 割のサーバ とに が発生したりとか
サーバ までのリード イムが くなることで機会損失を発生させることは避けたい
運用中のサーバでのミスは特に無くしたい設定に間違いがあっても自動化しておく事で即修正可能
• 人為的なミスを抑えたい– 作業 れ、ルーチン作業でのオ ミス– 作業者によって、スキルにバラつき
10http://www.flickr.com/photos/jonathanbeard/3307862620/
それ、シェルスクリプトでよくそれ、シェルスクリプトでよくねね??
• Chefでは内部DSLを採用– スクの をできる け えつつ、Rubyでの
柔軟な記述ができる
• プラットフォームの が できる– ディストリビ ーションによって ンドに
• yumとaptとか、adduserとuseraddとか・・・
• サーバの状態が記述できるフレームワーク
11http://www.flickr.com/photos/jonathanbeard/3307862620/
ChefChefのシステムアーキテクチャのシステムアーキテクチャ• Ruby• Merb(Rack)• CouchDB• Solr• RabbitMQ• (Java)• (Erlang)• HTTP(REST)• JSON
Chef-Server
API
Chef-Server
WebUI
RabbitMQ
CouchDB Solr
Chef-Solr
Indexer
Chef-ClientChef-ClientChef-Client Knife
Client
12http://www.flickr.com/photos/jonathanbeard/3307862620/
ChefChefのちょっとイケのちょっとイケててないところないところ• 名前がSEO的に致命的・・・
– Chef, Cookbook, Recipe, knife...
• dry-runができない・・・
• エラー文がちょっとわかりづらい・・・
13http://www.flickr.com/photos/jonathanbeard/3307862620/
実際の設定については時間の都合上、割愛します
14http://www.flickr.com/photos/jonathanbeard/3307862620/
現状と今後現状と今後• アメーバでは、ピグを中心に使い始めています。
• 手探りで使っているので、設定の書き方も、初期と比べて変わってきた。
• クラウド等の基盤サービスと連携して、インフラ構築/運用の完全オートメーションができる仕組みにしたい。