失效链接处理 |
ATOM Model-Driven Autoscaling for Microservices PDF 下载
本站整理下载:
相关截图:
![]()
主要内容:
Abstract—Microservices based architectures are increasingly
widespread in the cloud software industry. Still, there is a
shortage of auto-scaling methods designed to leverage the unique
features of these architectures, such as the ability to indepen-
dently scale a subset of microservices, as well as the ease of
monitoring their state and reciprocal calls.
We propose to address this shortage with ATOM, a model-
driven autoscaling controller for microservices. ATOM instanti-
ates and solves at run-time a layered queueing network model of
the application. Computational optimization is used to dynami-
cally control the number of replicas for each microservice and its
associated container CPU share, overall achieving a fine-grained
control of the application capacity at run-time.
Experimental results indicate that for heavy workloads ATOM
offers around 30%-37% higher throughput than baseline model-
agnostic controllers based on simple static rules. We also find that
model-driven reasoning reduces the number of actions needed to
scale the system as it reduces the number of bottleneck shifts
that we observe with model-agnostic controllers.
Index Terms—microservices, autoscaling, layered queueing
network, performance optimization
I. I NTRODUCTION
Microservices define a cloud-native architecture for soft-
ware development [1] that is increasingly accepted in the
software industry thanks to their synergy with DevOps [2].
Microservices have evolved from service oriented architecture
with the aim of delivering a set of scalable services by
decentralizing business logic among fine-grained services [3].
This property results, among other benefits, in greater control
of performance since scaling needs for a system can be
addressed by adding capacity only to the sections of an appli-
cation that actually need the extra capacity. In addition, using
containers for deploying microservices inherently improves the
underpinning performance management thanks to fast start-up
times [4] and ease of replication and reconfiguration.
In this paper, we have considered an autoscaling scenario
from the context of microservices. For autoscaling cloud appli-
cations, rule based approaches are common in the industry [5].
Such approaches usually scale stateless services horizontally
and stateful services vertically. However, recent studies [6],
[7] have shown that where both horizontal and vertical scaling
are applicable, they can provide different performance gains
based on the current workload. Thus, depending on the current
workload, a scaling decision should be based on the potential
performance improvement after applying both vertical and
horizontal scaling, either separately or in a combination. This
can be achieved using the concepts of queueing models.
However, using such concepts for microservices involve multi-
ple research challenges. For accurate performance estimations
of microservices, a queueing model should both abstract its
explicit properties, like fractional CPU share, and the implicit
properties inherited from service oriented architecture, like
operating simultaneously as a server and client.
Researchers have proposed multiple methods for autoscaling
cloud applications based on meta-heuristics [8], application
profiling [9], and analytical methods [10]. However, these
methods are not particularly suitable for microservices as they
do not consider such platform specific metrics like container
start-up time [11] and message queue status [12]. Moreover,
it remains the problem on how to tune the capacity estimation
process for microservices. Recently, a number of rule based
autoscalers have been proposed for microservices [12]–[15].
Some of these scalers utilize message queue metrics [12],
which can provide better insights of the system state than
traditional container level metrics used in [13]–[15]. However,
prior work focuses only on horizontal scaling, whereas we
consider both vertical and horizontal scaling.
To aid in this autoscaling context, we present ATOM, a
model-driven autoscaler for microservices. For any partic-
ular workload, ATOM assesses the effect of the workload
on each individual microservice and potential performance
improvement after applying various horizontal and vertical
scaling configurations. The scaling configurations include the
number of replicas for each of the microservices and the
allocated CPU capacity (we also used the term “CPU share”
interchangeably) for those replicas. To abstract a microservices
application and reason on the potential performance gain,
ATOM leverages a Layered Queueing Network (LQN) [16],
[17] model. Such models are instantiated by host demands
determined by monitoring the traffic between microservices.
By applying various configurations on a model, ATOM aims
to provide a scaling strategy that maximizes the revenue of
the system with minimal CPU shares. We have formulated
this scaling scenario as a non-linear mixed-integer program
using the weighted sum method [18]. To search for an optimal
solution for a given workload, considering the non-linear
nature of the problem and the presence of integer variables,
we have used a genetic algorithm (GA).
Overall, our contributions can be summarized as follows:
• an autoscaling controller that maximizes the revenue of
|