Autoscaling
Autoscaling is the ability of applications and infrastructure to automatically grow and shrink to meet demand.
Three things are vital for autoscaling to be truly cloud native.
- Applications and infrastructure need to be able to scale
- Scaling has to be automatic
- Scaling has to be up and down
Kubernetes has the ability to scale applications up and down based on current workload. It can use simple metrics, such as CPU and memory consumption, or it can use application-specific metrics such as queue size and request response times.
A simple example might be the reporting microservice of an application. If business units are running end-of-year reports and the reporting microservice is experiencing a 10x increase in demand, Kubernetes can spin-up additional reporting containers to meet demand. When demand decreases, Kubernetes can terminate the additional containers. If the application is running on a public cloud, Kubernetes can also scale-up the infrastructure to help...