$30 off During Our Annual Pro Sale. View Details »

CloudNativeCon + KubeCon 2016: Autoscaling Containers... with Math

CloudNativeCon + KubeCon 2016: Autoscaling Containers... with Math

http://sched.co/8K3h

Docker and Kubernetes provides delightful APIs to show various statuses of our
applications. From CPU, Load average, HTTP response times, etc. we all have
what we need to make sure our app is running healthily. When things are on
fire, we Ops people twiddle some knobs like spin up more Pods to keep things
going. We use mostly our experience and knowledge of the systems that we are
running to know what to do.

However, if you look at everyday things like your airconditioners and
thermostats, they don't have an Ops team that gets paged to set the correct
level of the coolant to set your room to the right temperature. They use some
math behind called *Control Theory* to keep your room's temperature stable. In
this talk, I will show how we can use the same concepts to autoscale and manage
the health of our applications on Kubernetes.

Allan Espinosa

November 08, 2016
Tweet

More Decks by Allan Espinosa

Other Decks in Technology

Transcript

  1. Autoscaling Containers…with Math
    @AllanEspinosa

    View Slide

  2. @AllanEspinosa
    @AllanEspinosa
    https://amzn.com/1785886800

    View Slide

  3. @AllanEspinosa

    View Slide

  4. @AllanEspinosa
    Your Distributed System
    Goal OPS Person Twiddle Server Farm CPU Utilization
    Monitoring
    Page
    Traffic

    View Slide

  5. @AllanEspinosa
    Your Aircon
    Set Temperature
    Thermostat
    Valve
    Coolant
    Actual Temperature
    Sensor
    The Weather

    View Slide

  6. @AllanEspinosa
    Autoscaling
    Target HPA Number of Pods RC Utilization
    Heapster
    Utilization
    Traffic
    http://kubernetes.io/docs/user-guide/horizontal-pod-autoscaling/

    View Slide

  7. @AllanEspinosa
    Control Theory
    • influencing dynamical systems
    • corrections based on feedback loops
    • math describes effectiveness

    View Slide

  8. @AllanEspinosa
    Centrifugal Governor
    R. Routledge, Discoveries & Inventions
    oftheNineteenthCentury,13thedition,
    1901.

    View Slide

  9. @AllanEspinosa

    View Slide

  10. @AllanEspinosa
    • Target Output
    • Input
    • Output
    • Disturbance
    () + ()
    ()
    ()
    () ()

    ()

    View Slide

  11. @AllanEspinosa

    View Slide

  12. @AllanEspinosa

    View Slide

  13. @AllanEspinosa
    Linear-Time Invariant Systems



    () + () = ()
    ( + 1) = () + ()

    View Slide

  14. @AllanEspinosa
    Desired Properties
    • Stability
    • Accuracy
    • Settling time
    • Overshoot

    View Slide

  15. @AllanEspinosa
    Stability

    View Slide

  16. @AllanEspinosa

    View Slide

  17. @AllanEspinosa

    View Slide

  18. @AllanEspinosa

    View Slide

  19. @AllanEspinosa

    View Slide

  20. @AllanEspinosa
    Accuracy

    View Slide

  21. @AllanEspinosa
    Settling time

    View Slide

  22. @AllanEspinosa
    Overshoot

    View Slide

  23. @AllanEspinosa
    Controllers
    () + ()
    ()
    ()
    () ()

    () = () − ()
    () =


    =−∞
    ( − )()

    View Slide

  24. @AllanEspinosa
    Proportional Control

    () =
    ()

    View Slide

  25. @AllanEspinosa
    ()

    ()

    View Slide

  26. @AllanEspinosa
    Proportional Control
    • inherently inaccurate

    increases overshoot and settling time

    View Slide

  27. @AllanEspinosa
    Integral Control

    () =
    ( − 1) +
    ()
    • reduce steady-state error
    • increase settling times

    View Slide

  28. @AllanEspinosa
    Derivative Control

    () =
    [() − ( − 1)]
    • decrease settling times
    • sensitive to noise

    View Slide

  29. @AllanEspinosa
    Non-linearity
    40 50 60 70 80 90 100
    300 500 700 900
    Number of Replicas
    CPU Utilization

    View Slide

  30. @AllanEspinosa
    Other Applications
    • response time vs keepalive timeout
    • memory vs worker connections
    • multiple input-multiple output
    Autotuning, Autoconfiguration

    View Slide

  31. @AllanEspinosa
    Summary
    • iterate on feedback
    • effectiveness of feedback
    • linear models go a long way
    • re-evaluate your models!

    View Slide

  32. @AllanEspinosa
    References
    P. Janert, Feedback Control for Computer Sys-
    tems, Sebastapol, CA: O’Reilly Media, 2014.
    J. Hellerstein, et. al., Feedback Control of Com-
    putingSystems,Hoboken,NJ:JohnWiley&Sons,
    2004.

    View Slide

  33. @AllanEspinosa
    Acknowledgements
    Autoscaling experiments were run on
    GoogleContainerEnginewithGCPcredits
    c/o Kelsey Hightower.

    View Slide

  34. @AllanEspinosa
    Demo

    View Slide

  35. @AllanEspinosa
    Thank You!
    @AllanEspinosa
    https://github.com/aespinosa/control-theory

    View Slide