More Related Content
Similar to Next-Generation Ruby Deployment with Heroku (20)
More from Adam Wiggins (8)
Next-Generation Ruby Deployment with Heroku
- 2. Me: Adam Wiggins
•RestClient
•Sumo
•Scanty
•rush
•Pony
•Heroku co-founder
http://adam.blog.heroku.com
http://github.com/adamwiggins
- 13. New tools
•Perl
•Java
•Apache
•MySQL, PostgreSQL
•Linux
- 18. A decade of improvements:
•Agile
•Web standards
•Ruby
•Web frameworks
•Distributed revision control
•Virtualization
•Cloud
- 22. Ruby, circa 2009
•Apache (Passenger)
•Linux
•MySQL
•Capistrano (automated ssh)
•Virtual machine
- 28. Use Git to manage your
deployments
The same thing you use to
collaborate with other developers.
- 31. Instant deployment!
$ heroku create
Created http://myapp.heroku.com/ | git@heroku.com:myapp.git
Git remote heroku added
$ git push heroku master
- 32. Instant deployment!
$ heroku create
Created http://myapp.heroku.com/ | git@heroku.com:myapp.git
Git remote heroku added
$ git push heroku master
Counting objects: 4, done.
Total 4 (delta 0), reused 0 (delta 0)
- 33. Instant deployment!
$ heroku create
Created http://myapp.heroku.com/ | git@heroku.com:myapp.git
Git remote heroku added
$ git push heroku master
Counting objects: 4, done.
Total 4 (delta 0), reused 0 (delta 0)
-----> Heroku receiving push
-----> Sinatra app detected
Compiled slug size is 4K
-----> Launching.... done
http://myapp.heroku.com deployed to Heroku
- 36. Rake
$ heroku rake db:migrate
(in /disk1/home/slugs/59315_629097a_a8c8/mnt)
== CreateWidgets: migrating
==================================================
-- create_table(:widgets)
-> 0.0648s
== CreateWidgets: migrated (0.0650s)
=========================================
- 37. Console
$ heroku console
Ruby console for myapp.heroku.com
>> Widget.find(:first)
=> #<Widget id: 1, name: "Hello, world", size: nil,
created_at: "2009-09-24 01:16:40", updated_at: "2009-09-24
01:16:40">
- 38. More features
•Custom domains
•Gem management
•Database import/export
•Cron
•SSL
•Background jobs
•HTTP caching
•Memcached
http://docs.heroku.com
- 40. Scale?
•Provision servers
•Install OS
•Setup packages
•Install app
•mongrel_cluster.yml
•httpd.conf
- 41. Scale?
•Provision servers
•Install OS
•Setup packages
•Install app
•mongrel_cluster.yml
•httpd.conf
- 44. “If you can make it here,
you can make it anywhere”
(standard open source
components, no lock-in)