Building Heroku Add-ons

Building Heroku Add-ons

My talk, "Building Heroku Add-ons For Fun and Profit" from RubyKaigi 2013 in Tokyo, Japan. http://rubykaigi.org/2013/talk/S85

Video: https://vimeo.com/70673040

880fffa706e2e38eb293e3b8b04053c1?s=128

Matthew Conway

May 31, 2013
Tweet

Transcript

  1. Building  Heroku  Add-­‐ons For  Fun  and  Profit

  2. Hello! ͜Μʹͪ͸ʂ

  3. @mattonrails

  4. Baltimore,  Maryland http://www.flickr.com/photos/timshahan/

  5. San  Francisco,  California http://www.flickr.com/photos/art-dara/

  6. Tokyo,  Japan

  7. It’s  amazing! ͍͢͝Ͷʂ

  8. Heroku

  9. None
  10. None
  11. What  are  add-­‐ons?

  12. None
  13. Kinds  of  Add-­‐on  Services • Email  and  SMS • Analytics

    • Search • Data  Stores • Logging • Payments
  14. Email  and  SMS ϝʔϧ΍4.4

  15. Analytics ෼ੳ࿦

  16. Search αʔν

  17. Data  Stores σʔλϕʔε

  18. Logging ϩΪϯά

  19. Payments ࢧ෷͍

  20. And  more... ͱ΋ͬͱ

  21. What  do  they  do?

  22. • Cloud  AMQP  writes   info  to  log  stream •

    Papertrail  alerts  based   on  events Composability Logs  go  in,  logs  go  out
  23. How  it  works

  24. Overview

  25. Provisioning

  26. Provisioning

  27. Provisioning

  28. Provisioning

  29. Consuming

  30. Consuming

  31. Consuming

  32. Single  sign-­‐on

  33. First  Add-­‐on!

  34. Become  a  Provider

  35. addons.heroku.com/provider

  36. Become  a  Provider • Sign  up  for  Heroku,  register  as

     provider • Join  the  provider  mailing  list,  read  docs • Push  up  your  manifest • Build  sample  consumer  (Ruby  gem,  etc)
  37. None
  38. addon-­‐manifest.json { "id": "ocha", "name": "Ocha", "api": { "password": "pasuwādo",

    "sso_salt": "rc0kUK2xvctX8UQW", "regions": ["us"], "production": { "base_url": "http://.../heroku/resources", "sso_url": "http://.../sso/login" }, "test": { "base_url": "http://localhost:5000/heroku/ resources", "sso_url": "http://localhost:5000/sso/login" } }, "requires": ["syslog_drain"] }
  39. Kensa ݕࠪ

  40. Kensa • Create  your  add-­‐on • Test-­‐drive  its  API •

    Validate  your  add-­‐on   manifest gem  install  kensa github.com/kensa
  41. Testing $ kensa test Testing POST /heroku/resources Check response [PASS]

    Check valid JSON [PASS] Check authentication [PASS] Testing response Check contains an id [PASS] (id 1) Testing PUT /heroku/resources/1 Check response [PASS] Check authentication [PASS] Testing DELETE /heroku/resources/1 Check response [PASS] Check authentication [PASS] done.
  42. The  Business

  43. The  Business • Edit  Features,  Benefits  and  Plans • Edit

     documentation • User  and  revenue  reports • User  feedback
  44. Marketing ϚʔέςΟϯά

  45. Billing ՝ۚ

  46. What  will  you  build?

  47. Help  make  add-­‐ons  better Providers Users

  48. Cute! ͔Θ͍͍ʂ

  49. Thank  you. ͋Γ͕ͱ͏͍͟͝·ͨ͠