Need suggestion for moving IoT data storage from local VM to Azure.

Serafino Spagnol 20 Reputation points
2023-08-29T17:10:38.7133333+00:00

Hi!,

Need suggestion for moving IoT data storage from local VM to Azure.

I'm going to revise an existing IOT server application and I need suggestion about data storage strategy.

current situation:

  • there is a windows VM machine running WindowsServer2012R2 with a c# .net framework application written by me running as a service.
  • This application comunicates with a number of IOT devices (currently 400 devices), collect data from them (in a form of records), and store that data on a MySql server instance running on the same VM.
  • For every IOT device there is a dedicated DB on MySql server because every IOT devices has his own data schema.
  • Data are not relational, every datarecord has a timestamp and a number of byte/short/float/long/string values (temperature, humidity, flow, ... ...)
  • Every device'DB has around 40 tables, and each device generates an average of 5 milions records per year.
  • On the same VM there is an instance of MSSQLExpress for system data storage, users list, devices list, ...

Now the system is working but (fortunally..) devices number are growing very fast (by the end of 2024 they should be 2K) and I don't know how long the local instance of MySql is good for that. Moreover databackup and restore from a disaster is another concern.

I'm considering to move the data storage (both IOT devices data and system configuration data) from local VM to Azure.

My question:

Move the local MSSQL to Azure is no problem, I think the proper Azure service is "Fully managed Azure SQL Database" but what about the IoT devices data stored on MySQL ? which is the most suitable Azure service for such a large number of different databases?

thanks fo any suggestion,

regards,

Serafino

Azure IoT
Azure IoT
A category of Azure services for internet of things devices.
391 questions
Azure SQL Database
0 comments No comments
{count} votes

Accepted answer
  1. AirGordon 7,030 Reputation points
    2023-08-29T20:07:48.3633333+00:00

    Hi Serafino,

    To answer your specific question about services to progress your app to;

    Current solution Azure Service
    Local MSSQL Azure SQL Database / Azure Managed Instance
    MySql Azure Database for MySQL - Flexible Server

    You'll likely find the MySQL Flexible Server gives you the platform to create many MySql databases, which should solve your scaling problem. AFAIK there is not an enforced maximum for number of databases.

    When it comes to how to connect from the VM, i'd suggest using Managed Identity . A user-assigned identity for an Azure Virtual Machine (VM) is assigned which then can be configured to allow onward access an Azure Database for MySQL server. Managed Service Identities are automatically managed by Azure and enable you to authenticate to services that support Azure AD authentication, without needing to insert credentials into your code.

    1 person found this answer helpful.
    0 comments No comments

0 additional answers

Sort by: Most helpful