Ruby and Rails,              as secret weapon to build your                  service-oriented appsFriday, July 15, 2011
Felipe Talavera                            @flypeFriday, July 15, 2011
Agenda        - What’s a service?        - Peertransfer case        - A Typical rails application        - Advantages of t...
What is a service?        	 System that respond to HTTP requests:        	 	 Twitter API, Amazon S3 API, New York Times AP...
Service-oriented designFriday, July 15, 2011
Service-oriented design is about creating                systems that group functionality around                logical fu...
Services should be designed to be                           interoperable and reusable.Friday, July 15, 2011
Splitting up parts into components that can          be iterated on, improved, and fixed without              having to tes...
Usually entails a trade-off between                         complexity and iteration speed.Friday, July 15, 2011
Amazon AWS            Every piece of the AWS architecture is exposed as a web            service, low-level system compone...
Friday, July 15, 2011
Friday, July 15, 2011
The Rails development style is all                             about quick iterations.Friday, July 15, 2011
A Typical rails ApplicationFriday, July 15, 2011
A Typical rails ApplicationFriday, July 15, 2011
The key to pairing Rails applications        with services is to use Rails for its strengths            and switch over to...
Service-oriented systems sacrifice iteration           speed for stability, reuse, and robustness.Friday, July 15, 2011
Advantages of using services than                         a typical monolithic application:Friday, July 15, 2011
Isolation...Friday, July 15, 2011
Business Logic                           IsolationFriday, July 15, 2011
Shared system                           isolationFriday, July 15, 2011
Full IsolationFriday, July 15, 2011
Testing in IsolationFriday, July 15, 2011
RobustnessFriday, July 15, 2011
ScalabilityFriday, July 15, 2011
Scalability on team                             and sizeFriday, July 15, 2011
Reduces complexity                 in the codebaseFriday, July 15, 2011
AgilityFriday, July 15, 2011
InteroperabilityFriday, July 15, 2011
Partitioning                         Functionality into                        Separate Services:Friday, July 15, 2011
Partitioning on                        iteration speedFriday, July 15, 2011
Partitioning on                        Logical FunctionFriday, July 15, 2011
Partition on Read/Write           frequenciesFriday, July 15, 2011
Partition on Join                          FrequencyFriday, July 15, 2011
Versioning                        • http://localhost:3000/api/v1/users/1                        • http://localhost:3000/us...
Downsides                           Releases dependencies nightmare                              Smoke test suit mandatory...
Ruby ToolboxFriday, July 15, 2011
JRubyFriday, July 15, 2011
RailsFriday, July 15, 2011
SinatraFriday, July 15, 2011
GoliathFriday, July 15, 2011
EventmachineFriday, July 15, 2011
ActiveResourceFriday, July 15, 2011
HTTParty / TyphoeusFriday, July 15, 2011
ForemanFriday, July 15, 2011
VagrantFriday, July 15, 2011
AMQPFriday, July 15, 2011
ConclusionFriday, July 15, 2011
books                           Enterprise Integration                             Patterns Designing,                    ...
Questions?Friday, July 15, 2011
We are hiring!                         peertransfer.comFriday, July 15, 2011
Friday, July 15, 2011
Friday, July 15, 2011
Friday, July 15, 2011
Thanks!Friday, July 15, 2011
Upcoming SlideShare
Loading in...5
×

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

3,888

Published on

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

No notes for slide

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

  1. 1. Ruby and Rails, as secret weapon to build your service-oriented appsFriday, July 15, 2011
  2. 2. Felipe Talavera @flypeFriday, July 15, 2011
  3. 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. 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. 5. Service-oriented designFriday, July 15, 2011
  6. 6. Service-oriented design is about creating systems that group functionality around logical function and business practices.Friday, July 15, 2011
  7. 7. Services should be designed to be interoperable and reusable.Friday, July 15, 2011
  8. 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. 9. Usually entails a trade-off between complexity and iteration speed.Friday, July 15, 2011
  10. 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. 11. Friday, July 15, 2011
  12. 12. Friday, July 15, 2011
  13. 13. The Rails development style is all about quick iterations.Friday, July 15, 2011
  14. 14. A Typical rails ApplicationFriday, July 15, 2011
  15. 15. A Typical rails ApplicationFriday, July 15, 2011
  16. 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. 17. Service-oriented systems sacrifice iteration speed for stability, reuse, and robustness.Friday, July 15, 2011
  18. 18. Advantages of using services than a typical monolithic application:Friday, July 15, 2011
  19. 19. Isolation...Friday, July 15, 2011
  20. 20. Business Logic IsolationFriday, July 15, 2011
  21. 21. Shared system isolationFriday, July 15, 2011
  22. 22. Full IsolationFriday, July 15, 2011
  23. 23. Testing in IsolationFriday, July 15, 2011
  24. 24. RobustnessFriday, July 15, 2011
  25. 25. ScalabilityFriday, July 15, 2011
  26. 26. Scalability on team and sizeFriday, July 15, 2011
  27. 27. Reduces complexity in the codebaseFriday, July 15, 2011
  28. 28. AgilityFriday, July 15, 2011
  29. 29. InteroperabilityFriday, July 15, 2011
  30. 30. Partitioning Functionality into Separate Services:Friday, July 15, 2011
  31. 31. Partitioning on iteration speedFriday, July 15, 2011
  32. 32. Partitioning on Logical FunctionFriday, July 15, 2011
  33. 33. Partition on Read/Write frequenciesFriday, July 15, 2011
  34. 34. Partition on Join FrequencyFriday, July 15, 2011
  35. 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. 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. 37. Ruby ToolboxFriday, July 15, 2011
  38. 38. JRubyFriday, July 15, 2011
  39. 39. RailsFriday, July 15, 2011
  40. 40. SinatraFriday, July 15, 2011
  41. 41. GoliathFriday, July 15, 2011
  42. 42. EventmachineFriday, July 15, 2011
  43. 43. ActiveResourceFriday, July 15, 2011
  44. 44. HTTParty / TyphoeusFriday, July 15, 2011
  45. 45. ForemanFriday, July 15, 2011
  46. 46. VagrantFriday, July 15, 2011
  47. 47. AMQPFriday, July 15, 2011
  48. 48. ConclusionFriday, July 15, 2011
  49. 49. books Enterprise Integration Patterns Designing, Building, and Deploying Messaging SolutionsFriday, July 15, 2011
  50. 50. Questions?Friday, July 15, 2011
  51. 51. We are hiring! peertransfer.comFriday, July 15, 2011
  52. 52. Friday, July 15, 2011
  53. 53. Friday, July 15, 2011
  54. 54. Friday, July 15, 2011
  55. 55. Thanks!Friday, July 15, 2011
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×