Your SlideShare is downloading. ×
Ruby and Rails,  as secret weapon to build your service-oriented apps
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Ruby and Rails, as secret weapon to build your service-oriented apps

3,778
views

Published on

Published in: Technology

1 Comment
2 Likes
Statistics
Notes
No Downloads
Views
Total Views
3,778
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
23
Comments
1
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Ruby and Rails, as secret weapon to build your service-oriented appsFriday, July 15, 2011
  • 2. Felipe Talavera @flypeFriday, July 15, 2011
  • 3. Agenda - What’s a service? - Peertransfer case - A Typical rails application - Advantages of the services approach - Partitioning in services - Ruby ToolboxFriday, July 15, 2011
  • 4. What is a service? System that respond to HTTP requests: Twitter API, Amazon S3 API, New York Times API System that provides functionality through a standard interface: MySQL, Memcached, RabbitMQ, ...Friday, July 15, 2011
  • 5. Service-oriented designFriday, July 15, 2011
  • 6. Service-oriented design is about creating systems that group functionality around logical function and business practices.Friday, July 15, 2011
  • 7. Services should be designed to be interoperable and reusable.Friday, July 15, 2011
  • 8. Splitting up parts into components that can be iterated on, improved, and fixed without having to test and verify all the other components when an individual is updated or added.Friday, July 15, 2011
  • 9. Usually entails a trade-off between complexity and iteration speed.Friday, July 15, 2011
  • 10. Amazon AWS Every piece of the AWS architecture is exposed as a web service, low-level system components exposed through a services layer. S3, SQS, SimpleDB, CloudFront, EC2Friday, July 15, 2011
  • 11. Friday, July 15, 2011
  • 12. Friday, July 15, 2011
  • 13. The Rails development style is all about quick iterations.Friday, July 15, 2011
  • 14. A Typical rails ApplicationFriday, July 15, 2011
  • 15. A Typical rails ApplicationFriday, July 15, 2011
  • 16. The key to pairing Rails applications with services is to use Rails for its strengths and switch over to services when a more stable approach is requiredFriday, July 15, 2011
  • 17. Service-oriented systems sacrifice iteration speed for stability, reuse, and robustness.Friday, July 15, 2011
  • 18. Advantages of using services than a typical monolithic application:Friday, July 15, 2011
  • 19. Isolation...Friday, July 15, 2011
  • 20. Business Logic IsolationFriday, July 15, 2011
  • 21. Shared system isolationFriday, July 15, 2011
  • 22. Full IsolationFriday, July 15, 2011
  • 23. Testing in IsolationFriday, July 15, 2011
  • 24. RobustnessFriday, July 15, 2011
  • 25. ScalabilityFriday, July 15, 2011
  • 26. Scalability on team and sizeFriday, July 15, 2011
  • 27. Reduces complexity in the codebaseFriday, July 15, 2011
  • 28. AgilityFriday, July 15, 2011
  • 29. InteroperabilityFriday, July 15, 2011
  • 30. Partitioning Functionality into Separate Services:Friday, July 15, 2011
  • 31. Partitioning on iteration speedFriday, July 15, 2011
  • 32. Partitioning on Logical FunctionFriday, July 15, 2011
  • 33. Partition on Read/Write frequenciesFriday, July 15, 2011
  • 34. Partition on Join FrequencyFriday, July 15, 2011
  • 35. Versioning • http://localhost:3000/api/v1/users/1 • http://localhost:3000/users/1?version=1 • http://localhost:3000/api/v2/users/1Friday, July 15, 2011
  • 36. Downsides Releases dependencies nightmare Smoke test suit mandatory More moving parts and integration points Trivial rails stuff gets harder Failure tolerance is hardFriday, July 15, 2011
  • 37. Ruby ToolboxFriday, July 15, 2011
  • 38. JRubyFriday, July 15, 2011
  • 39. RailsFriday, July 15, 2011
  • 40. SinatraFriday, July 15, 2011
  • 41. GoliathFriday, July 15, 2011
  • 42. EventmachineFriday, July 15, 2011
  • 43. ActiveResourceFriday, July 15, 2011
  • 44. HTTParty / TyphoeusFriday, July 15, 2011
  • 45. ForemanFriday, July 15, 2011
  • 46. VagrantFriday, July 15, 2011
  • 47. AMQPFriday, July 15, 2011
  • 48. ConclusionFriday, July 15, 2011
  • 49. books Enterprise Integration Patterns Designing, Building, and Deploying Messaging SolutionsFriday, July 15, 2011
  • 50. Questions?Friday, July 15, 2011
  • 51. We are hiring! peertransfer.comFriday, July 15, 2011
  • 52. Friday, July 15, 2011
  • 53. Friday, July 15, 2011
  • 54. Friday, July 15, 2011
  • 55. Thanks!Friday, July 15, 2011