From Legacy to Cloud-Native in Weeks, Not Months
How a financial services company migrated 47 microservices from bare VMs to Kubernetes on OpenStack in 8 weeks — cutting infrastructure costs 65% and deployment time from days to minutes.

The Starting Point
A mid-market financial services company in West Africa — 200 engineers, 47 services, $1.4M annual infrastructure spend — was running everything on bare VMs across three data centers. Deployments took 2-3 days. Rollbacks were manual and terrifying. Scaling meant filing a ticket, waiting for procurement, and racking a server.
Their CTO had been told, by two different consulting firms, that a "cloud transformation" would take 12-18 months and cost $2-4M in professional services. They'd been paralyzed by that estimate for two years, watching competitors ship faster while their infrastructure aged.
They came to us with a simple question: Is there a faster path?
The answer was yes. Eight weeks later, they were running a production Kubernetes platform on OpenStack — with 65% lower infrastructure costs and deployment times measured in minutes.
Why "12-18 Months" Is Almost Always Wrong
The traditional migration timeline assumes:
- Months of assessment — mapping every system, interviewing every team, producing a 200-page document nobody reads
- Platform selection committee — evaluating 15 vendors, running POCs with 3, deciding by consensus
- Sequential migration — moving one service at a time, with a full regression cycle after each
- Big-bang cutover — flipping DNS on a Saturday night and praying
Each of these steps is either unnecessary or dramatically compressible.
Assessment: 1 Week, Not 3 Months
We deploy lightweight agents across the existing infrastructure that map service dependencies, resource utilization, and traffic patterns automatically. In 5 business days, we have a complete topology of what's running, what talks to what, and what actually consumes resources.
No interviews. No workshops. No 200-page document. Data over opinions.
Platform: Opinionated, Not Negotiated
We don't run a vendor selection process because we already know what works: OpenStack for IaaS, Kubernetes for orchestration, Ceph for storage, Prometheus/Grafana for observability. This stack is proven at scale by thousands of companies. The only decisions are sizing and topology — and those come from the assessment data.
An opinionated platform eliminates months of committee work. You're not choosing between 15 options. You're configuring one proven stack for your specific workload profile.
Migration: Parallel, Not Sequential
With Kubernetes as the target, containerized services can migrate in parallel. We typically move in three waves:
Wave 1 (Week 3-4): Stateless services
- API gateways, web frontends, background workers
- These have no persistent state — container, deploy, validate, done
- Usually 60-70% of total services by count
Wave 2 (Week 5-6): Stateful services
- Databases, message queues, caches
- These require data migration with replication-based cutover
- PostgreSQL logical replication, Redis snapshot restore, Kafka MirrorMaker
- Zero-downtime cutover during maintenance windows
Wave 3 (Week 7-8): Edge cases and validation
- Legacy services that need refactoring
- Integration testing across the full stack
- Performance benchmarking against baseline
- Runbook creation and team handoff
Cutover: Progressive, Not Big-Bang
Traffic shifts gradually via weighted DNS or service mesh routing. 5% → 25% → 50% → 100% with automated rollback triggers. If error rates spike above baseline at any stage, traffic routes back automatically.
Nobody's praying on a Saturday night. The system proves itself incrementally.
The 8-Week Timeline
Here's exactly how the engagement unfolded:
Week 1: Discovery
- Deployed infrastructure mapping agents across 3 data centers
- Cataloged 47 services, 12 databases, 8 message queues
- Identified 34 services already containerized (Docker), 13 on bare VMs
- Measured baseline: avg deployment time 2.3 days, monthly infra cost $117K
Week 2: Architecture & Provisioning
- Designed target architecture: 3-node OpenStack control plane, 12 compute nodes, Ceph storage cluster
- Provisioned hardware (existing data center, repurposed + 4 new nodes)
- Deployed OpenStack Bobcat with automated tooling
- Stood up Kubernetes 1.29 cluster with Cilium CNI
Weeks 3-4: Wave 1 Migration
- Migrated 34 containerized services to Kubernetes
- Wrote Helm charts for each service (standardized template + per-service values)
- Established CI/CD pipelines: GitLab → Harbor registry → ArgoCD → Kubernetes
- Set up Prometheus + Grafana monitoring with service-level dashboards
- Result: 34 services running on new platform, deployment time: 4 minutes average
Weeks 5-6: Wave 2 Migration
- Migrated PostgreSQL databases using logical replication (zero downtime)
- Moved Redis clusters with snapshot-based migration during low-traffic windows
- Migrated Kafka clusters using MirrorMaker 2 with consumer group offset sync
- Containerized 8 of 13 remaining VM-based services
- Result: All stateful services running on new platform, data integrity verified
Weeks 7-8: Wave 3 & Hardening
- Refactored 5 legacy services that required changes for containerization
- Full integration test suite across all 47 services
- Load testing: confirmed 40% performance improvement (no hypervisor overhead)
- Security audit: network policies, RBAC, secrets management, image scanning
- Created operational runbooks and conducted 3 handoff sessions with the ops team
- Progressive traffic cutover: 5% → 25% → 50% → 100% over 4 days
The Results
Cost
| Metric | Before | After | Change |
|---|---|---|---|
| Monthly infrastructure | $117,000 | $41,000 | -65% |
| Annual infrastructure | $1,404,000 | $492,000 | -65% |
| Annual savings | — | $912,000 | — |
The savings came from three sources:
- Eliminated VM licensing overhead (no VMware licenses): $18K/month
- Higher hardware utilization (65% avg vs 22% on VMs): $42K/month
- Eliminated egress and managed service fees: $16K/month
Speed
| Metric | Before | After | Change |
|---|---|---|---|
| Deployment time | 2.3 days | 4 minutes | -99.9% |
| Rollback time | 45 minutes (manual) | 30 seconds (automated) | -98.9% |
| New environment provisioning | 2 weeks | 15 minutes | -99.9% |
| Incident recovery (MTTR) | 4.2 hours | 18 minutes | -92.9% |
Reliability
- Uptime improved from 99.7% to 99.95% in the first quarter post-migration
- Zero data loss during migration
- Zero unplanned downtime during cutover
- Automated failover tested and validated for all critical services
Team Impact
The platform team went from spending 70% of their time on manual operations (VM provisioning, deployment coordination, incident response) to spending 70% on platform improvements and developer experience.
Two engineers who had been planning to leave cited the new infrastructure as a reason they stayed. At $200K replacement cost each, that's $400K in avoided attrition.
Why This Speed Is Repeatable
This wasn't a miracle. It was methodology:
-
Automation over manual work. Every step that can be scripted is scripted. Infrastructure as code, deployment as code, configuration as code.
-
Opinionated stack. We don't waste weeks evaluating options. OpenStack + Kubernetes + Ceph is the answer for 90% of enterprise workloads. We spend our time on configuration, not selection.
-
Parallel execution. Small, focused teams working on compute, storage, networking, and application migration simultaneously — not sequentially.
-
Data-driven assessment. Automated discovery replaces months of stakeholder interviews. We know what's running because we measured it, not because someone told us.
-
Progressive cutover. No big-bang risk means no big-bang delay. Traffic shifts gradually, proving the new platform under real load.
The 8-week timeline isn't aggressive — it's what happens when you remove the unnecessary steps that bloat traditional migrations to 12-18 months.
The Playbook
If your infrastructure looks like this:
- 20+ services on VMs or legacy platforms
- Monthly cloud/infra spend above $50K
- Deployment cycles measured in days
- Engineering time consumed by operations
Then an 8-week migration to cloud-native infrastructure is realistic. Not promised — realistic. The actual timeline depends on your starting point, but the methodology compresses what most consultancies stretch into multi-year programs.
The question isn't whether the technology works. It does. The question is whether you're willing to move at the speed the technology allows.
Fugoku delivers cloud-native migrations in weeks, not months. 65% cost reduction, sub-5-minute deployments, and infrastructure that scales with your business. Start a conversation.