(un)Common Sense mike@youtube Briefly goals / disclaimer* broad - - PowerPoint PPT Presentation

un common sense
SMART_READER_LITE
LIVE PREVIEW

(un)Common Sense mike@youtube Briefly goals / disclaimer* broad - - PowerPoint PPT Presentation

(un)Common Sense mike@youtube Briefly goals / disclaimer* broad strokes scalability efficiency productivity YouTube then...(big) python - everywhere two-tier system fast, sequential requests open source tools


slide-1
SLIDE 1

(un)Common Sense

mike@youtube

slide-2
SLIDE 2

Briefly

  • goals / disclaimer*
  • broad strokes
  • scalability
  • efficiency
  • productivity
slide-3
SLIDE 3

YouTube then...(big)

  • python - everywhere
  • two-tier system

○fast, sequential requests

  • open source tools omnipresent
slide-4
SLIDE 4

YouTube now...(bigger)

  • python web app
  • many components

○~3 languages

  • RPCs galore

○slower, parallel requests ○tiers not tears

slide-5
SLIDE 5

Scalable systems...

  • solve the problem at hand
  • product of evolution
  • start simple

○the complexity comes for free

slide-6
SLIDE 6

Remove the bottlenecks.

slide-7
SLIDE 7

Scalable techniques...

  • divide and conquer
  • approximate correctness
  • expert knob twiddling (cheat!)

○consistency, durability...

  • jitter / entropy injection
slide-8
SLIDE 8

Scalable components...

  • well defined boundaries

○inputs / outputs ○dependencies

  • freedom and autonomy

○leverage local optimizations

slide-9
SLIDE 9

Scalable development?

  • communication through

code/data/schema

  • partition the problems
  • RPC as a means of sanity
slide-10
SLIDE 10

Efficiency

  • uncorrelated with scalability
  • focus on algorithms first
  • learn to measure

○use representative samples

slide-11
SLIDE 11

Efficient Python?

One simple mantra…

slide-12
SLIDE 12

All magic comes with a price.

slide-13
SLIDE 13

Efficient Python

  • pick your battles
  • avoid ORMs
  • use OOP with restraint
  • eschew magic
slide-14
SLIDE 14

Efficient Ideas

  • leverage other languages

○C++, Go

  • simple network protocols

○!HTTP

  • sensible encodings

○self-describing vs schema

slide-15
SLIDE 15

Efficient Ideas

  • don't be too clever*
slide-16
SLIDE 16

Productivity

  • philosophy vs doctrine
  • more conventions

○less documentation*

  • more effective collaboration
  • more diffusion of responsibility
slide-17
SLIDE 17

Productivity

  • knobs and hammers
  • leave manholes
  • don't forget unix ideals
slide-18
SLIDE 18

Questions?