serviceorientedarchitecture
serviceorientedarchitecture
Workingmemory
Fightback!- Solid OO techniques- Refactoring- Paying back technical debt- Test driven development- Continuous integration
Easytochange
ServiceOrientedArchitecture
SOABuildapplicationsoutofsmallerones
Services =HTTP =
REST+Messagequeues
REST
MessagequeuesSQS,RabbitMQ,ActiveMQ,Resque,etc
OOprinciples- Single responsibility- Loose coupling- Cohesion- Encapsulation
Realworld?There are no rules
authusersfront-endblogsocialreviewsrecommendationsstock shippingpaymentstagsbasketshistory
Onlinerecordshop
Extractfunctionalityintoservices
ReviewsRecommendationsProductinfoStocklevels
reviews-serviceREST + JSON
reviews-serviceGET /reviews/idPOST /reviewsPATCH /reviews/idDELETE /reviews/id
reviews-serviceGET /reviews/id{ json }
reviews-servicePOST /reviews{ json }
reviews-service{ json }BONUS:Client-siderendering!
reviews-serviceapplication/jsontext/html
Isolated
Reusable
Interoperable
Agile
Scalable
Robust
Shipping
shipping-service
Shop Shipping-serviceMessage queue{ order details }
/api/shippings
IsolatedReusableInteroperableAgileScalableRobust
hydra.ioAPI for building &profiting fromdigital image apps
/uploads /products /orders/artworksimageprocessinghydra.io
/uploads /products /orders/artworksimageprocessinghydra.io
/uploads /products /orders/artworksimageprocessing MongoDB MongoDB MongoDBS3hydra.io
/uploads /products /orders/artworksimageprocessing MongoDB MongoDB MongoDBS3hydra.io
/uploads /products /orders/artworksimageprocessing MongoDB MongoDB MongoDBS3message queue (resque)hydra.io
/uploads /products /orders/artworksimageprocessing MongoDB MongoDB MongoDBS3message queue (resque)hydra.io
/uploads /products /orders/artworksimageprocessing MongoDB MongoDB MongoDBS3message queue (resque)hydra.io
/uploads /products /orders/artworksimageprocessing MongoDB MongoDB MongoDBS3message queue (resque)hydra.io
api.hydra.io proxy (HAProxy)api.hydra.io proxy (HAProxy)api.hydra.io proxy (HAProxy)api.hydra.io proxy (HAProxy)/uploads /...
api.hydra.io proxy (HAProxy)api.hydra.io proxy (HAProxy)api.hydra.io proxy (HAProxy)api.hydra.io proxy (HAProxy)/uploads /...
admin toolsapi.hydra.io proxy (HAProxy)api.hydra.io proxy (HAProxy)api.hydra.io proxy (HAProxy)api.hydra.io proxy (HAProxy...
admin toolsapi.hydra.io proxy (HAProxy)api.hydra.io proxy (HAProxy)api.hydra.io proxy (HAProxy)api.hydra.io proxy (HAProxy...
admin toolsbackbone.jshydra gemapi.hydra.io proxy (HAProxy)api.hydra.io proxy (HAProxy)api.hydra.io proxy (HAProxy)api.hyd...
Small,sharptools
SOAisLegofordevelopers
ChangeiseasyChangeishard
PrefactoringDraw pictures &simplify
Whentoextractintoservices?Mature functionality
EnvironmentsStaging
http://12factor.net/Deployments
Caching at everylayerPerformance
- Test in isolation- Integration testsTesting
EverythingAutomate
Warning!Polyglot?
Reuse&Consistency
Nooo!CentralisedDatabase
Keepcheckingthebigpicture
/api/v2/gorillasVersioning
ParallelHTTPrequests
Smallsteps
Conclusions
1.Disciplinepays
2.Minimisecoupling
3.Smallservices
4.Reducecomplexity
5.Checkthebigpicture
STARTSMALLSTAYSMALL
Thefuture
Service Oriented Architecture Vs Monolithasaurus
Service Oriented Architecture Vs Monolithasaurus
Service Oriented Architecture Vs Monolithasaurus
Service Oriented Architecture Vs Monolithasaurus
Service Oriented Architecture Vs Monolithasaurus
Service Oriented Architecture Vs Monolithasaurus
Service Oriented Architecture Vs Monolithasaurus
Service Oriented Architecture Vs Monolithasaurus
Service Oriented Architecture Vs Monolithasaurus
Service Oriented Architecture Vs Monolithasaurus
Service Oriented Architecture Vs Monolithasaurus
Service Oriented Architecture Vs Monolithasaurus
Service Oriented Architecture Vs Monolithasaurus
Service Oriented Architecture Vs Monolithasaurus
Service Oriented Architecture Vs Monolithasaurus
Upcoming SlideShare
Loading in …5
×

Service Oriented Architecture Vs Monolithasaurus

1,308 views

Published on

SOA is an approach to application design that allows us to build robust, scalable software. This is not about scary enterprise systems, this is about building applications with interoperable, lean services that can provide incredible flexibility and freedom. You will learn the pros (and cons) of this approach, and how you can apply it to your own projects. Using common idioms like REST, HTTP and message queues, complex applications can appear simple again. Simplicity leads to better design, increased agility and developer happiness.

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,308
On SlideShare
0
From Embeds
0
Number of Embeds
48
Actions
Shares
0
Downloads
16
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Service Oriented Architecture Vs Monolithasaurus

  1. 1. serviceorientedarchitecture
  2. 2. serviceorientedarchitecture
  3. 3. Workingmemory
  4. 4. Fightback!- Solid OO techniques- Refactoring- Paying back technical debt- Test driven development- Continuous integration
  5. 5. Easytochange
  6. 6. ServiceOrientedArchitecture
  7. 7. SOABuildapplicationsoutofsmallerones
  8. 8. Services =HTTP =
  9. 9. REST+Messagequeues
  10. 10. REST
  11. 11. MessagequeuesSQS,RabbitMQ,ActiveMQ,Resque,etc
  12. 12. OOprinciples- Single responsibility- Loose coupling- Cohesion- Encapsulation
  13. 13. Realworld?There are no rules
  14. 14. authusersfront-endblogsocialreviewsrecommendationsstock shippingpaymentstagsbasketshistory
  15. 15. Onlinerecordshop
  16. 16. Extractfunctionalityintoservices
  17. 17. ReviewsRecommendationsProductinfoStocklevels
  18. 18. reviews-serviceREST + JSON
  19. 19. reviews-serviceGET /reviews/idPOST /reviewsPATCH /reviews/idDELETE /reviews/id
  20. 20. reviews-serviceGET /reviews/id{ json }
  21. 21. reviews-servicePOST /reviews{ json }
  22. 22. reviews-service{ json }BONUS:Client-siderendering!
  23. 23. reviews-serviceapplication/jsontext/html
  24. 24. Isolated
  25. 25. Reusable
  26. 26. Interoperable
  27. 27. Agile
  28. 28. Scalable
  29. 29. Robust
  30. 30. Shipping
  31. 31. shipping-service
  32. 32. Shop Shipping-serviceMessage queue{ order details }
  33. 33. /api/shippings
  34. 34. IsolatedReusableInteroperableAgileScalableRobust
  35. 35. hydra.ioAPI for building &profiting fromdigital image apps
  36. 36. /uploads /products /orders/artworksimageprocessinghydra.io
  37. 37. /uploads /products /orders/artworksimageprocessinghydra.io
  38. 38. /uploads /products /orders/artworksimageprocessing MongoDB MongoDB MongoDBS3hydra.io
  39. 39. /uploads /products /orders/artworksimageprocessing MongoDB MongoDB MongoDBS3hydra.io
  40. 40. /uploads /products /orders/artworksimageprocessing MongoDB MongoDB MongoDBS3message queue (resque)hydra.io
  41. 41. /uploads /products /orders/artworksimageprocessing MongoDB MongoDB MongoDBS3message queue (resque)hydra.io
  42. 42. /uploads /products /orders/artworksimageprocessing MongoDB MongoDB MongoDBS3message queue (resque)hydra.io
  43. 43. /uploads /products /orders/artworksimageprocessing MongoDB MongoDB MongoDBS3message queue (resque)hydra.io
  44. 44. api.hydra.io proxy (HAProxy)api.hydra.io proxy (HAProxy)api.hydra.io proxy (HAProxy)api.hydra.io proxy (HAProxy)/uploads /products /orders/artworksimageprocessing MongoDB MongoDB MongoDBS3message queue (resque)hydra.io
  45. 45. api.hydra.io proxy (HAProxy)api.hydra.io proxy (HAProxy)api.hydra.io proxy (HAProxy)api.hydra.io proxy (HAProxy)/uploads /products /orders/artworksimageprocessing MongoDB MongoDB MongoDBS3message queue (resque)
  46. 46. admin toolsapi.hydra.io proxy (HAProxy)api.hydra.io proxy (HAProxy)api.hydra.io proxy (HAProxy)api.hydra.io proxy (HAProxy)/uploads /products /orders/artworksimageprocessing MongoDB MongoDB MongoDBS3message queue (resque)
  47. 47. admin toolsapi.hydra.io proxy (HAProxy)api.hydra.io proxy (HAProxy)api.hydra.io proxy (HAProxy)api.hydra.io proxy (HAProxy)/uploads /products /orders/artworksimageprocessing MongoDB MongoDB MongoDBS3message queue (resque)
  48. 48. admin toolsbackbone.jshydra gemapi.hydra.io proxy (HAProxy)api.hydra.io proxy (HAProxy)api.hydra.io proxy (HAProxy)api.hydra.io proxy (HAProxy)/uploads /products /orders/artworksimageprocessing MongoDB MongoDB MongoDBS3message queue (resque)
  49. 49. Small,sharptools
  50. 50. SOAisLegofordevelopers
  51. 51. ChangeiseasyChangeishard
  52. 52. PrefactoringDraw pictures &simplify
  53. 53. Whentoextractintoservices?Mature functionality
  54. 54. EnvironmentsStaging
  55. 55. http://12factor.net/Deployments
  56. 56. Caching at everylayerPerformance
  57. 57. - Test in isolation- Integration testsTesting
  58. 58. EverythingAutomate
  59. 59. Warning!Polyglot?
  60. 60. Reuse&Consistency
  61. 61. Nooo!CentralisedDatabase
  62. 62. Keepcheckingthebigpicture
  63. 63. /api/v2/gorillasVersioning
  64. 64. ParallelHTTPrequests
  65. 65. Smallsteps
  66. 66. Conclusions
  67. 67. 1.Disciplinepays
  68. 68. 2.Minimisecoupling
  69. 69. 3.Smallservices
  70. 70. 4.Reducecomplexity
  71. 71. 5.Checkthebigpicture
  72. 72. STARTSMALLSTAYSMALL
  73. 73. Thefuture

×