help i accidentally distributed my system

Help! I accidentally distributed my system! Rachel Myers, Emily - PowerPoint PPT Presentation

Help! I accidentally distributed my system! Rachel Myers, Emily Nakashima @eanakashima @rachelmyers, @eanakashima @rachelmyers, @eanakashima @rachelmyers @rachelmyers, @eanakashima @rachelmyers, @eanakashima @rachelmyers, @eanakashima


  1. Help! I accidentally distributed my system! Rachel Myers, Emily Nakashima

  2. @eanakashima @rachelmyers, @eanakashima

  3. @rachelmyers, @eanakashima

  4. @rachelmyers @rachelmyers, @eanakashima

  5. @rachelmyers, @eanakashima

  6. @rachelmyers, @eanakashima

  7. ModCloth Web App 
 User request (from NGINX & (Rails) loadbalancer) MySQL @rachelmyers, @eanakashima

  8. What even is 
 a distributed system? @rachelmyers, @eanakashima

  9. What even is a distributed system? Some 
 Node Another Node @rachelmyers, @eanakashima

  10. 
 Designing distributed systems 👓 • What are the “nouns” in my system? • What are the patterns for reading data? • What are the patterns for writing data? • Do di ff erent flows have di ff erent performance, consistency, & availability requirements? 
 @rachelmyers, @eanakashima

  11. ModCloth Web App User request (from NGINX & loadbalancer) Mobile MySQL @rachelmyers, @eanakashima

  12. ModCloth Web App User request (from NGINX & loadbalancer) Mobile MySQL Voting Service MySQL @rachelmyers, @eanakashima

  13. ModCloth Web App User request (from NGINX & loadbalancer) Mobile Identity MySQL Service MySQL Voting Service MySQL @rachelmyers, @eanakashima

  14. ModCloth Web App User request (from NGINX & loadbalancer) Mobile Identity MySQL Service MySQL Asset Voting Service Service MySQL MySQL @rachelmyers, @eanakashima

  15. ModCloth Web App Photo User request (from NGINX & Service loadbalancer) Mobile MySQL Identity MySQL Service MySQL Comment Asset Voting Service Service Service MySQL MySQL MySQL @rachelmyers, @eanakashima

  16. ModCloth Web App Photo User request (from NGINX & Service loadbalancer) Mobile MySQL Moderation Identity MySQL Service Service MySQL MySQL Comment Asset Voting Service Service Service MySQL MySQL MySQL @rachelmyers, @eanakashima

  17. ModCloth Web App Photo Checkout User request (from NGINX & Service Service loadbalancer) Mobile MySQL MySQL Moderation Identity MySQL Service Service MySQL MySQL Comment Asset Voting Service Service Service MySQL MySQL MySQL @rachelmyers, @eanakashima

  18. ModCloth Web App Photo Checkout User request (from NGINX & Service Service loadbalancer) Mobile MySQL MySQL MySQL 🔦 Moderation Identity 🗒 MySQL Service Service MySQL MySQL Comment Asset Voting Service Service Service MySQL MySQL @rachelmyers, @eanakashima

  19. ModCloth Web App Photo Checkout User request (from NGINX & Service Service loadbalancer) Mobile MySQL MySQL 😈😈😈 🤔🤔🤔 Moderation Identity MySQL Service Service MySQL MySQL Comment Asset Voting Service Service Service MySQL MySQL MySQL @rachelmyers, @eanakashima

  20. And this was intentional 😃 @rachelmyers, @eanakashima

  21. flexfits.com An accidental distributed system ⛈ @rachelmyers, @eanakashima

  22. flexfits.com @rachelmyers, @eanakashima

  23. flexfits.com Ecommerce SaaS User request @rachelmyers, @eanakashima

  24. flexfits.com Subscription Plugin SaaS Ecommerce SaaS User request @rachelmyers, @eanakashima

  25. flexfits.com Subscription Plugin SaaS Fulfillment Ecommerce SaaS SaaS User request @rachelmyers, @eanakashima

  26. flexfits.com Metrics Subscription SaaS Plugin SaaS Fulfillment Ecommerce SaaS SaaS User request @rachelmyers, @eanakashima

  27. flexfits.com @rachelmyers, @eanakashima

  28. flexfits.com 👒 👒 @rachelmyers, @eanakashima

  29. flexfits.com Metrics Subscription SaaS Plugin SaaS Fulfillment Ecommerce SaaS SaaS User request ? @rachelmyers, @eanakashima

  30. flexfits.com Metrics Subscription SaaS Plugin SaaS Fulfillment Ecommerce SaaS SaaS Orders User request Service Postgres @rachelmyers, @eanakashima

  31. flexfits.com 👓 Metrics Subscription SaaS Plugin SaaS Fulfillment Ecommerce SaaS SaaS Orders User request Service Postgres @rachelmyers, @eanakashima

  32. New requirements for buy vs build @rachelmyers, @eanakashima

  33. flexfits.com SaaS SaaS SaaS SaaS Home cooked User request on IaaS @rachelmyers, @eanakashima

  34. Buy or Build • Will it improve availability? • Will it improve recovery? • Will you have visibility or points of control? • Will you have customizability? • Will you know when your changes take e ff ect? • Can you audit changes? @rachelmyers, @eanakashima

  35. IaaS, PaaS, BaaS, & FaaS @rachelmyers, @eanakashima

  36. Cloud Infrastructure @rachelmyers, @eanakashima

  37. IaaS @rachelmyers, @eanakashima

  38. IaaS • Will it improve availability? ✅ • Will it improve recovery? ✅ • Will you have visibility or points of control? ✅ • Will you have customizability? ✅ • Will you know when your changes take e ff ect? ✅ • Can you audit changes? ✅ @rachelmyers, @eanakashima

  39. Platforms @rachelmyers, @eanakashima

  40. PaaS @rachelmyers, @eanakashima

  41. PaaS • Will it improve availability? ✅ • Will it improve recovery? 🤕 • Will you have visibility or points of control? ✅ • Will you have customizability? ✅ • Will you know when your changes take e ff ect? 🤕 • Can you audit changes? 🤕 @rachelmyers, @eanakashima

  42. Backends @rachelmyers, @eanakashima

  43. BaaS (RIP Parse) @rachelmyers, @eanakashima

  44. BaaS • Will it improve availability? ✅🤕 • Will it improve recovery? 🤕 • Will you have visibility or points of control? 🤕 • Will you have customizability? ✅ • Will you know when your changes take e ff ect? 🤕 • Can you audit changes? 🤕 @rachelmyers, @eanakashima

  45. Functions @rachelmyers, @eanakashima

  46. FaaS @rachelmyers, @eanakashima

  47. FaaS • Will it improve availability? 🤕 • Will it improve recovery? 🤕 • Will you have visibility or points of control? 🤕 • Will you have customizability? ✅ • Will you know when your changes take e ff ect? 🤕 • Can you audit changes? 🤕 @rachelmyers, @eanakashima

  48. How to choose?

  49. Backend Harder to change Faster to start Platform Infrastructure @rachelmyers, @eanakashima

  50. @rachelmyers, @eanakashima

  51. @rachelmyers, @eanakashima

  52. Surprise Distributed Systems @rachelmyers, @eanakashima

  53. Surprise distributed system: browsers @rachelmyers, @eanakashima

  54. “The browser is part of your distributed system, not just a client you support” 
 -@danielespeset @rachelmyers, @eanakashima

  55. The one where we DDOS’d ourselves @rachelmyers, @eanakashima

  56. What happened? @rachelmyers, @eanakashima

  57. // if the page is long enough to scroll if (document.body.clientHeight > window.innerHeight) { // add a scroll event listener document.addEventListener('scroll', function(e) { // if within 100px of the bottom of the page if (window.innerHeight + window.scrollY + 100 > document.body.clientHeight) fetchNextPage(); }); // else fetch another page of results immediately } else { fetchNextPage(); } @rachelmyers, @eanakashima

  58. Frontend complexity is only increasing @rachelmyers, @eanakashima

  59. Instrumentation Rule 1: Start at the edge. 
 Corollary: The edge may be further than you think. @rachelmyers, @eanakashima

  60. Secret distributed system: vendors @rachelmyers, @eanakashima

  61. LaunchDarkly @rachelmyers, @eanakashima

  62. Secret distributed system: vendors @rachelmyers, @eanakashima

  63. # instantiate the flag with a default value # falls back to default value if service is offline show_feature = ld_client.variation( "allow_traces", { :key => "user@example.com" }, false ) if show_feature # application code to show the feature else # the code to run if the feature is off @rachelmyers, @eanakashima

  64. Secret distributed system: vendors @rachelmyers, @eanakashima

  65. Instrumentation Rule 2: Wrap 3rd party calls @rachelmyers, @eanakashima

  66. Secret distributed system: vendors @rachelmyers, @eanakashima

  67. GitHub’s customer support application @rachelmyers, @eanakashima

  68. GitHub customer support tool Customer github.com Support Tool User email @rachelmyers, @eanakashima

  69. GitHub customer support tool Customer github.com Support Tool GMail User email @rachelmyers, @eanakashima

  70. GitHub customer support tool Customer github.com Support Tool SendGrid GMail MailChimp User email @rachelmyers, @eanakashima

  71. GitHub customer support tool Customer github.com Support Tool SendGrid GMail MailChimp User email @rachelmyers, @eanakashima

  72. GitHub customer support tool Customer github.com Support Tool Outbound Ingest service Kafka mail service User email @rachelmyers, @eanakashima

  73. GitHub customer support tool mail service 🔦 Customer github.com Support Tool 🗒 Outbound Ingest service Kafka User email @rachelmyers, @eanakashima

  74. GitHub customer support tool Customer github.com Support Tool SendGrid GMail MailChimp User email @rachelmyers, @eanakashima

  75. Cognitive Load @rachelmyers, @eanakashima

Recommend


More recommend