Skip to content

Commit a85bfb6

Browse files
IoT Firmware Updates with OBJ and CDN (#6956)
* initial commit * second commit * copy edit * copy edit, typo fix, added keywords * updates and svg * move out of ref arch section --------- Co-authored-by: John Dutton <[email protected]>
1 parent d1322a2 commit a85bfb6

File tree

2 files changed

+67
-0
lines changed

2 files changed

+67
-0
lines changed
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
---
2+
slug: iot-firmware-upgrades-with-obj-and-cdn
3+
title: "IoT Firmware Upgrades with Object Storage and Akamai CDN"
4+
description: "This guide discusses using Object Storage and Akamai CDN to distribute IoT firmware upgrades."
5+
authors: ["John Dutton"]
6+
contributors: ["John Dutton"]
7+
published: 2024-07-08
8+
keywords: ['s3', 'object storage', 'iot', 'internet of things', 'firmware']
9+
license: '[CC BY-ND 4.0](https://creativecommons.org/licenses/by-nd/4.0)'
10+
---
11+
12+
## Overview
13+
As more and more consumer electronics join the Internet of Things (IoT), the need to deliver feature and security firmware updates to these devices becomes more critical for IoT device manufacturers. One of the main aspects of delivery manufacturers need to plan for is how much egress data these systems will use. At scale, the price of keeping both consumers and the business happy and secure can be enormous. Using Linode Object Storage on Akamai Connected Cloud as an origin for this data, and connecting that service to Akamai CDN, can provide a huge cost savings over other competing hyperscalers.
14+
15+
## Firmware Update Workflow
16+
1. A manufacturer uploads a new firmware package to an Object Storage bucket.
17+
1. A client requests new firmware.
18+
1. Firmware is served to the client from the Object Storage bucket via Akamai CDN.
19+
20+
## Overcoming Challenges
21+
22+
### Challenge: Moving Away from Amazon EFS
23+
24+
An IoT manufacturer found themselves struggling to send OS and firmware updates to customer devices with AWS’ high egress costs. Amazon Elastic File Service (EFS) allows customers to upload and share files with EC2 instances without the need for upgrading or migrating storage volumes, all while preserving file system access to those files. However, this can come at a steep cost.
25+
26+
**Solution**: The open source project s3fs allows a virtual machine to mount any Object Storage bucket, so Linode Object Storage buckets can be mounted to the EC2 Volume using the s3fs utility. This allowed the IoT manufacturer's developers to remove their dependency on Amazon EFS while preserving network file system access and cutting costs.
27+
28+
### Challenge: Cut Egress Costs
29+
30+
Another challenge the IoT manufacturer encountered was supporting more IoT devices worldwide. This resulted in the scale of their firmware delivery service growing in both storage and delivery costs. The IoT manufacturer was looking for a service that could help them save money on egress and improve their bottom line.
31+
32+
**Solution**: Because Linode Object Storage on Akamai Connected Cloud has much lower egress rates than AWS’ offerings, and because it can be set as an origin for Akamai CDN, the IoT manufacturer was not only able to keep file system access to firmware objects, but decrease egress costs by 90%.
33+
34+
## Architecture
35+
36+
This solution creates a streamlined delivery pipeline that allows developers to update firmware quickly across a fleet of customer devices at a reduced cost.
37+
38+
![A reference architecture depicting IoT firmware upgrade functionality](iot-firmware-upgrade-reference-architecture.svg)
39+
40+
### Systems and Components
41+
42+
- **Linode Object Storage:** An S3 compatible Object Storage bucket
43+
44+
- **Linode VM:** A Dedicated 16GB Linode virtual machine
45+
46+
- **Akamai CDN:** A global CDN running on Akamai’s industry leading backbone
47+
48+
- **AWS Elastic Load Balancer (ELB):** This load balancer splits traffic between the firmware check module that verifies clients have the right request, as well as the EC2 group that the main Object Storage bucket is mounted to.
49+
50+
- **AWS Direct Connect:** A dedicated connection from the IoT manufacturer developers to the ELB
51+
52+
- **AWS EFS:** Elastic file storage that provides file system access to uploaded files
53+
54+
- **Amazon Relational Database (RDS):** A database used to verify firmware version information
55+
56+
### Steps
57+
58+
1. **Developers upload new firmware.** The IoT manufacturer developers use Direct Connect to easily send the firmware to an Elastic Load Balancer (ELB).
59+
60+
1. **Pass firmware to an EC2 instance.** The ELB transfers the new firmware to an EC2 instance, where it can be validated by a version check module.
61+
62+
1. **Transfer checked firmware to Object Storage.** Mounted to an EC2 Group using s3fs, a Linode Object Storage bucket is used to store the new firmware.
63+
64+
1. **Sync new firmware to backup bucket.** Using rclone, an open source application, on a Dedicated 16GB Linode, the new firmware is synced to a backup Object Storage bucket. Rclone intelligently only synchronizes new and changed firmware, reducing needless operations.
65+
66+
1. **System returns requested firmware to the IoT device.** Using Akamai CDN with its origin as the Object Storage bucket, the requested or required firmware is delivered to the IoT device.

docs/guides/akamai/get-started/iot-firmware-upgrades-with-obj-and-cdn/iot-firmware-upgrade-reference-architecture.svg

Lines changed: 1 addition & 0 deletions
Loading

0 commit comments

Comments
 (0)