  Applications that use edge computing and 5G to improve response times consume
both compute and network resources. However, 5G networks manage only network
resources without considering the application's compute requirements, and
container orchestration frameworks manage only compute resources without
considering the application's network requirements. We observe that there is a
complex coupling between an application's compute and network usage, which can
be leveraged to improve application performance and resource utilization. We
propose a new, declarative abstraction called AppSlice that jointly considers
the application's compute and network requirements. This abstraction leverages
container management systems to manage edge computing resources, and 5G network
stacks to manage network resources, while the joint consideration of coupling
between compute and network usage is explicitly managed by a new runtime
system, which delivers the declarative semantics of the app slice. The runtime
system also jointly manages the edge compute and network resource usage
automatically across different edge computing environments and 5G networks by
using two adaptive algorithms. We implement a complex, real-world, real-time
monitoring application using the proposed app slice abstraction, and
demonstrate on a private 5G/LTE testbed that the proposed runtime system
significantly improves the application performance and resource usage when
compared with the case where the coupling between the compute and network
resource usage is ignored.
