Edge Computing and Capability-Oriented Architecture

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Fueled by ubiquitous computing ambitions, the edge is at the center of confluence of many emergent technological trends such as hardware-rooted trust and code integrity, 5G, data privacy and sovereignty, blockchains and distributed ledgers, ubiquitous sensors and drones, autonomous systems and real-time stream processing. Hardware and software pattern maturity have reached a tipping point so that scenarios like smart homes, smart factories, smart buildings, smart cities, smart grids, smart cars, smart highways are in reach of becoming a reality. While there is a great desire to bring born-in-the-cloud patterns and technologies such as zero-downtime software and hardware updates/upgrades to the edge, developers and operators alike face a unique set of challenges due to environmental differences such as resource constraints, network availability and heterogeneity of the environment.

The first part of the book discusses various edge computing patterns which the authors have observed, and the reasons why these observations have led them to believe that there is a need for a new architectural paradigm for the new problem domain. Edge computing is examined from the app designer and architect’s perspectives. When they design for edge computing, they need a new design language that can help them to express how capabilities are discovered, delivered and consumed, and how to leverage these capabilities regardless of location and network connectivity. Capability-Oriented Architecture is designed to provide a framework for all of these.

This book is for everyone who is interested in understanding what ubiquitous and edge computing means, why it is growing in importance and its opportunities to you as a technologist or decision maker. The book covers the broad spectrum of edge environments, their challenges and how you can address them as a developer or an operator. The book concludes with an introduction to a new architectural paradigm called capability-based architecture, which takes into consideration the capabilities provided by an edge environment.

.

Author(s): Haishi Bai, Boris Scholl
Publisher: CRC Press
Year: 2021

Language: English
Pages: 176
City: Boca Raton

