Heroku
   Jeweler + Gemcutter
                    All Ruby Goodness



a riej a n .dev ro om@k a bi sa .n l



           ...
What the ...?
What the ...?



Rails deployment with Heroku
What the ...?



Rails deployment with Heroku

Creating gems with Jeweler and Gemcutter
Heroku
What’s Heroku?
What’s Heroku?

Easy deployment of Ruby-based apps
What’s Heroku?

Easy deployment of Ruby-based apps

Hosted in the Amazon EC2 Cloud
What’s Heroku?

Easy deployment of Ruby-based apps

Hosted in the Amazon EC2 Cloud

Offering of easy to integrate third-pa...
What’s Heroku?

Easy deployment of Ruby-based apps

Hosted in the Amazon EC2 Cloud

Offering of easy to integrate third-pa...
What’s Heroku?

Easy deployment of Ruby-based apps

Hosted in the Amazon EC2 Cloud

Offering of easy to integrate third-pa...
What’s Heroku?

Easy deployment of Ruby-based apps

Hosted in the Amazon EC2 Cloud

Offering of easy to integrate third-pa...
“Problems”
“Problems”

You don’t have root access
“Problems”

You don’t have root access

Your app lives in the cloud.
“Problems”

You don’t have root access

Your app lives in the cloud.

You need Heroku to pull your data out
“Problems”

You don’t have root access

Your app lives in the cloud.

You need Heroku to pull your data out

You have no d...
“Problems”

You don’t have root access

Your app lives in the cloud.

You need Heroku to pull your data out

You have no d...
Amazon EC2 vs. Heroku
Amazon EC2 vs. Heroku


Hardware as a Service vs. Platform as a Service
Amazon EC2 vs. Heroku


Hardware as a Service vs. Platform as a Service

Ruby Oriented
Amazon EC2 vs. Heroku


Hardware as a Service vs. Platform as a Service

Ruby Oriented

No hardware knowledge required
Amazon EC2 vs. Heroku


Hardware as a Service vs. Platform as a Service

Ruby Oriented

No hardware knowledge required

Li...
Heroku vs. Kabisa Hosting
Heroku vs. Kabisa Hosting

Heroku scales with a few clicks
Heroku vs. Kabisa Hosting

Heroku scales with a few clicks

Easy deployment, including gem dependencies
Heroku vs. Kabisa Hosting

Heroku scales with a few clicks

Easy deployment, including gem dependencies

Pay as you go - o...
Heroku vs. Kabisa Hosting

Heroku scales with a few clicks

Easy deployment, including gem dependencies

Pay as you go - o...
Heroku vs. Kabisa Hosting

Heroku scales with a few clicks

Easy deployment, including gem dependencies

Pay as you go - o...
Heroku vs. Kabisa Hosting

Heroku scales with a few clicks

Easy deployment, including gem dependencies

Pay as you go - o...
Give Heroku a Spin!
Ingredients
Ingredients


A Heroku account (you did read the email,
right?)
Ingredients


A Heroku account (you did read the email,
right?)

A sample rails app
Ingredients


A Heroku account (you did read the email,
right?)

A sample rails app

An open terminal
First, a local blog!
First, a local blog!

Get a rails app working locally
First, a local blog!

Get a rails app working locally

 gem install faker
First, a local blog!

Get a rails app working locally

 gem install faker

 git clone
       git://github.com/ariejan/kks-...
First, a local blog!

Get a rails app working locally

 gem install faker

 git clone
       git://github.com/ariejan/kks-...
First, a local blog!

Get a rails app working locally

 gem install faker

 git clone
       git://github.com/ariejan/kks-...
Second, deploy to Heroku
Second, deploy to Heroku

Deploying is easy. No capistrano required!
Second, deploy to Heroku

Deploying is easy. No capistrano required!

 gem install heroku
Second, deploy to Heroku

Deploying is easy. No capistrano required!

 gem install heroku

 heroku create <appname>
Second, deploy to Heroku

Deploying is easy. No capistrano required!

 gem install heroku

 heroku create <appname>

 git ...
Second, deploy to Heroku

Deploying is easy. No capistrano required!

 gem install heroku

 heroku create <appname>

 git ...
Push your development data
Push your development data

Easily push data into your production app
Push your development data

Easily push data into your production app

 heroku db:push
Push your development data

Easily push data into your production app

 heroku db:push

 heroku open
Push your development data

Easily push data into your production app

 heroku db:push

 heroku open

You can also do pull...
Push your development data

Easily push data into your production app

 heroku db:push

 heroku open

You can also do pull...
Getting Info
Getting Info



heroku info
Backups? No, bundles!
Backups? No, bundles!


Include app and database dump
Backups? No, bundles!


Include app and database dump

 heroku addons:add bundles:single
Backups? No, bundles!


Include app and database dump

 heroku addons:add bundles:single

 heroku bundles:capture
Backups? No, bundles!


Include app and database dump

 heroku addons:add bundles:single

 heroku bundles:capture

 heroku...
Caveats
Caveats


Gem dependencies
Caveats


Gem dependencies

