Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Designing Production Systems

pigol
August 18, 2017

Designing Production Systems

Talk given to the TravelTriangle engineering team on how to think about system-design, and architecture. It requires a multi-faceted thought process that goes beyond just the technical aspects.

pigol

August 18, 2017
Tweet

More Decks by pigol

Other Decks in Programming

Transcript

  1. … with proper design, the features come cheaply. This approach

    is arduous, but continues to succeed. -- Dennis Ritchie Design
  2. How do I design? What is my product stack? •

    Browser • Mobile • DNS Servers • Load Balancer • Nginx • Web Server • Internal ELB • Rails • Redis/Varnish • ElasticSearch • MySQL • Wordpress • Postfix
  3. How do I design? What is my product stack? •

    Browser • Mobile • DNS Servers • Load Balancer • Nginx • Web Server • Internal ELB • Rails • Redis/Varnish/SideKiq • ElasticSearch • MySQL • Wordpress • Postfix
  4. How do I design? Fail Individual Components! - Circuit Breaking

    - Bulk Heading - Timing Out - Retries - Asynchronous Flows
  5. How do I design? CPU, RAM & I/O (Disk, Network)

    Understand the basic components … duh!!
  6. How do I design? Learn tools and how to read

    numbers - Htop - Chrome Dev Tools - Iotop - Vmstat & more… - Netstat - Lsof
  7. How do I design? Numbers every engineers should know. Talk

    by Jeffrey Dean, Google. https://www.youtube.com/watch?v=mod XC5IWTJI
  8. How do I design? Read Read Read!! - Blogs -

    YouTube videos - Books - Papers - Talk to your friends