February 23, 2026
Article
This article describes a practical Proof of Concept (PoC) to validate observability stack portability from:
Azure (AKS + Azure Storage Account) to
OVH Cloud (Managed Kubernetes + OVH Object Storage)
The goal was simple:
Can we migrate a Tempo-based tracing backend across cloud providers without touching application instrumentation and without rebuilding the entire observability stack?
The short answer: Yes, we can!
This PoC demonstrates how object storage abstraction + rclone + clean Kubernetes deployment makes observability backend migration predictable and low-risk.
This PoC was not only a technical exercise — it was a validation of reverse cloud migration feasibility: moving stateful observability infrastructure from a US hyperscaler (Azure) to a European cloud provider (OVH).
Initial Architecture (Azure)
Components
AKS (Azure Kubernetes Service)
Grafana Tempo
Azure Blob Storage (Storage Account)
Storage Model
Tempo was configured to use:
Tempo writes:
WAL (Write-Ahead Log)
Blocks
Index metadata
All persisted in Azure Blob Storage.
Important property:
Tempo treats object storage as the system of record.
This is what makes the migration possible.
Target Architecture (OVH)
Components
OVH Managed Kubernetes
OVH Object Storage (S3-compatible)
Grafana Tempo (new deployment)
Grafana (new deployment)
Same trace data, copied from Azure
Key idea:
Instead of re-ingesting traces, we migrate the object storage backend ans show reverse migration in practical way.
Migration Strategy
Instead of:
Replaying telemetry
Dual-writing traces
Modifying collectors
We chose:
Copy object storage contents from Azure Storage Account to OVH Object Storage Service → Deploy new Tempo in OVH Managed Kubernetes Service → Point to new bucket
Data Transfer with rclone
We decided to use rclone https://rclone.org/. It is a really cool utility to migrate data between different providers.
Why rclone?
Supports Azure Blob
Supports S3-compatible object storage
Efficient parallel transfer
Metadata preservation
Resume support
Step 1 — Configure rclone
Azure Blob config
Example remote:
OVH Object Storage (S3 compatible)
Step 2 — Copy Data
Verification:
Deploy Tempo on OVH Kubernetes
Install via Helm:
tempo-values.yaml
Configured to use OVH Object Storage (S3 backend):
Install:
Critical:
The bucket name must match the copied container
Path structure must remain unchanged
Tempo reads existing blocks automatically.
Deploy Grafana on OVH
Install Grafana and check whether historical data is in Tempo or not, and here we go

What This Proves
Cloud migration does not have to be a one-way journey toward hyperscalers. Reverse migration — moving workloads and data from one cloud provider to another, including from US-based hyperscalers to European cloud platforms — is technically feasible when systems are designed with portability in mind.
The results demonstrate that when architecture is designed around open standards and storage abstraction, such a transition becomes operationally straightforward.
In other words, reverse migration (US → EU) is viable when state is portable and architecture avoids proprietary lock-in.
Conclusion
If your organization is evaluating:
Hyperscaler exit strategies
Sovereign cloud transitions
Multi-cloud rebalancing
Cost or compliance-driven cloud changes
We can help assess portability, design the migration path, and execute the transition safely.

