OTA Update with AWS? Build CI/CD pipeline to deliver OTA updates of a firmware

0

Hi!

I already have an AWS IAC built with AWS CDK in Python to deploy my whole Web App microservices and differente aws services connections and is working great.

Now I was wondering how could I build a CI/CD pipeline for 2 repos that I have that holds my firmware code, I should built that pipeline in the same IAC as the web app? Should I create another IAC specific for this case?

And how I can build an OTA update flow so my device can download the last firmware version? Should I build a pipeline that delivers the .bin file inside an specific S3 bucket and then make my device connect to that bucket to download the latest version of the firmware?

Thank you guys!

1 個回答
0
已接受的答案

Hello, Since you already have an AWS CDK stack for your web app, it would make sense to add the firmware CI/CD pipeline to that same stack. CDK allows you to define all your AWS infrastructure in code, so adding the firmware pipelines keeps everything together.

  • Create a CodePipeline in CDK that sources from your firmware Git repos, builds the code, runs tests, and produces the final firmware binaries. Output these to an S3 bucket or CodeCommit repository.

  • For OTA updates, yes, you can use an S3 bucket to host the latest firmware binary. The device would download from this bucket to update itself.

  • To track versions, you could use S3 object versioning and have the pipeline upload with unique version names like firmware-v1.2.bin.

  • On the device side, you need logic to check the S3 bucket for new versions, download the binary, then install the update.

  • An alternative is to use AWS IoT which has specific OTA update features to push updates to devices. This may require more device-side integration.

To Summarize, add a firmware pipeline to your CDK stack, output binaries to S3, have devices check S3 and install updates. This lets you manage both web and firmware CI/CD together.

AWS
已回答 1 個月前
profile pictureAWS
專家
已審閱 1 個月前
  • Great! This was very helpful, thank you so much!

您尚未登入。 登入 去張貼答案。

一個好的回答可以清楚地回答問題並提供建設性的意見回饋,同時有助於提問者的專業成長。

回答問題指南