Ari Lerner Michael Fairchild
Monday, June 22, 2009
I have a great idea! This site, its lets you post messages to your friends, and they can follow you...
Monday, June 22, 2009
write an application...
Monday, June 22, 2009
write an application... instantiate servers...
Monday, June 22, 2009
write an application... instantiate servers... configure servers...
Monday, June 22, 2009
write an application... instantiate servers... configure servers... scale them up...
Monday, June 22, 2009
write an application... instantiate servers... configure servers... scale them up... reconfigure...
Monday, June 22, 2009
write an application... instantiate servers... configure servers... scale them up... reconfigure.. scale down... Monday, June 22, 2009
and pay for it ?!?
Monday, June 22, 2009
Wouldn’t it be nice if you could just write one file to do all that?
Monday, June 22, 2009
clouds.rb
Monday, June 22, 2009
cloud :twitterclone do end
Monday, June 22, 2009
cloud :twitterclone do instances 1..10000 end
Monday, June 22, 2009
cloud :twitterclone do instances 1..10000 using :ec2 end
Monday, June 22, 2009
It’s just Ruby
Monday, June 22, 2009
cloud :twitterclone do instances 1..1000 using :ec2 has_file "/etc/motd" do content "hello you" end end
Monday, June 22, 2009
Let’s go already!
Monday, June 22, 2009
write an application... instantiate servers... configure servers... scale them up... reconfigure.. scale down... Monday, June 22, 2009
Ew
Monday, June 22, 2009
cloud-start
Monday, June 22, 2009
cloud-start -s examples/fairchild.rb *** Starting cloud pp1 0 running instances (1 - 3) Adding default gem depdendencies ... 75.101.181.64 stderr => [Sat, 04 Apr 2009 16:46:01 +0000] INFO: Ran execute[line_in_/etc/profile] successfully [Sat, 04 Apr 2009 16:46:01 +0000] INFO: Chef Run complete in 29.883499 seconds Your cloud has started. Your ip is 75.101.181.64
Monday, June 22, 2009
launching...
Monday, June 22, 2009
bootstrapping...
Monday, June 22, 2009
configuring...
Monday, June 22, 2009
cloud-list
Monday, June 22, 2009
$ cloud-list -s examples/fairchild.rb *** Listing cloud pp1 ****** Active instances master 75.101.181.64 i-516f0f38
Monday, June 22, 2009
cloud-ssh cloud-ssh -s examples/fairchild.rb master 75.101.181.64 i-516f0f38 Welcome to your PoolParty instance root@ip-10-251-201-157:~#
Monday, June 22, 2009
poolparty core resources cron directory exec file host mount package remote_file symlink user variable Monday, June 22, 2009
Puppet
Monday, June 22, 2009
Chef
Monday, June 22, 2009
Chef “Chef is a state based, declarative configuration management engine. You define recipes of how you want your system to look and then chef makes it so.” ~Ezra Zygmuntovich
Monday, June 22, 2009
chef do include_recipies "~/recipies/*" has_git_repos :name => "/srv/paparazzi" do source "git://github.com/auser/ paparazzi.git" at "/srv" end
Monday, June 22, 2009
include_recipe "apache2" include_recipe "passenger" include_recipe "rails" web_app "paparazzi" do docroot "/var/www/paparazzi/public" template "paparazzi.conf.erb" server_name "www.paparazzi.com" server_aliases [node[:hostname], node[:fqdn], "paparazzi.com"] rails_env "production" end
Monday, June 22, 2009
cloud :twitterclone do instances 1..1000 using :ec2 chef do include_recipes "~/recipies/*" has_git_repos :name => "/var/www/paparazzi" do source "git://github.com/auser/paparazzi.git" at "/var/www" end end
Monday, June 22, 2009
cloud-configure
Monday, June 22, 2009
Pushes configuration changes to the cloud
Monday, June 22, 2009
Monday, June 22, 2009
Idempotent
Monday, June 22, 2009
unchanged when multiplied by itself
Monday, June 22, 2009
Run it more than once and it won’t change things unless it should
Monday, June 22, 2009
cloud-configure
Monday, June 22, 2009
cloud-configure
Monday, June 22, 2009
cloud-configure
Monday, June 22, 2009
Recipes already available?
Monday, June 22, 2009
Monday, June 22, 2009
OMG! Oprah mentioned twitterclone!
Monday, June 22, 2009
Monday, June 22, 2009
cloud :twitterclone do instances 1..10000 expand_when 'load > 0.8' contract_when 'load < 0.3' end
Monday, June 22, 2009
collective metrics averaged across the cloud
Monday, June 22, 2009
Unequal use of resources
Monday, June 22, 2009
My database server is overloaded, but my web server isn’t
Monday, June 22, 2009
multiple clouds
Monday, June 22, 2009
pool :twitterclone do instances 1..4000 cloud :db do expand_when "memory > 0.9" end cloud :webserver do maximum_instances 10 expand_when "load > 1.2" end end Monday, June 22, 2009
:instances => 2..5 :using => :ec2 :ami => 'alestic ubuntu 8.1' :contract_when => "load < 0.65" :expand_when => "load > 1.9"
Monday, June 22, 2009
cloud :twitterclone do end
Monday, June 22, 2009
Decentralized
Monday, June 22, 2009
PoolParty does not make application assumptions
Monday, June 22, 2009
Only cloud architecture
Monday, June 22, 2009
python c Ruby (my)(postgre)sql(lite) PHP
Monday, June 22, 2009
Whatever
Monday, June 22, 2009
transcoding cloud email blasting cloud particle beam simulation cloud (getting girls) social networks ...
Monday, June 22, 2009
future
Monday, June 22, 2009
more remoter bases
Monday, June 22, 2009
using using using using using using
Monday, June 22, 2009
:ec2 :vmware :gogrid :slicehost :vbox :ssh
Add Your Own!
Monday, June 22, 2009
launch_new_instance! terminate_instance(id) describe_instance(id) describe_instances
Monday, June 22, 2009
scripted deployment testing
Monday, June 22, 2009
continue to modularize dslify aska parenting butterfly commander (soon) Monday, June 22, 2009
Butterfly
Monday, June 22, 2009
HTTP for internode communication
Monday, June 22, 2009
tighter integration of DNS round robin load balancing Monday, June 22, 2009
quorum based actions independent nodes nominate actions based on local state Monday, June 22, 2009
cloud-terminate
Monday, June 22, 2009
Community http://poolpartyrb.com #poolpartyrb (@freenode)
[email protected] [email protected]
Monday, June 22, 2009
Questions?
Monday, June 22, 2009
Thank you
Monday, June 22, 2009
Alternatives • • •
Monday, June 22, 2009
Rightscale Heroku Scalr