Edge computing is an extension to cloud computing. Companies are interested in bringing their cloud-native infrastructure and applications to the edge. Kate Goldenring and Amar Kapadia spoke at this year’s KubeCon CloudNativeCon North America 2022 Conference about progress made by the CNCF IoT Edge working group on principles to consider for edge-native applications in order to enable successful projects. They discussed nine edge native principles in the areas of scalability, observability, and ease of deployment on the edge.
Edge computing is a paradigm which brings data processing closer to the source, for example, robot control in a factory. Some of the benefits of edge computing include: reduced latency, bandwidth management, increased privacy, and uninterrupted Operations.
Goldenring and Kapadia talked about cloud native and edge native applications and how cloud native architectures influenced edge native. Cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. Edge native applications are built natively to leverage edge computing capabilities, which would be impractical or undesirable to operate in a centralized data center. Edge-native applications leverage cloud-native principles while taking into account the unique characteristics of the edge in areas such as resource constraints, security, latency and autonomy.
They discussed edge classification and different edge categories based on geography (on how far the edge is from the user or data source). Edge is broadly split into two categories: Service Provider Edge and User Edge. Service Provider Edge is a shared XaaS solution which is further broken down into Regonal Edge and Access Edge. User Edge is a dedicated and operated solution and consists of sub-classifications such as On-prem Data Center Edge, Smart Device Edge, and Constrained Device Edge where form-factor gets really small.
They discussed edge native apps that are more suitable for edge computing and need to support state management. Cloud native apps typically use stateless microservices that can scale horizontally and store state in a backend database. Cloud & edge native applications are similar in terms of app and service portability, observability, manageability, and agnostic language and framework support.
They also highlighted the differences between cloud and edge native applications. For state management, as application and data models become more and more constrained on the edge, the apps become more monolithic in terms of composition and deployment. Application code and data are colocated. The elasticity on edge is also more constrained and limited. You may want to scale vertically, with a piece of the application on the edge and another part of the application in the public cloud. Resilience in the cloud is typically outsourced to the cloud provider whereas the level of resilience on the edge is not the same because of the nature of the edge. In edge, scale dramatially changes with higher orders of magnitude because we need to support 100s or even 1000s of devices. In terms of orchestration on the edge, we get distributed orchestration, and location of apps and devices is very important.
Management on edge is centralized same as cloud but we also need remote management. Operations support is also different because there may be no staff at the edge locations; even if you have the team they may not have enough training. Edge management also requires zero touch provisiong of hardware and software, and system upgrades need to be robust. Networking need to support capabilities like storing data offline when network is down and forward it when network is available. Data stays in private network so edge based solutions are typically more secure compared to cloud solutions. Security considerations in the edge include knowing what should be and what should not be in the network. Zero trust on edge is very important.
Hardware awareness is another important component in edge application architectures. Cloud native applications use a standard flavor of hardware infrastructure whereas the edge native applications are different in terms of hardware. How much cpu or memory we have matters because we can not just add another VM server like we can on on-prem infrastructure or cloud. External device connectivity also influences the resource requirements because there can be a lot more external devices and the environment can be very different.
Goldenring and Kapadia discussed the edge native application principles in detail and how these principles need to be implemented in different applications hosted on the edge.
- Hardware Aware
- External Device Connectivity
- Aware of Variable Connectivity (and Network)
- Centrally Observable
- Infrastructure and Platform Management at Scale
- Application Management at Scale
- Portable and reusable – within limits
- Resource usage optimization
They shared details of two case studies (5G network and factory use cases) and how Radio Area of Network (RAN) can be setup for different edge applications. In 5G case study, other than the radio the entire network is software driven. Highlights of this case study include: 10s of thousands of RAN sites centrally managed with no staff available on-site. RAN has to be very efficient in resource consumption as it can be 65% of the cost of a 5G network. And RAN can run on multiple edge implementations (hyperscaler or private).
Factory edge application includes components like device registry and digital twins which need to be remotely managed & configured. Other architecture highlights of this case study include: Diagnostics are visible from the cloud. Data and processing stays on the factory floor but aggregated data (about device state, alerts, health, logs, etc.) sent up to cloud. Resource usage needs to support event driven services and data pipelines. Apps may be tightly tied to operations technology (OT) but data aggregation and processing workloads can be portable across factory locations.
Goldenring and Kapadia concluded their talk with a call of action to the developer community. CNCF IoT Edge WG is gathering a list of open source projects that enable app developers to achieve these edge native principles. Add your project to the list and share details at the working group meetings. They are looking for feedback on which principles your applications align with, what are your pain-points and what projects can help with those challenges.
To get involved with the working group, check out Edge Native Application Principles White Paper, group’s Slack channel (#wg-iot-edge on K8s Slack), bi-weekly meetings, and Runtime TAG GitHub project.