  Common deployment models for Edge Computing are based on (composable)
microservices that are offloaded to cloudlets. Runtime adaptations-in response
to varying load, QoS fulfillment, mobility, etc.-are typically based on
coarse-grained and costly management operations such as resource re-allocation
or migration. The services themselves, however, remain non-adaptive, worsening
the already limited elasticity of Edge Computing compared to Cloud Computing.
Edge computing applications often have stringent requirements on the execution
time but are flexible regarding the quality of a computation. The potential
benefits of exploiting this trade-off remain untapped. This paper introduces
the concept of adaptable microservices that provide alternative variants of
specific functionalities. We define so-called service variants that differ
w.r.t. the internal functioning of the service, manifested in different
algorithms, parameters, and auxiliary data they use. Such variants allow
fine-grained trade-offs between the QoS (e.g., a maximum tolerable execution
time) and the quality of the computation. We integrate adaptable microservices
into an Edge Computing framework, show the practical impact of service
variants, and present a strategy for switching variants at runtime.
