3. Agenda
- What’s a service?
- Peertransfer case
- A Typical rails application
- Advantages of the services approach
- Partitioning in services
- Ruby Toolbox
Friday, 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
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, EC2
Friday, 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 required
Friday, 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 hard
Friday, July 15, 2011