Service Oriented Architecture Vs Monolithasaurus

  • 634 views
Uploaded 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 …

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.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
634
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
12
Comments
0
Likes
3

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