1 / 50

Systems Architecture at Rapidly Growing Startups

2013. #GHC13. Systems Architecture at Rapidly Growing Startups. Tracy Chou, Pinterest Barbara Raitz, Airbnb Ketaki Deo, LinkedIn (Pulse) Vida Ha, Square Bethany Macri, Etsy. 2013. The panelists. Tracy Chou. Barbara Raitz. Ketaki Deo. Vida Ha. Bethany Macri. @triketora. @braitz.

ronald
Download Presentation

Systems Architecture at Rapidly Growing Startups

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 2013 #GHC13 Systems Architecture at Rapidly Growing Startups • Tracy Chou, Pinterest • Barbara Raitz, Airbnb • Ketaki Deo, LinkedIn (Pulse) • Vida Ha, Square • Bethany Macri, Etsy 2013

  2. The panelists Tracy Chou Barbara Raitz Ketaki Deo Vida Ha Bethany Macri @triketora @braitz @kdeo @vidaha @bethanymacri 2013

  3. What is systems architecture? 2013

  4. The basics of setting up a service static assets server API server database server app 2013

  5. How do you scale up? 2013

  6. Splitting up and farming out work static assets server API server database server job queue server app async task workers can offload work from the API servers 2013

  7. Caching data and computation Data access time is often a large percentage of time in serving requests for a database application. Caching is a way of speeding up data access, usually by at least an order of magnitude, by putting information that is expensive to query or compute in a more performant data store. cache server API server database server 2013

  8. “Throwing more machines at the problem” pooling sharding load balancer load balancer code code code code a-g h-m n-s t-z each box has the same information each box has different information 2013

  9. Fitting all the pieces together web client web server cache service API server database service task service mobile app etc. 2013

  10. What is the basic systems architecture at your company? Where are you hosted? 2013

  11. What are the tradeoffs of different languages and frameworks? 2013

  12. Case study: Ruby vs. Python vs. Java 2013

  13. What are the tradeoffs of different languages and frameworks? 2013

  14. What major systems architecture decisions has your company made that worked out well, or not? 2013

  15. What do your database systems look like? 2013

  16. New user Incoming request Load balancer Web Servers dbindex dbtickets dbshard02 dbshard01 ... dbshardN

  17. New user Incoming request Load balancer

  18. New user Load balancer Web Servers

  19. New user Load balancer Web Servers dbtickets

  20. dbtickets dbtickets01: odd-numbered Primary Keys dbtickets02: even-numbered Primary Keys

  21. New user Load balancer Web Servers dbindex dbtickets

  22. New user Load balancer Web Servers dbindex dbtickets dbshard02 dbshard01 ... dbshardN

  23. dbshards dbshard_02_A dbshard_02_B

  24. New user Incoming request Load balancer Web Servers dbindex dbtickets dbshard02 dbshard01 ... dbshardN

  25. What do your database systems look like? 2013

  26. How has your systems architecture evolved over time? 2013

  27. A simple, successful, MVC application The Main App DB 2013

  28. The Main App DB that grows... 2013

  29. + Features 2013

  30. + More Features 2013

  31. Supporting Apps & Services 2013

  32. Mobile Clients 2013

  33. Duplicated Code 2013

  34. Creative Routing 2013

  35. A Layered/Tiered Architecture: • small re-usable components • testable => reliability • better for repairing parts without impacting whole • less collision/friction within engineering team • target hardware resources where needed • The Monolithic App: • (mostly) self-contained • does anything/everything The Monolithic App The Monolithic App does not scale 2013

  36. The Service Layer • self-contained units written in language best suited for domain • common interface HTTP + credentials + locale => JSON Service Layer 2013

  37. The API Layer: • re-usable components that can be shared by applications • used to group and decorate results from multiple services • distinguishing characteristics: fetch and format HTTP + credentials + locale => JSON API Layer Service Layer 2013

  38. API Layer Service Layer 2013

  39. The Application Layer: • the front-end features Application Layer API Layer Service Layer 2013

  40. Mobile/Client Layer Routing Layer Authentication Layer Application Layer API Layer Service Layer 2013

  41. Data Tech Benefits Description Application Layer API Layer Service Layer 2013

  42. Data Tech Benefits Description <HTML> • The front-end feature or service Application Layer • business application • view focus RENDR • reusable components that span services • fetch and format • json format focus • Flexible, fast, customized and reusable API Layer JSON over HTTP • Foundational building blocks • Separation allows us to shard and scale • focussed tests, less friction between teams • self-contained domain-specific units • data focus Service Layer JSON over HTTP 2013

  43. How has your systems architecture evolved over time? 2013

  44. How has your engineering team changed and evolved as it has grown? 2013

  45. Evolution of the organization 2013

  46. Evolution of the organization 2013

  47. Evolution of the organization 2013

  48. Evolution of the organization 2013

  49. How has your engineering team changed and evolved as it has grown? 2013

  50. Thanks! Questions? Tracy Chou Barbara Raitz Ketaki Deo Vida Ha Bethany Macri @triketora @braitz @kdeo @vidaha @bethanymacri 2013

More Related