Your SlideShare is downloading. ×

Spider Architecture

1,013

Published on

Talk from GlueCon 2012 in Denver, CO on the advent of service-oriented architectures for mobile and web backends where each of the services is managed by a third-party. This structure was first …

Talk from GlueCon 2012 in Denver, CO on the advent of service-oriented architectures for mobile and web backends where each of the services is managed by a third-party. This structure was first popularized by Heroku's addons ecosystem.

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

No Downloads
Views
Total Views
1,013
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
16
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
  • \n
  • \n
  • \n
  • \n
  • \n
  • Libraries treat nginx and database as dumb components. Push everything into Rails.\n
  • Libraries treat nginx and database as dumb components. Push everything into Rails.\n
  • Libraries treat nginx and database as dumb components. Push everything into Rails.\n
  • \n
  • \n
  • \n
  • \n
  • Harder to maintain and tune as scale increases\n
  • \n
  • \n
  • From monolithic to distributed\n
  • \n
  • \n
  • \n
  • Now you need a queuing process (AMQP, 0MQ, RabbitMQ, etc)\nMore and different server images\nPotentially costs more\n
  • Now you need a queuing process (AMQP, 0MQ, RabbitMQ, etc)\nMore and different server images\nPotentially costs more\n
  • Now you need a queuing process (AMQP, 0MQ, RabbitMQ, etc)\nMore and different server images\nPotentially costs more\n
  • Now you need a queuing process (AMQP, 0MQ, RabbitMQ, etc)\nMore and different server images\nPotentially costs more\n
  • Now you need a queuing process (AMQP, 0MQ, RabbitMQ, etc)\nMore and different server images\nPotentially costs more\n
  • Now you need a queuing process (AMQP, 0MQ, RabbitMQ, etc)\nMore and different server images\nPotentially costs more\n
  • Now you need a queuing process (AMQP, 0MQ, RabbitMQ, etc)\nMore and different server images\nPotentially costs more\n
  • Let’s pause for a moment and talk about another set of advancements we’re all familiar with.\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Now you don’t even have to manage your own servers, which IaaS still requires you to do\nJust push code and go\n
  • Let’s focus on Heroku for just a moment\n
  • It introduced a plugin system. Look at this small fraction of things!\n
  • It introduced a plugin system. Look at this small fraction of things!\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • This is the spider architecture. Gluing together external services with a small amount of custom code to create a fully-functioning application.\n
  • Does this look familiar?\n
  • Does this look familiar?\n
  • Does this look familiar?\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Competing with experiences given by Path, Instagram, etc.\nPeople expect near-perfect UX, and it’s not trivial to accomplish.\n
  • \n
  • \n
  • \n
  • \n
  • Transcript

    • 1. Exploring the Spider Architecture Marc Weil Founder & CTO, CloudMinemarc@cloudmine.me @marcweil
    • 2. Where we’ve come from (and, in many cases, where we are)
    • 3. PresentationBusiness Logic Database
    • 4. Monolith
    • 5. One example... (at least by default)
    • 6. Why?
    • 7. Why?• Many libraries push responsibility from Nginx/Apache to Rails
    • 8. Why?• Many libraries push responsibility from Nginx/Apache to Rails• Same with database
    • 9. Why?• Many libraries push responsibility from Nginx/Apache to Rails• Same with database• The business logic ends up doing far more than business logic should
    • 10. Why is this a problem?
    • 11. Why is this a problem?• Requires lots of code that doesn’t contribute to core value
    • 12. Why is this a problem?• Requires lots of code that doesn’t contribute to core value• Increases entropy of codebase
    • 13. Why is this a problem?• Requires lots of code that doesn’t contribute to core value• Increases entropy of codebase• Difficult to separate and scale different components
    • 14. Rails is one example,but this is common
    • 15. As scale requirements increase, monolithicarchitectures break down
    • 16. As scale requirements increase, monolithic architectures break downMore responsibility in code = more codebase entropy
    • 17. What’s easier?
    • 18. Self-contained, focused components
    • 19. From
    • 20. Many small servicesKeeps codebases small Enables polyglotismIncreases team focus >1 point of failure
    • 21. One slowcomponent?
    • 22. Scale it up!
    • 23. But it’s not all rainbows and butterflies
    • 24. But it’s not all rainbows and butterflies More complex deployment story
    • 25. But it’s not all rainbows and butterflies More complex deployment story Increases ops requirements
    • 26. But it’s not all rainbows and butterflies More complex deployment story Increases ops requirements Potentially higher costs
    • 27. But it’s not all rainbows and butterflies
    • 28. IaaS(Infrastructure-as-a-Service)
    • 29. We’ve moved from in-house to managed
    • 30. How did this help business?
    • 31. How did this help business? Reduce staff requirements
    • 32. How did this help business? Reduce staff requirements Increase focus on core value(is your business’ value really to keep servers up?)
    • 33. How did this help business? Reduce staff requirements Increase focus on core value(is your business’ value really to keep servers up?) Decrease time to market
    • 34. Adoption of IaaS made PaaS possible etc etc (there are a ton)
    • 35. Everything-as-a-Service!
    • 36. Let’s bring it all back together
    • 37. +
    • 38. =
    • 39. Or, more technically
    • 40. RedisSendGrid MySQL Glue Urban Geo Airship S3
    • 41. Your mobile app’s backend Redis SendGrid MySQL Glue Urban Geo Airship S3
    • 42. How does this help business?
    • 43. How does this help business? Reduce staff requirements
    • 44. How does this help business? Reduce staff requirements Increase focus on core value(is your business’ value really to administer Redis and RabbitMQ?)
    • 45. How does this help business? Reduce staff requirements Increase focus on core value (is your business’ value really to administer Redis and RabbitMQ?) Decrease time to market(focusing only on your core value means there’s less work for you to do)
    • 46. Simple Example
    • 47. “A geo-fence is a virtualperimeter for a real-world geographic area.” - Wikipedia
    • 48. in g!D
    • 49. So how does it work?
    • 50. Three steps1. Device registration2. Determine when current location crosses geofence boundaries3. Send push notifications** Beware hidden complexity
    • 51. Device registration
    • 52. Queue RegisterWeb Services Register
    • 53. Queue RegisterWeb Services Fairly complicated process Register
    • 54. Queue RegisterWeb Services Expensive Fairly complicated process and complex Register
    • 55. Web ServicesRecord ID Register
    • 56. Web Services ExpensiveRecord and complex ID Register
    • 57. RegisterWeb Services ExpensiveRecord and complex ID
    • 58. Record ID Register
    • 59. RegisterRecord ID
    • 60. Processing and Push
    • 61. Processing... Send a push, please!
    • 62. Processing... Send a push, please! Expensiveand complex
    • 63. Processing... Send a push, please! Expensiveand complex Complex
    • 64. Processing... Send a push, please! Expensiveand complex
    • 65. Processing... Send a push, please!
    • 66. ~15 lines of server-side code in this example
    • 67. Build on the shoulders of giants
    • 68. Stop re-inventing the wheel
    • 69. The UX of your client-side is keyInvest the appropriate amount of resources
    • 70. Opinion time
    • 71. Inquiring minds want to know...
    • 72. Is this kind of architecture better reflected by or ?
    • 73. Thanks! Questions?

    ×