PostgreSQL (is not MySQL)
Caveats


Gem dependencies

PostgreSQL (is not MySQL)

File uploads
Jeweler & Gemcutter
Jeweler
Jeweler


Easily create and manage your gem
Jeweler


Easily create and manage your gem

Make it easy to release your gem to Gemcutter
Jeweler


Easily create and manage your gem

Make it easy to release your gem to Gemcutter

Manage code on github
Let’s make a kks-gem!
Let’s make a kks-gem!


jeweler --rspec --gemcutter --create-repo
downcaser
Let’s make a kks-gem!


jeweler --rspec --gemcutter --create-repo
downcaser

Edit Rakefile to suit your needs
Let’s make a kks-gem!


jeweler --rspec --gemcutter --create-repo
downcaser

Edit Rakefile to suit your needs

Write specs...
Release version 0.0.1
Release version 0.0.1


rake version:write
Release version 0.0.1


rake version:write

rake version:bump:patch
Release version 0.0.1


rake version:write

rake version:bump:patch

rake gemcutter:release
Release version 0.0.1


rake version:write

rake version:bump:patch

rake gemcutter:release

gem install downcaser
Why Jeweler
Why Jeweler


Makes your life easy
Why Jeweler


Makes your life easy

Focus on writing the gem, not managing it
Why Jeweler


Makes your life easy

Focus on writing the gem, not managing it

Easily release a gem to Gemcutter
Why Gemcutter?
Why Gemcutter?


It’s (or will be) the default gem source
Why Gemcutter?


It’s (or will be) the default gem source

Supported by the Ruby community (including
RubyForge)
Q&A
Upcoming SlideShare
Loading in …5
×

Heroku + Jeweler & Gemcutter

2,920 views

Published on

