DevOpsDays Minneapolis 2016: Autoscaling Containers... with Math

DevOpsDays Minneapolis 2016: Autoscaling Containers... with Math

Presented at DevOpsDays Minneapolis. http://www.devopsdays.org/events/2016-minneapolis/program/allan-espinosa/

Also shows how to write your own Autoscaler in Kubernetes

Docker and Kubernetes provide delightful APIs to show various statuses of our applications. Whether CPU, Load average, HTTP response times, etc., we have all that 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 mostly use 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 air conditioner and thermostat, 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 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.

93ac6f98100c830506d8d451245635e1?s=128

Allan Espinosa

July 21, 2016
Tweet

Transcript

  1. 5.

    @AllanEspinosa Autoscaling Target HPA Number of Pods RC Utilization Heapster

    Utilization Traffic http://kubernetes.io/docs/user-guide/horizontal-pod-autoscaling/
  2. 9.
  3. 22.

    @AllanEspinosa Controllers () + () () () () () −

    () = () − () () = ∞ ∑ u=−∞ ( − )()
  4. 25.

    @AllanEspinosa Integral Control u () = u ( − 1)

    + u () • reduce steady-state error • increase settling times
  5. 26.

    @AllanEspinosa Derivative Control u () = u [() − (

    − 1)] • decrease settling times • sensitive to noise
  6. 27.

    @AllanEspinosa Non-linearity 40 50 60 70 80 90 100 0.5

    0.7 0.9 1.1 Number of Replicas CPU Utilization
  7. 28.

    @AllanEspinosa Summary • iterate on feedback • effectiveness of feedback

    • linear models go a long way • re-evaluate your models!
  8. 29.

    @AllanEspinosa P. Janert, Feedback Control for Computer Systems, Sebastapol, CA:

    O’Reilly Media, 2014. J. Hellerstein, et. al., Feedback Control of Computing Systems, Hoboken, NJ: John Wiley & Sons, 2004.