myers nakashima qcon nyc 2018
2020-02-27 57浏览
- 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 (Rails) User request (from NGINX & 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 different flows have different performance, consistency, & availability requirements? @rachelmyers, @eanakashima
- 11.ModCloth Web App Mobile User request (from NGINX & loadbalancer) MySQL @rachelmyers, @eanakashima
- 12.ModCloth Web App Mobile User request (from NGINX & loadbalancer) MySQL Voting Service MySQL @rachelmyers, @eanakashima
- 13.ModCloth Identity Service MySQL Web App Mobile User request (from NGINX & loadbalancer) MySQL Voting Service MySQL @rachelmyers, @eanakashima
- 14.ModCloth Identity Service MySQL Asset Service MySQL Web App Mobile User request (from NGINX & loadbalancer) MySQL Voting Service MySQL @rachelmyers, @eanakashima
- 15.ModCloth Photo Service MySQL Comment Service MySQL Identity Service MySQL Asset Service MySQL Web App Mobile User request (from NGINX & loadbalancer) MySQL Voting Service MySQL @rachelmyers, @eanakashima
- 16.ModCloth Photo Service MySQL Moderation Service MySQL Identity Service MySQL Comment Service MySQL Asset Service MySQL Web App Mobile User request (from NGINX & loadbalancer) MySQL Voting Service MySQL @rachelmyers, @eanakashima
- 17.ModCloth Photo Service MySQL Checkout Service MySQL Moderation Service MySQL Identity Service MySQL Comment Service MySQL Asset Service MySQL Web App Mobile User request (from NGINX & loadbalancer) MySQL Voting Service MySQL @rachelmyers, @eanakashima
- 18.ModCloth Photo Service MySQL Checkout Service MySQL Moderation Service MySQL Identity Service MySQL Comment Service MySQL Asset Service MySQL Web App Mobile User request (from NGINX & loadbalancer) ????????? MySQL Voting Service MySQL @rachelmyers, @eanakashima
- 19.ModCloth Photo Service MySQL Checkout Service MySQL Web App Mobile User request (from NGINX & loadbalancer) ???????????????????????????????????? Moderation Service MySQL Identity Service MySQL Comment Asset MySQL 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 Fulfillment SaaS Subscription Plugin SaaS Ecommerce SaaS User request @rachelmyers, @eanakashima
- 26.flexfits.com Metrics SaaS Fulfillment SaaS Subscription Plugin SaaS Ecommerce SaaS User request @rachelmyers, @eanakashima
- 27.flexfits.com @rachelmyers, @eanakashima
- 28.flexfits.com ?????? ?????? @rachelmyers, @eanakashima
- 29.flexfits.com Metrics SaaS Fulfillment SaaS ? Subscription Plugin SaaS Ecommerce SaaS User request @rachelmyers, @eanakashima
- 30.flexfits.com Metrics SaaS Fulfillment SaaS Postgres Orders Service Subscription Plugin SaaS Ecommerce SaaS User request @rachelmyers, @eanakashima
- 31.??????flexfits.com Metrics SaaS Fulfillment SaaS Postgres Orders Service Subscription Plugin SaaS Ecommerce SaaS User request @rachelmyers, @eanakashima
- 32.New requirements for buy vs build @rachelmyers, @eanakashima
- 33.flexfits.com SaaS SaaS Home cooked on IaaS SaaS SaaS User request @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 effect? • 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 effect? ✅ • 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 effect? ?????? • 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 effect? ?????? • 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 effect? ?????? • Can you audit changes? ?????? @rachelmyers, @eanakashima
- 48.How to choose?
- 49.Faster to start Harder to change Backend Platform Infrastructure @rachelmyers, @eanakashima
- 50.@rachelmyers, @eanakashima
- 51.@rachelmyers, @eanakashima
- 52.Surprise Distributed Systems @rachelmyers, @eanakashima
- 53.Surprise distributedsystem: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 distributedsystem:vendors @rachelmyers, @eanakashima
- 61.LaunchDarkly @rachelmyers, @eanakashima
- 62.Secret distributedsystem: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 distributedsystem:vendors @rachelmyers, @eanakashima
- 65.Instrumentation Rule 2: Wrap 3rd party calls @rachelmyers, @eanakashima
- 66.Secret distributedsystem:vendors @rachelmyers, @eanakashima
- 67.GitHub’s customer support application @rachelmyers, @eanakashima
- 68.GitHub customer support tool Customer Support Tool github.com User email @rachelmyers, @eanakashima
- 69.GitHub customer support tool Customer Support Tool github.com GMail User email @rachelmyers, @eanakashima
- 70.GitHub customer support tool Customer Support Tool github.com SendGrid GMail MailChimp User email @rachelmyers, @eanakashima
- 71.GitHub customer support tool Customer Support Tool github.com SendGrid GMail MailChimp User email @rachelmyers, @eanakashima
- 72.GitHub customer support tool Customer Support Tool github.com Outbound mail service Ingest service Kafka User email @rachelmyers, @eanakashima
- 73.GitHub customer support tool Outbound mail service Customer Support Tool ?????????Ingest service User email github.com Kafka @rachelmyers, @eanakashima
- 74.GitHub customer support tool Customer Support Tool github.com SendGrid GMail MailChimp User email @rachelmyers, @eanakashima
- 75.Cognitive Load @rachelmyers, @eanakashima
- 76.Instrumentation & Chill ❄ @rachelmyers, @eanakashima
- 77.Fewer Alerts ?????? @rachelmyers, @eanakashima
- 78.@rachelmyers, @eanakashima
- 79.Unknown unknown unknowns ?????? @rachelmyers, @eanakashima
- 80.Outsource Your Brain ?????? @rachelmyers, @eanakashima
- 81.Use tools that let you… • Ask, what is happening now to this user? Endpoint? Team? • Ask, how does this compare to the aggregate case? • Jump between levels of abstraction • See both breadth & depth • Understand how data flows @rachelmyers, @eanakashima
- 82.Observability… not just for ops thought leaders! @rachelmyers, @eanakashima
- 83.“The ability to ask arbitrary questions about your system from the outside, and understand what is happening on the inside.” -@mipsytipsy @rachelmyers, @eanakashima
- 84.logs metrics traces / events @rachelmyers, @eanakashima
- 85.How to pick an observability tool? @rachelmyers, @eanakashima
- 86.Crawl the pipes @rachelmyers, @eanakashima
- 87.flexfits.com @rachelmyers, @eanakashima
- 88.No really, instrumentation @rachelmyers, @eanakashima
- 89.@rachelmyers, @eanakashima
- 90.# monitoring endpoint Location ~ /ping { return 200 '200 ok'; } @rachelmyers, @eanakashima
- 91.Instrumentation Rule 3: Your instrumentation should support depth- *and* breadth-first @rachelmyers, @eanakashima
- 92.Conclusion @rachelmyers, @eanakashima
- 93.TwoVendors:Two Conclusions ?????? @rachelmyers, @eanakashima
- 94.1. We’re all distributed systems engineers operators. ☎ ?????? @rachelmyers, @eanakashima
- 95.2. Trust your tools 1 ?????? @rachelmyers, @eanakashima
- 96.Thank you @rachelmyers, @eanakashima