3.7 Plugin Implementations
3.7.5 AMPQ Plugin
The AMPQ Plugin utilizes the Advanced Message Queueing Protocol (AMPQ) [120] to provide communication. The RabbitMQ [121] AMPQ protocol implementation is being used. This plugin establishes authorizations, queues, and exchanges for Cresco-managed resources. For instance, the AMPQ Channel Plugin might be used to manage an intermediate communications channel between an otherwise inaccess- able data source and destination.
In the next Chapter Framework Technologies, the Cresco approach to resource management, application description, and advanced operations modules are discussed.
4
Framework Technologies
The purpose of the work described in this dissertation is to establish an edge comput- ing framework for the management of distributed applications and related resources. We have described the motivations, architecture model, and implementation details of the presented framework. In the previous chapter, we described a foundational platform to be used broadly in the configuration of edge components and the report- ing of component-level metrics. Component-level information provided by the Cresco framework allows for higher-order functions, such as scheduling optimizations, appli- cation fault-tolerance, anomaly detection, predictions of future resource needs, and resource trading to be implemented for distributed applications management.
In Section 4.1, Resource Management, we define management techniques for un- derlying resources commonly used by the Cresco framework. In addition to under- standing the operating state of underlying resources, in order for high-level func- tions to operate dynamically, they must also understand the context of how resources are related in distributed applications. In Section 4.2, Cresco Resource Model, we discuss how resources are described and managed within the Cresco framework. In Section 4.2.1, Cresco Application Description Language, we propose a language to de- scribe resource relationships between components managed by the Cresco framework. In Section 4.3, High-level Operations, we describe high-level component-application
functions implemented by the Cresco framework.
4.1
Resource Management
There are potentially many layers of resource scheduling in edge computing environ- ments. We define the following resource layers in the context of resource scheduling or provisioning. Resource layers are listed from the lowest (closest to the hardware) level of hardware abstraction, to the highest (closest to the application):
1. Hardware: Hardware-level resource scheduling pertains to the execution of pro- cessor instructions, as defined by a specific Instruction Set Architectures (ISA), such as the the common x86 64 [122] ISA. Operating system kernel-level com- ponents interact with the hardware level using specific instruction sets through interface registers, such as instruction registers. Scheduling required to execute instructions submitted by the Kernel-level is executed at the hardware-level. 2. Kernel : Kernel-level scheduling pertains to the prioritized access of shared re-
sources on the hardware-level. Kernels work as an interface layer between hard- ware and application processes.
3. Application ”Agent”: Agent layer scheduling pertains to the intra-instance man- agement of application resources. In this context, an instance is an instantiation of processes (plugins) isolated within same kernel instance. Isolated resources are discussed in detail in Section 4.1.1, Isolated Resources. Examples of agent scheduling include the management of resource competition between two Cresco plugins running on the same devices.
4. Application ”Regional”: Regional scheduling pertains to the management of Agent resources across potential resource providers. In this context, a provider is a manager of resources for many kernel-level schedulers (Isolated Resources), such as a Infrastructure as a Service (IaaS) provider discussed in Section 4.1.2.
Examples of regional scheduling include the provisioning of virtual machines to support Cresco agents and the deployment of interoperating plugins between agents managed by the same provider.
5. Application ”Global”: Global scheduling pertains to the management of re- sources between regions and their related resource providers, including isolated resources and edge devices. Examples of global scheduling include provision- ing workload operations across multiple regional providers. For example, data collection services might be scheduled on sensor devices across a city, the ag- gregation of a cities sensor data might be assigned to region X, a city data center resource, and analysis resulting data might be assigned to region Y, a designated public cloud provider.
Edge computing framework must address a number of computational environ- ments and resource types. Centralized (isolated) computing resources typically in- clude central processing (CPU), volatile (RAM), and non-volitile (Disk)1 storage com- ponents that work together as independent computational resources. Communication between computation and storage components within individual central nodes is con- sistent across components using the same communication channels. For example, the process of moving data from one processor to central memory is typically uniform across processors. Perhaps more importantly, a central scheduler has full view of the current state of computational components and can manage resources accordingly. Distributed computing, as the name suggest, distributes computation to otherwise independent computational resources through communication networks. Depending on the distributed computing architecture, communication and resource uniformity varies greatly. For example, locally-distributed high-performance computing clusters are typically composed of nodes and communication resources that are uniform and located in the same data center. For instance, node architectures, sizing, and com-
1Recent advancements [123] in non-volatile memory latency are blurring the lines between RAM
munication can vary greatly for the highly geographically-distributed Folding@Home [124] project, where individuals around the world volunteer personal computational resources for molecular dynamics simulations.
Edge computing applications are made up of isolated, locally-distributed, and geographically distributed components. In the following sections we describe how the Cresco framework manages specific resource environments.