Akraino Enables Multi-Architecture Supportfor Edge Workloads through Docker HubCase Study

Organization Snapshot
LF Edge
LF Edge is an umbrella organizationthat aims to establish an open,
interoperable framework for edge
computing independent of hardware,silicon, cloud, or operating system.
lfedge.org

Goal
Offer developers seamless support for creating and pushing multi-architecture (multi-arch)container images by implementing a multi-arch parallel CI/CD pipeline for edge to cloud
applications.

Solution
The manifest list (a.k.a. “fat manifest”) functionality in the Docker Hub registry is to introduce
support for multi-arch images giving developers ability to use the same name when pulling images
built on different hardware architectures. Prior to introduction of manifest list, developers had toeither pull the image by its arch specific tag to indicate the platform for which an image was built
or had to create Docker Hub namespaces for each architecture type creating fragmentation andnon-standardization.

Benefits
True multi-architecture workload portability
Increases developer’s productivity
Improves end-user experience
Akraino Edge Stack is one of the five main projects under LF (Linux Foundation) Edge, an umbrellaorganization under Linux Foundation, tasked to create open interoperable framework for edge
computing devices. Using containers is gaining popularity amongst developers to develop cloudnative software for edge to cloud applications. Docker is the leading container platform technology
used by millions of developers and combined with Docker Hub, the world’s largest cloud-based
public repository (a.k.a registry) for sharing packaged container images, tremendously increases
developer productivity for deploying services for edge applications like drones, autonomousvehicles, AR/VR, IIoT, smart home devices, healthcare, etc.
This case study shows how the Akraino Edge Stack project successfully integrated Docker Hubin one of its blueprints, and used the manifest list functionality to enable multi-arch support
enabling developers to seamlessly port and maintain edge workloads for Arm Neoverse servers.

1

Integrating Docker Hub Multi-arch Support in CI
Following the Akraino Edge Stack project example, one can integrate Docker Hub in a CI
environment in their own project with the following two steps:
1. Install Docker on the system running CI software (Jenkins slave in Akraino example)
2. Replicate the JJB (Jenkins Job Builder) scripts in project’s CI environment for:a. Building and pushing multi-arch images (for example: akraino/validation:k8samd64- latest and akraino/validation:k8s-arm64-latest)
b. Building and pushing the manifest list based on those images with thesame names removing the architecture type name from the tag(for example: akraino/validation:k8s-latest).

Figure 1: Multi-arch CI/CD Pipeline Implementation Example
Source: Akraino Multi-Architecture Support Presentation on Akraino LF Edge Site

Example: Akraino Validation Multi-arch project
The Akraino Blueprint Validation project is already pushing multi-arch images to theofficial Docker Hub registry as well as the manifest list. The Jenkins build jobs run daily
creating these multi-arch images.

Figure 2: Akraino Validation Project on Docker Hub2

Figure 3: Jenkins Build Jobs creating multi-arch images

When the developer wants to pull an image from Docker Hub, the name of the manifest is used(for example: akraino/validation:k8s-latest) and the correct image will be pulled based on the hostarchitecture from which the pull command is initiated.
For more details on how this works please refer to the LF Edge blog post.

Conclusion
True multi-platform workload portability has been the quintessential goal for edge to cloudcomputing applications. Any open source project, and not just projects under Linux Foundation,
developing container images and using Docker Hub as the registry can achieve multi-arch support
by following Akraino LF Edge Validation project described in this case-study.

3