  Modern cloud orchestrators like Kubernetes provide a versatile and robust way
to host applications at scale. One of their key features is autoscaling, which
automatically adjusts cloud resources (compute, memory, storage) in order to
adapt to the demands of applications. However, the scope of cloud autoscaling
is limited to the datacenter hosting the cloud and it doesn't apply uniformly
to the allocation of network resources. In I/O-constrained or data-in-motion
use cases this can lead to severe performance degradation for the application.
For example, when the load on a cloud service increases and the Wide Area
Network (WAN) connecting the datacenter to the Internet becomes saturated, the
application flows experience an increase in delay and loss. In many cases this
is dealt with overprovisioning network capacity, which introduces additional
costs and inefficiencies.
  On the other hand, thanks to the concept of "Network as Code", the WAN
exposes a set of APIs that can be used to dynamically allocate and de-allocate
capacity on-demand. In this paper we propose extending the concept of cloud
autoscaling into the network to address this limitation. This way, applications
running in the cloud can communicate their networking requirements, like
bandwidth or traffic profile, to a Software-Defined Networking (SDN) controller
or Network as a Service (NaaS) platform. Moreover, we aim to define the
concepts of vertical and horizontal autoscaling applied to networking. We
present a prototype that automatically allocates bandwidth to the underlay
network, according to the requirements of the applications hosted in
Kubernetes. Finally, we discuss open research challenges.
