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

Beyond Fast and Slow

Tom Santero
November 27, 2013

Beyond Fast and Slow

Full stack performance engineering with an existential twist.

Tom Santero

November 27, 2013
Tweet

More Decks by Tom Santero

Other Decks in Programming

Transcript

  1. Beyond Fast and Slow
    Tom Santero
    Full-Stack Engineering Meetup 11/26/2013
    Prelude to the Engineering of the Future

    View Slide

  2. tsantero
    twitter, github, @basho.com, IRC...

    View Slide

  3. tsantero

    View Slide

  4. Performance

    View Slide

  5. Performance
    what even is performance?

    View Slide

  6. Performance
    is(are) the system(s) performant?

    View Slide

  7. Performance
    is performant even a word?

    View Slide

  8. Performance
    price vs performance
    cloud vs bare metal
    scale vs optimization
    dynamic vs static typing**
    ** for seriously, y’all - not even trolling right now

    View Slide

  9. Performance
    capacity planning, modeling;
    testing; benchmarking;
    proof of concepts

    View Slide

  10. Performance
    production analysis
    optimization

    View Slide

  11. Performance
    the entire stack

    View Slide

  12. The Full Stack

    View Slide

  13. The Full Stack
    everything is distributed

    View Slide

  14. Distributed Systems
    “A distributed system is a software system in which
    components located on networked computers
    communicate and coordinate their actions by passing
    messages. The components interact with each other in
    order to achieve a common goal.”
    -- Wikipedia

    View Slide

  15. The Full Stack
    single server systems are distributed

    View Slide

  16. Application
    Database
    System Libraries
    System Calls
    User-Level
    Kernel-Level
    Devices
    Kernel
    Thread
    Scheduler
    File
    Systems
    Network
    Stack
    Virtual
    Memory
    Device Drivers
    Figure 1.1 Generic System Software Stack.
    Adapted from “Systems Performance:
    Enterprise and The Cloud” by Brendan Gregg

    View Slide

  17. The Full Stack
    problems with continuous integration;
    issue of methodology; organization

    View Slide

  18. View Slide

  19. The Full Stack
    Continuous Technical Debt Integration

    View Slide

  20. The Full Stack
    testing; metrics; deployment

    View Slide

  21. Testing

    View Slide

  22. Testing
    unit testing; regression

    View Slide

  23. Testing
    load testing

    View Slide

  24. Testing
    property based testing

    View Slide

  25. Metrics

    View Slide

  26. Metrics
    Metrics, Metrics Everywhere
    Coda Hale
    http://www.youtube.com/watch?v=czes-oa0yik

    View Slide

  27. Metrics
    collection

    View Slide

  28. “Whoever fights monsters should see to it
    that he does not become a monster. And if
    you gaze long enough into the abyss the
    abyss will gaze back into you.
    -- Friedrich Nietzsche

    View Slide

  29. Metrics
    analysis

    View Slide

  30. Application
    System Libraries
    System Calls
    Kernel
    Devices
    Workload
    Operating
    System
    Software
    Stack
    Workload
    Analysis
    Resource
    Analysis
    Figure 1.2 Analytics Perspectives.
    Adapted from “Systems Performance:
    Enterprise and The Cloud” by Brendan Gregg

    View Slide

  31. Metrics
    visualization

    View Slide

  32. “Even when the mouth lies, the
    way it looks still tells the truth.”
    -- Friedrich Nietzsche

    View Slide

  33. Metrics
    sample size; resolution?

    View Slide

  34. Metrics
    alerting

    View Slide

  35. “I’m not upset that you lied to me. I’m upset
    that from now on I can’t believe you.”
    -- Friedrich Nieztsche

    View Slide

  36. Deployment

    View Slide

  37. Deployment
    ship it?
    dev/test/prod?
    staggered deployment

    View Slide

  38. Deployment
    debugging production systems
    system wide activity
    processes stats
    dynamic tracing; strace, DTrace

    View Slide

  39. Application
    System Libraries
    System Calls
    Kernel
    Devices
    Workload
    Operating
    System
    Software
    Stack
    Workload
    Analysis
    Resource
    Analysis
    Figure 1.2 Analytics Perspectives.
    Adapted from “Systems Performance:
    Enterprise and The Cloud” by Brendan Gregg

    View Slide

  40. [slide intentionally left blank]

    View Slide

  41. Thanks!
    Questions?

    View Slide