Next-Generation Ruby Deployment with Heroku

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    12 Favorites

    Next-Generation Ruby Deployment with Heroku - Presentation Transcript

    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

    + Adam WigginsAdam Wiggins, 1 month ago

    custom

    1632 views, 12 favs, 8 embeds more stats

    RubyFoo 2009 presentation

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 1632
      • 1177 on SlideShare
      • 455 from embeds
    • Comments 0
    • Favorites 12
    • Downloads 38
    Most viewed embeds
    • 293 views on http://adam.blog.heroku.com
    • 109 views on http://adamblog.heroku.com
    • 22 views on http://mndoci.com
    • 16 views on http://flashingneurons.deepaksingh.net
    • 7 views on http://articlesliner.blogspot.com

    more

    All embeds
    • 293 views on http://adam.blog.heroku.com
    • 109 views on http://adamblog.heroku.com
    • 22 views on http://mndoci.com
    • 16 views on http://flashingneurons.deepaksingh.net
    • 7 views on http://articlesliner.blogspot.com
    • 3 views on http://posterous.com
    • 3 views on http://www.mndoci.com
    • 2 views on http://www.slideshare.net

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories