The applicability of the microservice architecture
has extended beyond traditional web services, making steady
inroads into the domains of IoT and edge computing. Due
to dissimilar contexts in different execution environments and
inherent mobility, edge and IoT applications suffer from low
execution reliability. Replication, traditionally used to increase
service reliability and scalability, is inapplicable in these resourcescarce environments. Alternately, programmers can orchestrate
the parallel or sequential execution of equivalent microservices—
microservices that provide the same functionality by different
means. Unfortunately, the resulting orchestrations rely on parallelization, synchronization, and failure handing, all tedious and
error-prone to implement. Although automated orchestration
shifts the burden of generating workflows from the programmer
to the compiler, existing programming models lack both syntactic
and semantic support for equivalence. In this paper, we enhance
compiler-generated execution orchestration with equivalence to
efficiently increase reliability. We introduce a dataflow-based
domain-specific language, whose dataflow specifications include
the implicit declarations of equivalent microservices and their
execution patterns. To automatically generate reliable workflows
and execute them efficiently, we introduce new equivalence
workflow constructs. Our evaluation results indicate that our
solution can effectively and efficiently increase the reliability of
microservice-based applications.
more »
« less
A Programming Model for Reliable and Efficient Edge-Based Execution under Resource Variability
Edge computing applications use the computational,
sensor, and networking resources of nearby mobile and stationary
computing devices. Because dissimilar devices can provide these
resources, one cannot predict which exact combinations of
resources will be available at runtime. The resulting variability
hinders the development of edge computing applications. To
address this problem, we present a new programming model that
employs a domain-specific language (DSL), through which the
developer declaratively specifies a collection of microservices and
how they invoke each other. Given a concise declarative service
suite specification, the DSL compiler automatically generates an
execution plan, carried out by our distributed runtime. The
resulting programming model is both reliable and efficient. The
reliability is achieved by enabling the developer to provide
equivalent microservices as switch-over recovery strategies. The
efficiency is achieved by the DSL compiler orchestrating the
speculatively parallel execution of certain equivalent microservices. Our evaluation demonstrates the reliability, efficiency,
and expressiveness of the programming model, which can help
developers who need to cope with variable resources at the edge.
more »
« less
- Award ID(s):
- 1717065
- NSF-PAR ID:
- 10154787
- Date Published:
- Journal Name:
- 2019 IEEE International Conference on Edge Computing (EDGE)
- Page Range / eLocation ID:
- 64 to 71
- Format(s):
- Medium: X
- Sponsoring Org:
- National Science Foundation
More Like this
-
-
Modern mobile devices feature ever increasing computational, sensory, and network resources, which can be shared to execute tasks on behalf of nearby devices. Mobile device clouds (MDCs) facilitate such distributed execution by exposing the collective resources of a set of nearby mobile devices through a unified programming interface. However, the true potential of MDCs remains untapped, as they fail to provide practical programming support for developers to execute distributed functionalities. To address this problem, we introduce a microservice-based Programmable MDC architecture (PMDC), highly customized for the unique features of MDC environments. PMDC conveniently provisions functionalities as microservices, which are deployed on MDC devices on demand. PMDC features a novel domain specific language that provides abstractions for concisely expressing fine-grained control over the procedures of device capability sharing and microservice execution. Furthermore, PMDC introduces a new system component-the microservice gateway, which reconciles the supply of available device capabilities and the demand for microservice execution to distribute microservices within an MDC. Our evaluation shows that MDCs, expressed by developers through the PMDC declarative programming interface, exhibit low energy consumption and high performance.more » « less
-
Modern mobile users commonly use multiple heterogeneous mobile devices, including smartphones, tablets, and wearables. Enabling these devices to seamlessly share their computational, network, and sensing resources has great potential benefit. Sharing resources across collocated mobile devices creates mobile device clouds (MDCs), commonly used to optimize application performance and to enable novel applications. However, enabling heterogeneous mobile devices to share their resources presents a number of difficulties, including the need to coordinate and steer the execution of devices with dissimilar network interfaces, application programming models, and system architectures. In this paper, we describe a solution that systematically empowers heterogeneous mobile devices to seamlessly, reliably, and efficiently share their resources. We present a programming model and runtime support for heterogeneous mobile device-to-device resource sharing. Our solution comprises a declarative domain-specific language for device-to-device cooperation, supported by a powerful runtime infrastructure. we evaluated our solution by conducting a controlled user study and running performance/energy efficiency benchmarks. The evaluation results indicate that our solution can become a practical tool for enhancing the capabilities of modern mobile applications by leveraging the resources of nearby mobile devices.more » « less
-
Serverless computing has increased in popularity as a programming model for “Internet of Things” (IoT) applications that amalgamate IoT devices, edge-deployed computers and systems, and the cloud to interoperate. In this paper, we present Laminar – a dataflow pro- gram representation for distributed IoT application programming – and describe its implementation based on a network-transparent, event-driven, serverless computing infrastructure that uses append- only log storage to store all program state. We describe the initial implementation of Laminar, discuss some useful properties we obtained by leveraging log-based data structures and triggered com- putations of the underlying serverless runtime, and illustrate its performance and reliability characteristics using a set of benchmark applications.more » « less
-
Loosely-coupled and lightweight microservices running in containers are likely to form complex execution dependencies inside the system. The execution dependency arises when two execution paths partially share component microservices, resulting in potential runtime performance interference. In this paper, we present a blackbox approach that utilizes legitimate HTTP requests to accurately profile the internal pairwise dependencies of all supported execution paths in the target microservices application. Concretely, we profile the pairwise dependency of two execution paths through performance interference analysis by sending bursts of two types of requests simultaneously. By characterizing and grouping all the execution paths based on their pairwise dependencies, the blackbox approach can derive a clear dependency graph(s) of the entire backend of the microservices application. We validate the effectiveness of the blackbox approach through experiments of open-source microservices benchmark applications running on real clouds (e.g., EC2, Azure).more » « less