ruby and rails, as secret weapon to build your service-oriented apps
Post on 18-Oct-2014
4.064 views
DESCRIPTION
TRANSCRIPT
![Page 1: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/1.jpg)
Ruby and Rails, as secret weapon to build your
service-oriented apps
Friday, July 15, 2011
![Page 2: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/2.jpg)
Felipe Talavera
@flype
Friday, July 15, 2011
![Page 3: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/3.jpg)
- What’s a service?
- Peertransfer case
- A Typical rails application
- Advantages of the services approach
- Partitioning in services
- Ruby Toolbox
Agenda
Friday, July 15, 2011
![Page 4: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/4.jpg)
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, ...
What is a service?
Friday, July 15, 2011
![Page 5: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/5.jpg)
Service-oriented design
Friday, July 15, 2011
![Page 6: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/6.jpg)
Service-oriented design is about creating systems that group functionality around logical function and business practices.
Friday, July 15, 2011
![Page 7: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/7.jpg)
Services should be designed to be interoperable and reusable.
Friday, July 15, 2011
![Page 8: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/8.jpg)
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
![Page 9: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/9.jpg)
Usually entails a trade-off between complexity and iteration speed.
Friday, July 15, 2011
![Page 10: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/10.jpg)
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, EC2
Friday, July 15, 2011
![Page 11: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/11.jpg)
Friday, July 15, 2011
![Page 12: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/12.jpg)
Friday, July 15, 2011
![Page 13: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/13.jpg)
The Rails development style is all about quick iterations.
Friday, July 15, 2011
![Page 14: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/14.jpg)
A Typical rails Application
Friday, July 15, 2011
![Page 15: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/15.jpg)
A Typical rails Application
Friday, July 15, 2011
![Page 16: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/16.jpg)
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 required
Friday, July 15, 2011
![Page 17: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/17.jpg)
Service-oriented systems sacrifice iterationspeed for stability, reuse, and robustness.
Friday, July 15, 2011
![Page 18: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/18.jpg)
Advantages of using services than a typical monolithic application:
Friday, July 15, 2011
![Page 19: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/19.jpg)
Isolation...
Friday, July 15, 2011
![Page 20: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/20.jpg)
Business Logic Isolation
Friday, July 15, 2011
![Page 21: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/21.jpg)
Shared system isolation
Friday, July 15, 2011
![Page 22: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/22.jpg)
Full Isolation
Friday, July 15, 2011
![Page 23: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/23.jpg)
Testing in Isolation
Friday, July 15, 2011
![Page 24: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/24.jpg)
Robustness
Friday, July 15, 2011
![Page 25: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/25.jpg)
Scalability
Friday, July 15, 2011
![Page 26: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/26.jpg)
Scalability on team and size
Friday, July 15, 2011
![Page 27: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/27.jpg)
Reduces complexity in the codebase
Friday, July 15, 2011
![Page 28: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/28.jpg)
Agility
Friday, July 15, 2011
![Page 29: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/29.jpg)
Interoperability
Friday, July 15, 2011
![Page 30: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/30.jpg)
Partitioning Functionality into
Separate Services:
Friday, July 15, 2011
![Page 31: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/31.jpg)
Partitioning on iteration speed
Friday, July 15, 2011
![Page 32: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/32.jpg)
Partitioning on Logical Function
Friday, July 15, 2011
![Page 33: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/33.jpg)
Partition on Read/Write frequencies
Friday, July 15, 2011
![Page 34: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/34.jpg)
Partition on Join Frequency
Friday, July 15, 2011
![Page 35: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/35.jpg)
Versioning
• http://localhost:3000/api/v1/users/1
• http://localhost:3000/users/1?version=1
• http://localhost:3000/api/v2/users/1
Friday, July 15, 2011
![Page 36: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/36.jpg)
DownsidesReleases dependencies nightmare
Smoke test suit mandatory
More moving parts and integration points
Trivial rails stuff gets harder
Failure tolerance is hard
Friday, July 15, 2011
![Page 37: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/37.jpg)
Ruby Toolbox
Friday, July 15, 2011
![Page 38: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/38.jpg)
JRuby
Friday, July 15, 2011
![Page 39: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/39.jpg)
Rails
Friday, July 15, 2011
![Page 40: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/40.jpg)
Sinatra
Friday, July 15, 2011
![Page 41: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/41.jpg)
Goliath
Friday, July 15, 2011
![Page 42: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/42.jpg)
Eventmachine
Friday, July 15, 2011
![Page 43: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/43.jpg)
ActiveResource
Friday, July 15, 2011
![Page 44: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/44.jpg)
HTTParty / Typhoeus
Friday, July 15, 2011
![Page 45: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/45.jpg)
Foreman
Friday, July 15, 2011
![Page 46: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/46.jpg)
Vagrant
Friday, July 15, 2011
![Page 47: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/47.jpg)
AMQP
Friday, July 15, 2011
![Page 48: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/48.jpg)
Conclusion
Friday, July 15, 2011
![Page 49: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/49.jpg)
books
Enterprise Integration Patterns Designing,
Building, and Deploying Messaging Solutions
Friday, July 15, 2011
![Page 50: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/50.jpg)
Questions?
Friday, July 15, 2011
![Page 51: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/51.jpg)
We are hiring!
peertransfer.com
Friday, July 15, 2011
![Page 52: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/52.jpg)
Friday, July 15, 2011
![Page 53: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/53.jpg)
Friday, July 15, 2011
![Page 54: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/54.jpg)
Friday, July 15, 2011
![Page 55: Ruby and Rails, as secret weapon to build your service-oriented apps](https://reader034.vdocuments.mx/reader034/viewer/2022051816/5442d67fb1af9f390a8b47af/html5/thumbnails/55.jpg)
Thanks!
Friday, July 15, 2011