Jump to Content

Autoscaling Services On All Dimensions

All Day DevOps (2019)

Abstract

Why doing toil, if the machine can do it for you? This talk covers all of the multitude of autoscaling mechanisms applicable to service meshes made by containers managed by systems like Borg, Kubernetes, Swarm or DC/OS. From vertical, horizontal, auto turnup, load shifting, etc. When deploying containerized stateless services on clusters managed by Kubernetes, for example, the most efficient way to run them is with the minimal number of replicas possible to cover the load, maximizing the utilization of resources. How to calculate the number of replicas to maintain a reliable service can be tricky: Pod restarts, traffic imbalances, load shifts, etc. Further, vertically scaling services is a multidimension problem and services based on virtual machines like the JVM present specific challenges for autoscaling. Configuring the autoscaler for the right utilization levels, using the right metrics and the right decaying factors is key for successfully scaling services.