This subproject will take an alternative approach by exploring network adaptivity from a service-centric view. In particular, we investigate the fundamental challenges in advancing edge computing based on the software engineering paradigm called microservice architecture, in which a single application is developed as a suit of small services rather than a monolithic whole. Unlike the related research in MAKI, microservice-based edge computing is not restricted to any particular application scenarios. Therefore, the results generated by this subproject will help close the gap of enabling network adaptivity generally at the software stack level. While bringing more flexibility compared to the monolithic architecture, the modularity of microservice, on the other hand, introduces more dynamics, both spatially and temporally. Our overarching goal is to tackle these challenges and provide a formal basis for such a new edge computing architecture solution with necessary theoretical guarantees.
This subproject will focus on two fundamental problems that arise from microservice-based edge computing, namely microservice autoscaling and microservice caching. The aim is to achieve efficient use of limited edge resources and to improve service quality by exploring efficient mechanisms under varying system states for both microservice autoscaling and caching. Microservice autoscaling refers to the problem of assigning the right amount of resources to provision each microservice. The main challenge is to make such decisions in real-time with limited knowledge of the future. On the one hand, pure reactive approaches will impair service quality since bringing up new resources requires substantial time. On the other hand, over-provisioning will result in unexpected resource waste although the resource-introducing delay can be masked. Capturing this trade-off effect under uncertain service request loads is never trivial. We will provide stochastic models and explore the optimal microservice autoscaling mechanism under dynamically changing system states. Microservice caching is to minimize service delay by deciding which of the microservices to be cached in the edge and when to update the cached microservices. Optimal decision making is inherently complicated as multiple factors exist, e.g., certain microservices can be dependent on each other and edge nodes may receive similar service request patterns. We will design optimal mechanisms for all these possible system states and carry out mechanism transitions when the system state changes. In addition, we will investigate the coexistence of the two semantically-different mechanisms, i.e., microservice autoscaling and microservice caching, where modifications to mechanisms will be introduced in order to achieve an optimal proactive composition of the semantically-different mechanisms.
While benefiting from the extensive studies on network adaptation and proactive transitions from CRC MAKI, this proposal is the first subproject to investigate the fundamental challenges and to provide a formal basis for microservice-based edge computing. Therefore, the coverage of the emerging paradigm -- edge computing -- will be significantly advanced in CRC MAKI. The service-oriented view will complement the other subprojects and inspire new thoughts on the developed transition methodologies in the context of service-oriented computing.