senn-techsenn-tech
Cloud Solutions
Cloud Solutions2024-12-01· by Mag. (FH) Franz Senn

Cloud Migration Best Practices: Enterprise-Grade Strategies

The migration to the cloud—or to a modern on-premises platform like Proxmox—is rarely a technical problem. It almost always fails due to inadequate preparation. After over 15 years in IT and dozens of migrations, it's always the same six phases that make the difference. Skip them and you pay later with outages, night shifts, and blown budgets. The structure below has proven itself both for moves into the public cloud and for building a sovereign platform of your own. For SMEs there is an additional factor: migrations here rarely happen in a quiet back room — they have to spare live operations, which makes planning and communication at least as important as the technology.

Phase 1: Assessment & Planning

The most common mistake is insufficient preparation. A thorough inventory is mandatory:

  • Dependency Mapping — complete mapping of all system dependencies
  • Performance Baseline — document current performance metrics
  • Cost Analysis — TCO comparison between current state and target
  • Security Assessment — compliance and security requirements

Dependency mapping in particular is often underestimated: an apparently marginal interface that delivers data at night can block the entire chain once it's missing in the new environment.

Phase 2: Architecture Design

Cloud-native means rethinking. Monoliths are decoupled, state is externalized, scaling is thought of horizontally.

# Cleanly cut service boundaries
services:
  api:      { replicas: 3, stateless: true }
  worker:   { replicas: 2, queue: redis }
  storage:  { type: object, backend: minio }

Pulling state consistently out of services wins you something decisive: services can be swapped, scaled, and restarted without losing data. Exactly that property carries a migration through live operation.

Phase 3–6: Migrate, test, cut over, optimize

  1. Migrate — in small, rollback-capable steps, never "Big Bang".
  2. Validate — load and failover tests against the baseline.
  3. Cutover — switch over with a rollback path, ideally via proxy-switch.
  4. Optimize — fine-tune cost, scaling, and monitoring during operation.

The order is non-negotiable. Anyone who collapses "migrate" and "validate" to save time reclaims the missing tests at the latest incident — then under pressure.

Where migrations typically fail

The recurring stumbling blocks are barely technical, but organizational: unclear responsibilities, underestimated data volumes, forgotten cronjobs, or external systems that only surface in production. Another classic trap is underestimated network dependencies — latencies between services that used to sit side by side suddenly change response-time behavior noticeably. Baselines measured early and a clear communication plan between the business side and IT minimize these risks. A formal go/no-go meeting also prevents last-minute decisions being made under time pressure.

High Availability Is Not an Add-On

Those who are serious plan fault tolerance from the start: redundant nodes, replicated storage (e.g., with LINBIT DRBD/LINSTOR), and monitoring that flags problems before the customer notices.

A good migration is recognized by the fact that nobody noticed it happened.

FAQ
Where do cloud migrations most often fail in practice?+

Barely in technology, but in organization: unclear responsibilities, underestimated data volumes, forgotten cronjobs, or external systems that only surface in production. An underestimated network dependency suddenly changes response-time behavior. Early-measured baselines and a clear communication plan between the business side and IT minimize these risks, and a formal go/no-go prevents decisions under time pressure.

Is a big-bang migration enough to save time?+

No. Migrations run in small, rollback-capable steps, never as a big bang. Anyone who collapses migrate and validate to save time reclaims the missing tests at the latest incident — then under pressure. Load and failover tests against the baseline must precede the cutover, and the cutover needs a rollback path, ideally via a proxy switch.

When should high availability enter the plan?+

From the start, not after go-live. Anyone who adds fault tolerance later pays dearly — with outages that would have been cheap in planning. Planned from day one are redundant nodes, replicated storage (e.g. LINBIT DRBD/LINSTOR), and monitoring that flags problems before the customer notices. A good migration is recognized by the fact that nobody noticed it.