Building Services on and off Rails

6,814 views
6,655 views

Published on

Build Ruby services with Grape and Roar and embed into Rails or run standalone. Provides working examples of both.

Published in: Technology, Education
0 Comments
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
6,814
On SlideShare
0
From Embeds
0
Number of Embeds
4,522
Actions
Shares
0
Downloads
25
Comments
0
Likes
6
Embeds 0
No embeds

No notes for slide

Building Services on and off Rails

  1. 1. Building Services on and off Rails
  2. 2. SLIDES AT bit.ly/reverb-soa
  3. 3. 3 TAKEAWAYS
  4. 4. WHY WRITE SERVICES RECOMMENDED STACK EMBEDDED VS. STANDALONE
  5. 5. WHY WRITE SERVICES RECOMMENDED STACK EMBEDDED VS. STANDALONE
  6. 6. WHY WRITE SERVICES RECOMMENDED STACK EMBEDDED VS. STANDALONE
  7. 7. Yan Pritzker, CTO Reverb.com github.com/skwp @skwp github.com/reverbdev @reverbdotcom
  8. 8. Yan Pritzker, CTO Reverb.com github.com/skwp @skwp github.com/reverbdev @reverbdotcom On Rails since 2005 (0.13.4)
  9. 9. RAILS IS EASY
  10. 10. RAILS IS FUN
  11. 11. RAILS IS BLOATED
  12. 12. STARTUP 10-20s
  13. 13. HOW DID WE GET HERE?
  14. 14. MONOLITHS
  15. 15. LOTS OF GEMS
  16. 16. LOTS OF CONTROLLERS
  17. 17. LOTS OF MODELS
  18. 18. LOTS OF LIBS
  19. 19. LOTS OF DOMAIN
  20. 20. SOLUTION? SERVICES
  21. 21. A SERVICE IS...
  22. 22. BITS OF ISOLATED FUNCTOINALITY
  23. 23. BEHIND A BIG WALL
  24. 24. SPEAKING JSON
  25. 25. WHY?
  26. 26. SCALE YOUR TEAM
  27. 27. SCALE DOWNTIME
  28. 28. SCALE PERFORMANCE
  29. 29. SCALE PRODUCTIVITY
  30. 30. SCALE HAPPINESS
  31. 31. DIVORCE FROM RAILS AND...
  32. 32. FAST SPECS
  33. 33. EXPERIMENT WITH FRAMEWORKS
  34. 34. EXPERIMENT WITH LANGUAGES
  35. 35. EXPERIMENT WITH ARCHITECTURE
  36. 36. OUR STACK
  37. 37. Grape API
  38. 38. Grape API Roar Representers
  39. 39. Grape API Roar Representers application/hal+json
  40. 40. Grape API Roar Representers application/hal+json ActiveRecord
  41. 41. Grape API Roar Representers application/hal+json Or Something Else
  42. 42. DEPLOYMENT?
  43. 43. EMBED IT!
  44. 44. CREATE THE GEM
  45. 45. WRITE GRAPE API
  46. 46. PUT IT ON RAILS
  47. 47. github.com/reverbdev/chimp Gemified Service Example
  48. 48. EMBEDDING IS EASY
  49. 49. AND YOU CAN DEVELOP IN ISOLATION
  50. 50. BUT IT’S NOT IDEAL
  51. 51. DEPENDENCY CONFLICTS
  52. 52. CONSTRAINS RUBY VERSION
  53. 53. ADDS TO APP BLOAT
  54. 54. DEPLOY IT STANDALONE!
  55. 55. THIN / UNICORN
  56. 56. FOREMAN / UPSTART
  57. 57. MINA / CAPISTRANO
  58. 58. SERVICE SKELETON github.com/reverbdev/service-skeleton
  59. 59. We’re Hiring! Rubyists/iOS/ Musicians

×