The platform that launched your IoT product is not always the one that scales it. At some point, every growing deployment hits the same wall releases slow down, integrations become workarounds, and adding devices makes the system less stable instead of more capable.
The decision to migrate is not the hard part. Most teams already know they need to move. The hard part is doing it without disrupting a fleet of devices that is live in the field, serving real customers, right now.
Here is how to run a zero-downtime IoT platform to migrate to the architecture, the sequencing, and the mistakes that catch teams off guard.
Why Migrations Feel Riskier Than They Are
The fear is always the same devices go dark, telemetry stops flowing, and customers notice. That fear keeps teams on platforms they have outgrown for months or years longer than they should stay.
The reality is that a well-structured migration never asks you to flip a switch. You do not turn off the old platform and hope the new one works. You run both simultaneously, move devices in controlled batches, and only decommission the old system after every device has been verified on the new one.
The risk is not in migrating. The risk is in waiting until the legacy platform forces an emergency move with no time to plan.
The Parallel-Run Architecture
The core idea is simple your old platform keeps running while the new one comes up alongside it. Devices move over in waves, not all at once.
┌──────────────────┐
Batch 1 devices → │ New Platform │ ← verified, live
└──────────────────┘
┌──────────────────┐
Remaining fleet → │ Legacy Platform │ ← still running
└──────────────────┘
At no point is any device disconnected. A device either talks to the old platform or the new one never, never at the same time.
Step-by-Step Migration Sequence
Step 1: Audit Your Current State
Before you move anything, map what you have. This sounds obvious, but most teams discover surprises during the audit devices they forgot about, integrations nobody documented, and data pipelines that depend on undocumented quirks in the legacy system.
What you need to know:
Total device count and types
Protocols in use (MQTT, HTTP, CoAP, Modbus)
Telemetry frequency per device type
Data retention requirements
Downstream integrations (ERP, dashboards, alerting)
Firmware update mechanism
Authentication method (tokens, certificates, API keys)
If any of these are unclear, the migration is not ready to start. Every unknown becomes a production incident later.
Step 2: Build the New Platform Alongside
Stand up the new platform in parallel. Same clouds, different environments. Configure device provisioning, data ingestion, storage, and core integrations. Test it with simulated traffic before any real device touches it.
A basic validation script helps confirm the new pipeline is working end to end:
import paho.mqtt.client as mqtt
import json
import time
# Simulate a device publishing to the new platform
client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2)
client.username_pw_set("TEST_DEVICE_TOKEN")
client.connect("new-platform.example.com", 8883)
test_payload = {
"device_id": "migration-test-01",
"temperature": 23.5,
"humidity": 61,
"ts": int(time.time() * 1000)
}
client.publish("v1/devices/me/telemetry", json.dumps(test_payload), qos=1)
print("Test payload sent — verify in new platform dashboard")
client.disconnect()
If the test payload appears in the new platform dashboard with correct values and timestamp, the ingestion pipeline is ready.
Step 3: Migrate Historical Data
Your new platform needs history, not just new readings. Export telemetry data from the legacy system and import it into the new one. Time-series data typically moves well between platforms; the format is usually timestamp plus key-value pairs.
The critical detail is preserving original timestamps. If you re-timestamp during import, every historical chart, trend line, and report breaks. Always use the source timestamp, never the import time.
Step 4: Move Devices in Batches
Start with a small, low-risk batch. Internal devices, test units, or a single customer site. Move them to the new platform, monitor for 48 to 72 hours, and verify that telemetry, alerts, and integrations all work correctly.
A practical batch sequence:
Batch 0 → 5-10 internal/test devices (verify pipeline)
Batch 1 → 50 low-risk production devices (verify at scale)
Batch 2 → 200-500 devices (stress test)
Batch 3 → Remaining fleet (full cutover)
Each batch gets its own verification window. If anything fails, you roll that batch back to the legacy platform. The rest of the fleet is unaffected because it never moved.
Step 5: Update Device Credentials
Every device needs new credentials for the new platform tokens, certificates, or API keys depending on your authentication model. For devices that support OTA configuration updates, push the new credentials remotely. For devices that do not require firmware updates or manual reprovisioning.
This is usually the slowest part of migration. Plan for it early.
Step 6: Decommission the Legacy Platform
Only after every device is verified on the new platform and running stable for a defined period, typically two to four weeks, do you shut down the old system. Keep a read-only archive of historical data from the legacy platform for compliance or reference.
What Catches Teams Off Guard
Undocumented integrations. A downstream system nobody remembered is pulling data from the legacy platform. It breaks silently after cutover because nobody migrated to its connection. The audit in Step 1 exists to catch these, but only if it is thorough.
Firmware that cannot be updated remotely. If your devices do not support OTA updates, every credential change means a field visit or a customer-assisted reset. For large fleets, this can stretch a migration from weeks to months.
Time zone and timestamp mismatches. Legacy platforms and new platforms often handle timestamps differently. If one stores in UTC and the other in local time, every historical comparison is wrong by hours. Standardize UTC from the start.
This post covers the migration architecture. For the broader picture of when to migrate, the cost of waiting, and how to future-proof the platform you are moving to, the full guide on Promeraki covers it end to end.
Top comments (0)