  Autoscaling functions provide the foundation for achieving elasticity in the
modern cloud computing paradigm. It enables dynamic provisioning or
de-provisioning resources for cloud software services and applications without
human intervention to adapt to workload fluctuations. However, autoscaling
microservice is challenging due to various factors. In particular, complex,
time-varying service dependencies are difficult to quantify accurately and can
lead to cascading effects when allocating resources. This paper presents
DeepScaler, a deep learning-based holistic autoscaling approach for
microservices that focus on coping with service dependencies to optimize
service-level agreements (SLA) assurance and cost efficiency. DeepScaler
employs (i) an expectation-maximization-based learning method to adaptively
generate affinity matrices revealing service dependencies and (ii) an
attention-based graph convolutional network to extract spatio-temporal features
of microservices by aggregating neighbors' information of graph-structural
data. Thus DeepScaler can capture more potential service dependencies and
accurately estimate the resource requirements of all services under dynamic
workloads. It allows DeepScaler to reconfigure the resources of the interacting
services simultaneously in one resource provisioning operation, avoiding the
cascading effect caused by service dependencies. Experimental results
demonstrate that our method implements a more effective autoscaling mechanism
for microservice that not only allocates resources accurately but also adapts
to dependencies changes, significantly reducing SLA violations by an average of
41% at lower costs.
