Wakameで手軽にRailsを大規模化する株式会社あくしゅ山崎泰宏
!例えばこんな話
ある日突然僕のサイトにたくさんの人が来た
あっさりキャパシティオーバー
ボスが怒ってる!「なんとかしろ!」
「えっ?!」
急に言われても、今いっぱいいっぱいです…
「…や、やります」
「明日の朝までにな!」
!
急にスケールアウトしとけとか言われて泣きそうになったこと、ありませんか?
間に合わないからAmazon EC2にしよう!
これで仮想マシンの調達が自動化できちゃう!けど!
セットアップは手動なのか?!俺がやんの?
セットアップも自動化すべき!2009/6/26 Ver. 0.4 Release# gem install wakame
Rails (passenger) を10個増やす!# wakameadmpropagate_service \Wakame::Service::Apache_APP 10
MySQLレプリケーションも3個追加する!# wakameadmpropagate_service \Wakame::Service::MySQL_Slave 3
あと見てるだけ
Railsが増える!Load BalancerMySQLが増える!StaticPassengerPassengerPassengerLoad BalancerMySQL MasterMySQLSlaveMySQLSlaveMySQLSlave大規模化する…!
Amazon S3StorageMachine Image FileAmazon Machine ImageMasterAgentAmazon EC2Server + XenOthers(Web+DB+etc.)Server + XenServer + XenWeb APIsAmazon Management Console / ElasticfoxWakameはどのように増えるか?
StorageMachine Image FileWakameをインストールしておく(1/7)MasterWakameAgentServer + XenOthers(Web+DB+etc.)Server + XenServer + XenWeb APIsマシン起動
StorageMachine Image Fileマシンイメージを起動する(2/7)Machine Image FileMasterAgentインスタンスの起動MasterOthers(Web+DB+etc.)AgentServer + XenOthers(Web+DB+etc.)Server + XenServer + XenWeb APIs
StorageMachine Image FileMasterはAgentに指示をする(3/7)Machine Image FileMasterサービス起動指示AgentMasterサービス起動Others(Web+DB+etc.)AgentServer + XenOthers(Web+DB+etc.)Server + XenServer + XenWeb APIs
スケールアウトしろ!(4/7)Machine Image FileStorageスケールアウト計画の指示MasterMachine Image FileAgentMasterOthers(Web+DB+etc.)AgentServer + XenOthers(Web+DB+etc.)Server + XenServer + XenWeb APIs
StorageMachine Image FileMasterから新インスタンスを要求(5/7)Machine Image FileMasterAgentMasterマシン起動Others(Web+DB+etc.)AgentServer + XenOthers(Web+DB+etc.)Server + XenServer + XenWeb APIs
新しいAgentが登場(6/7)Machine Image FileMachine Image FileStorageMasterMasterMachine Image FileAgentAgentMasterインスタンスの起動Others(Web+DB+etc.)Others(Web+DB+etc.)AgentServer + XenOthers(Web+DB+etc.)Server + XenServer + XenWeb APIs
新Agent経由でセットアップ(7/7)Machine Image FileMachine Image FileStorageMasterMasterMachine Image Fileサービス起動指示AgentAgentMasterサービス起動Others(Web+DB+etc.)Others(Web+DB+etc.)AgentServer + XenOthers(Web+DB+etc.)Server + XenServer + XenWeb APIs
いまどきソフトウェアは最初からスケールアウト可能なように書くのが当たり前です!しかし!
珍獣大規模サイトの運用まで経験した人は数少ない!
混ぜてみよう
WakameまとめLet’s 実験,be 珍獣手軽にRailsを大規模化できる
Photo copyrightshttp://www.flickr.com/photos/fotoosvanrobin/3644415777/http://www.flickr.com/photos/zadeus/345628105/http://www.flickr.com/photos/janramroth/2596734632/http://www.flickr.com/photos/smailtronic/506742200/http://www.flickr.com/photos/66164549@N00/2093219011/http://www.flickr.com/photos/gillesgonthier/2158761836/http://www.flickr.com/photos/tscherno/1439629882/http://www.flickr.com/photos/55638925@N00/2386548957/http://www.flickr.com/photos/mscheltgen/56521788/http://www.flickr.com/photos/falsepositives/2862982252/http://www.flickr.com/photos/tsackett/8664708/http://www.flickr.com/photos/a_mason/3993146/http://www.flickr.com/photos/smatkins/2233167722/http://www.flickr.com/photos/rhouse/1679839435/Creative Commons - Attribution-Share Alike 2.0 Generic
http://github.com/axsh/wakame/分散テクノロジグループ山崎泰宏(y-yamazaki@axsh.net / @sparklegate)藤原勝弘(m-fujiwara@axsh.net)吉田将士(masahito@axsh.net)三上悟 (s-mikami@axsh.net)

20090717 Ruby Kaigi Lightning Talk