All Ruby Goodness. Introductory presenation on Heroku, a ruby hosting platform and Jeweler & Gemcutter to create, manager and release ruby gems.

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,920
On SlideShare
0
From Embeds
0
Number of Embeds
132
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide
  • Heroku + Jeweler & Gemcutter

    1. 1. Heroku Jeweler + Gemcutter All Ruby Goodness a riej a n .dev ro om@k a bi sa .n l http://slideshare.net/ariejan/heroku-jeweler-gemcutter
    2. 2. What the ...?
    3. 3. What the ...? Rails deployment with Heroku
    4. 4. What the ...? Rails deployment with Heroku Creating gems with Jeweler and Gemcutter
    5. 5. Heroku
    6. 6. What’s Heroku?
    7. 7. What’s Heroku? Easy deployment of Ruby-based apps
    8. 8. What’s Heroku? Easy deployment of Ruby-based apps Hosted in the Amazon EC2 Cloud
    9. 9. What’s Heroku? Easy deployment of Ruby-based apps Hosted in the Amazon EC2 Cloud Offering of easy to integrate third-party services
    10. 10. What’s Heroku? Easy deployment of Ruby-based apps Hosted in the Amazon EC2 Cloud Offering of easy to integrate third-party services Pay as you go
    11. 11. What’s Heroku? Easy deployment of Ruby-based apps Hosted in the Amazon EC2 Cloud Offering of easy to integrate third-party services Pay as you go Scales!
    12. 12. What’s Heroku? Easy deployment of Ruby-based apps Hosted in the Amazon EC2 Cloud Offering of easy to integrate third-party services Pay as you go Scales! Hosts 42k apps! Including Shopify
    13. 13. “Problems”
    14. 14. “Problems” You don’t have root access
    15. 15. “Problems” You don’t have root access Your app lives in the cloud.
    16. 16. “Problems” You don’t have root access Your app lives in the cloud. You need Heroku to pull your data out
    17. 17. “Problems” You don’t have root access Your app lives in the cloud. You need Heroku to pull your data out You have no direct database access
    18. 18. “Problems” You don’t have root access Your app lives in the cloud. You need Heroku to pull your data out You have no direct database access You have limited access to logs (heroku logs)
    19. 19. Amazon EC2 vs. Heroku
    20. 20. Amazon EC2 vs. Heroku Hardware as a Service vs. Platform as a Service
    21. 21. Amazon EC2 vs. Heroku Hardware as a Service vs. Platform as a Service Ruby Oriented
    22. 22. Amazon EC2 vs. Heroku Hardware as a Service vs. Platform as a Service Ruby Oriented No hardware knowledge required
    23. 23. Amazon EC2 vs. Heroku Hardware as a Service vs. Platform as a Service Ruby Oriented No hardware knowledge required Limiting in choice for third party tools
    24. 24. Heroku vs. Kabisa Hosting
    25. 25. Heroku vs. Kabisa Hosting Heroku scales with a few clicks
    26. 26. Heroku vs. Kabisa Hosting Heroku scales with a few clicks Easy deployment, including gem dependencies
    27. 27. Heroku vs. Kabisa Hosting Heroku scales with a few clicks Easy deployment, including gem dependencies Pay as you go - only pay for the resources you use
    28. 28. Heroku vs. Kabisa Hosting Heroku scales with a few clicks Easy deployment, including gem dependencies Pay as you go - only pay for the resources you use No hardware to maintain or worry about
    29. 29. Heroku vs. Kabisa Hosting Heroku scales with a few clicks Easy deployment, including gem dependencies Pay as you go - only pay for the resources you use No hardware to maintain or worry about Less control over hardware and software choices
    30. 30. Heroku vs. Kabisa Hosting Heroku scales with a few clicks Easy deployment, including gem dependencies Pay as you go - only pay for the resources you use No hardware to maintain or worry about Less control over hardware and software choices It’s not hosted in Eindhoven (latency)
    31. 31. Give Heroku a Spin!
    32. 32. Ingredients
    33. 33. Ingredients A Heroku account (you did read the email, right?)
    34. 34. Ingredients A Heroku account (you did read the email, right?) A sample rails app
    35. 35. Ingredients A Heroku account (you did read the email, right?) A sample rails app An open terminal
    36. 36. First, a local blog!
    37. 37. First, a local blog! Get a rails app working locally
    38. 38. First, a local blog! Get a rails app working locally gem install faker
    39. 39. First, a local blog! Get a rails app working locally gem install faker git clone git://github.com/ariejan/kks-heroku.git
    40. 40. First, a local blog! Get a rails app working locally gem install faker git clone git://github.com/ariejan/kks-heroku.git rake db:migrate && rake db:seed
    41. 41. First, a local blog! Get a rails app working locally gem install faker git clone git://github.com/ariejan/kks-heroku.git rake db:migrate && rake db:seed script/server
    42. 42. Second, deploy to Heroku
    43. 43. Second, deploy to Heroku Deploying is easy. No capistrano required!
    44. 44. Second, deploy to Heroku Deploying is easy. No capistrano required! gem install heroku
    45. 45. Second, deploy to Heroku Deploying is easy. No capistrano required! gem install heroku heroku create <appname>
    46. 46. Second, deploy to Heroku Deploying is easy. No capistrano required! gem install heroku heroku create <appname> git push heroku master
    47. 47. Second, deploy to Heroku Deploying is easy. No capistrano required! gem install heroku heroku create <appname> git push heroku master heroku open
    48. 48. Push your development data
    49. 49. Push your development data Easily push data into your production app
    50. 50. Push your development data Easily push data into your production app heroku db:push
    51. 51. Push your development data Easily push data into your production app heroku db:push heroku open
    52. 52. Push your development data Easily push data into your production app heroku db:push heroku open You can also do pull production data
    53. 53. Push your development data Easily push data into your production app heroku db:push heroku open You can also do pull production data heroku db:pull
    54. 54. Getting Info
    55. 55. Getting Info heroku info
    56. 56. Backups? No, bundles!
    57. 57. Backups? No, bundles! Include app and database dump
    58. 58. Backups? No, bundles! Include app and database dump heroku addons:add bundles:single
    59. 59. Backups? No, bundles! Include app and database dump heroku addons:add bundles:single heroku bundles:capture
    60. 60. Backups? No, bundles! Include app and database dump heroku addons:add bundles:single heroku bundles:capture heroku bundles:download <bundle>
    61. 61. Caveats
    62. 62. Caveats Gem dependencies
    63. 63. Caveats Gem dependencies PostgreSQL (is not MySQL)
    64. 64. Caveats Gem dependencies PostgreSQL (is not MySQL) File uploads
    65. 65. Jeweler & Gemcutter
    66. 66. Jeweler
    67. 67. Jeweler Easily create and manage your gem
    68. 68. Jeweler Easily create and manage your gem Make it easy to release your gem to Gemcutter
    69. 69. Jeweler Easily create and manage your gem Make it easy to release your gem to Gemcutter Manage code on github
    70. 70. Let’s make a kks-gem!
    71. 71. Let’s make a kks-gem! jeweler --rspec --gemcutter --create-repo downcaser
    72. 72. Let’s make a kks-gem! jeweler --rspec --gemcutter --create-repo downcaser Edit Rakefile to suit your needs
    73. 73. Let’s make a kks-gem! jeweler --rspec --gemcutter --create-repo downcaser Edit Rakefile to suit your needs Write specs, write code, commit
    74. 74. Release version 0.0.1
    75. 75. Release version 0.0.1 rake version:write
    76. 76. Release version 0.0.1 rake version:write rake version:bump:patch
    77. 77. Release version 0.0.1 rake version:write rake version:bump:patch rake gemcutter:release
    78. 78. Release version 0.0.1 rake version:write rake version:bump:patch rake gemcutter:release gem install downcaser
    79. 79. Why Jeweler
    80. 80. Why Jeweler Makes your life easy
    81. 81. Why Jeweler Makes your life easy Focus on writing the gem, not managing it
    82. 82. Why Jeweler Makes your life easy Focus on writing the gem, not managing it Easily release a gem to Gemcutter
    83. 83. Why Gemcutter?
    84. 84. Why Gemcutter? It’s (or will be) the default gem source
    85. 85. Why Gemcutter? It’s (or will be) the default gem source Supported by the Ruby community (including RubyForge)
    86. 86. Q&A

    ×