Next-Generation Ruby Deployment with Heroku

7,809 views
7,437 views

Published on

RubyFoo 2009 presentation

Published in: Technology, Education
3 Comments
18 Likes
Statistics
Notes
  • 1. デプロイにgitを使う
    2. create herokuでURLとリポジトリ作成
    3. pushするとどの言語、フレームワークか判断
    4. herokuコンソール上でrails c, rakeも実行可能
    5. customdomain, gem, cron, ssl, backgroundなども可能!
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Useful info!... I have a question. I'm newbie of ruby and heroku, and i wonder if i can create a game for internet with this stuff. I'm a graphic designer and i don't know too much about code,
    Thanks in advance!
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • best ad- http://madugunduk.blogspot.com - good articles for more information.:- *Best content good articles
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
7,809
On SlideShare
0
From Embeds
0
Number of Embeds
835
Actions
Shares
0
Downloads
158
Comments
3
Likes
18
Embeds 0
No embeds

No notes for slide

Next-Generation Ruby Deployment with Heroku

  1. Next-Generation Ruby Deployment with Heroku Adam Wiggins RubyFoo 2009
  2. Me: Adam Wiggins •RestClient •Sumo •Scanty •rush •Pony •Heroku co-founder http://adam.blog.heroku.com http://github.com/adamwiggins
  3. Part 1 My Journey
  4. Living the dream: a career in video games
  5. Game industry development: •Bad tools •Bad process
  6. Game industry development: •Bad tools •Bad process
  7. Feedback Loop Compile & run: minutes Release: years
  8. “There must be a better way”
  9. Career change
  10. New tools •Perl •Java •Apache •MySQL, PostgreSQL •Linux
  11. New process •Just-in-time compilation •Frequent deployments
  12. Feedback Loop Compile & run: seconds Release: weeks
  13. •Better tools •Fast feedback
  14. •Better tools •Fast feedback Productivity!
  15. A decade of improvements: •Agile •Web standards •Ruby •Web frameworks •Distributed revision control •Virtualization •Cloud
  16. The Bad News
  17. Deployment tools and process haven’t improved much in ten years.
  18. Perl, circa 1999 •Apache (mod_perl) •Linux •MySQL •ssh •Colocated hardware
  19. Ruby, circa 2009 •Apache (Passenger) •Linux •MySQL •Capistrano (automated ssh) •Virtual machine
  20. It’s time for a revolution in web app deployment
  21. Part 2 Heroku
  22. Forget about servers
  23. Forget about servers It’s about your app.
  24. Use Git to manage your deployments The same thing you use to collaborate with other developers.
  25. Instant deployment! $ heroku create
  26. Instant deployment! $ heroku create Created http://myapp.heroku.com/ | git@heroku.com:myapp.git Git remote heroku added
  27. Instant deployment! $ heroku create Created http://myapp.heroku.com/ | git@heroku.com:myapp.git Git remote heroku added $ git push heroku master
  28. 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)
  29. 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
  30. Feedback Loop Compile & run: seconds Release: seconds
  31. Rake $ heroku rake db:migrate (in /disk1/home/slugs/59315_629097a_a8c8/mnt) == CreateWidgets: migrating ================================================== -- create_table(:widgets) -> 0.0648s == CreateWidgets: migrated (0.0650s) =========================================
  32. 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">
  33. More features •Custom domains •Gem management •Database import/export •Cron •SSL •Background jobs •HTTP caching •Memcached http://docs.heroku.com
  34. Scale?
  35. Scale? •Provision servers •Install OS •Setup packages •Install app •mongrel_cluster.yml •httpd.conf
  36. Scale? •Provision servers •Install OS •Setup packages •Install app •mongrel_cluster.yml •httpd.conf
  37. Go big! Crank your dynos
  38. Free for small apps; pay when you grow
  39. “If you can make it here, you can make it anywhere” (standard open source components, no lock-in)
  40. Deployed Apps 36000 27000 18000 9000 0 Dec May Oct Apr Sep
  41. Part 3 Heroku Internals
  42. Built for the cloud from day one
  43. Built for the cloud from day one
  44. HTTP caching
  45. HTTP caching
  46. Routing mesh
  47. Routing mesh
  48. Slug compiler
  49. Asynchronous cross-language messaging
  50. Asynchronous cross-language messaging
  51. Ruby!
  52. http://heroku.com

×