Cover
Half Title
Title Page
Copyright Page
Contents
Foreword
SECTION I: Edge computing software fundamentals
1. Edge computing fundamentals
1.1. Finding the edge
1.1.1. Edge computing models
1.1.2. Defining edge computing
1.2. Edge computing characteristics
1.2.1. Compute in context
1.2.2. Capability oriented
1.2.3. Centralized management, distributed compute
1.2.4. Secured
1.2.5. Heterogeneity
1.3. Edge computing scenarios
1.3.1. IoT scenarios
1.3.2. Hardware as a service
1.3.3. Hybrid scenarios
1.3.4. 5G scenarios
1.3.5. Edge computing in a pandemic
1.4. Summary
2. Edge computing factors
2.1. Edge computing networking
2.1.1. Software-defined network (SDN)
2.1.2. Sensor networks
2.1.3. 5G
2.1.4. Long-distance networks
2.2. Edge devices
2.2.1. Edge host
2.2.2. Virtualization
2.2.3. Software stack
2.2.4. Device security
2.2.5. Intelligent devices
2.3. Fleet management
2.3.1. Clustering
2.3.2. Identities and access control
2.3.3. Configurations and policies
2.4. Perspectives and uniformity
2.4.1. Human players
2.4.2. Multiple perspectives
2.4.3. Uniformity
2.5. Summary
SECTION II: Edge computing design patterns
3. Edge to cloud
3.1. Data collection patterns
3.1.1. Data collection through messaging
3.1.2. Data collection through ingress endpoints
3.1.3. Bulk data transportation and in-context data processing
3.1.4. Data pipeline on cloud
3.2. Remoting patterns
3.2.1. Connected consumer devices
3.2.2. Online collaborations
3.2.3. Cloud-based relays
3.2.4. Multi-party computations
3.3. Compute offloading patterns
3.3.1. Multi-level offloading
3.3.2. Bursting to cloud
3.3.3. Adaptive offloading
3.3.4. Dynamic delegation
3.4. Summary
4. Cloud to edge
4.1. Edge acceleration patterns
4.1.1. Smart CDNs
4.1.2. EdgeWorkers
4.2. Cloudlet pattern
4.2.1. AWS Wavelength
4.2.2. Azure Edge Zones
4.3. Edge functions pattern
4.3.1. AWS IoT Greengrass
4.3.2. Azure IoT Edge
4.3.3. Apache OpenWhisk
4.3.4. Function host management at scale
4.3.5. Edge PaaS paradox
4.4. Cloud compute stack on edge
4.4.1. AWS Outputs
4.4.2. Azure Stack
4.4.3. OpenStack
4.5. Edge native compute stack
4.5.1. Uplifting on-premises datacenters
4.5.2. Template-based compute stack
4.5.3. Multi-access edge computing framework
4.6. Autonomous systems
4.6.1. From automatic to autonomous
4.6.2. The human factor
4.6.3. Autonomous system architecture
4.6.4. Cloud-assisted robotics
4.7. Summary
5. Kubernetes on edge
5.1. An anatomy of a Kubernetes cluster
5.1.1. Kubelet
5.1.2. CRI
5.1.3. OCI
5.1.4. Device plugin
5.1.5. CNI
5.1.6. Cluster API
5.2. Lightweight Kubernetes clusters
5.2.1. Minikube
5.2.2. K3s
5.2.3. MicroK8s
5.3. Separating the control plane and the compute plane
5.3.1. KubeEdge
5.3.2. OpenYurt
5.4. Custom kubelet implementations
5.4.1. Virtual kubelet
5.4.2. Krustlet
5.5. Lightweight container runtimes
5.5.1. CRI-O
5.5.2. Kata containers
5.5.3. Windows containers
5.5.4. Nabla containers
5.5.5. k3 container solution
5.5.6. Other noticeable container runtimes
5.6. Cluster federation
5.6.1. Federation topologies
5.6.2. Key challenges
5.7. Securing Kubernetes clusters on edge
5.7.1. Container isolation
5.7.2. Data protection
5.7.3. Access control
5.7.4. Security monitoring
5.8. Summary
6. Edge native design
6.1. Edge native applications
6.1.1. Autonomous bootstrapping
6.1.2. Adaptive to environmental changes
6.1.3. Edge high availability
6.1.4. End-to-end security
6.1.5. Manageability at scale
6.2. A model for designing edge native applications
6.2.1. The OSMP model
6.2.2. Perspectives
6.2.3. Views
6.3. Edge native design
6.3.1. Bootstrapping
6.3.2. Adaptive design
6.3.3. Edge high availability
6.3.4. End-to-end security practices with the OSMP model
6.3.5. Manageability
6.4. Summary
SECTION III: Capability-oriented architecture
7. Introduction to capability-oriented architecture
7.1. Capability proxy
7.1.1. Location transparency
7.1.2. Hybrid patterns
7.1.3. Proxy middleware
7.1.4. Proxy bootstrapper, capability set, capability profile and acquisition agent
7.1.5. Proxy HA
7.2. Intention
7.2.1. Interpreting user intention
7.2.2. Intention annotations
7.3. Semantic service discovery
7.3.1. Semantic service discovery process
7.3.2. Capability endpoint
7.3.3. Classic service discovery and description
7.3.4. Acquisition recipe
7.3.5. Client-initiated auctions
7.4. COA compute plane
7.4.1. Skynet-style computing
7.4.2. Crowdsourced cloud
7.4.3. Better computing for everyone
7.5. Context
7.5.1. User context
7.5.2. Activity context
7.5.3. Device context
7.6. Summary
8. COA applications
8.1. A phone without applications
8.2. Intelligent applications
8.3. Zero-touch device provisioning
8.3.1. Device provisioning process
8.3.2. Design a generic solution
8.4. Collaborative computing
8.5. Context-aware computing
8.5.1. Device context descriptor
8.5.2. Adapt to network conditions
8.5.3. Real-world contexts
8.6. Approachable AI
8.6.1. AI inferences
8.6.2. Custom AI models
8.7. Browser-based cloud
8.8. COA – A confession
8.9. Summary
Index