Using Azure IoT in production: looking for best practices

New Contributor
Hello everyone, 
We are working on an agriculture tech solution. 
Part of the solution is having IoT devices spread around the glob (although we are starting in a specific area and will spread later). 
We are using Nvidia's Xavier GPU, which contains Ubuntu 18.04 with ARM64. 
Note: Nvidia has an automatic installation process using JetPack (currently 4.2.1) which installs the OS, docker, cuda, cudnn and more. 
We were able to set Azure IoT 1.0.8 on these devices, which we currently install manually before sending them to the field. 
We also managed to install Azure VPN on them, again, manually/using Ansible. 
What are interested in is to understand what are the best practices, especially in production when it comes to: 
  • Upgrade Ubuntu packages (non docker)
  • Security upgrades? 
  • Actual Azure IoTEdge/Hub upgrades (e.g /etc/azureiot/config.yaml)
  • Installing tools outside docker in all devices at once i.e running Ansible/Terraform remotely? 


Few things to consider: 


  • Our devices are going to be offline while working in the fields, and online only at the end of the day, is it worth using AKS? 
  • Do we need the VPN mentioned above? We were thinking that it would help connecting them remotely (e.g SSH)
My gut feeling is that we are missing something in the way we approach it, but I`m not sure why. 
I would be happy to hear your opinion about this.
Thank you!
2 Replies
best response confirmed by Deleted

@shakedko I find connectivity to the sites and out of band management to be the biggest challenges right now, when you talk globally. Also VPN is going to be a lot of overhead unless you have good connectivity.

@DSSRyan Yes it is. I would be happy to see which solutions are available out there. 


However, how would you approach the other questions assuming that you know that every night you would be able to access these devices?