PRACTICE 04 — MIGRATIONS AND MODERNIZATION

Migrations without the drama.

Changing servers, clouds, databases or versions is where systems break — and where having done it dozens of times makes the difference. Every migration starts with an inventory of what exists and ends with the system running at its destination, documented, monitored and with a known cost.

CLOUD

Cloud migration

Systems moving off on-premise servers, shared hosting or platforms like Heroku onto AWS or Azure, with the right strategy for each application.

  • Inventory of applications, dependencies, integrations and data, mapping what must change and what can move as is
  • Per-application choice between rehost (move as is), replatform (adjust) and refactor (redesign), with the cost and risk of each
  • Target architecture written as code — Terraform, Bicep or CloudFormation — reproducible and reviewable
  • Networking, identity, secrets, DNS and certificates planned up front, not discovered during cutover
DATA

Database migration

Migration and upgrade of PostgreSQL and other relational databases across providers and versions, with minimal or zero downtime.

  • Logical replication or managed tooling to keep source and target in sync and cut over in minutes, not hours
  • Row-level integrity validation, counts, checksums and application tests against the target
  • Review of extensions, collation, encoding and versions — the details that break a migration that 'passed' in testing
  • Performance tuning at the destination: parameters, indexes and queries, because a database migrated as-is usually ends up slower
LEGACY

Legacy modernization

Old systems that still run the business but block every change. We modernize in pieces, without stopping operations.

  • Strangler fig pattern: a façade in front of the legacy system, modules extracted one at a time, the old one switched off when nothing depends on it
  • APIs over what exists, so new systems and integrations do not depend on direct access to the legacy database
  • Platform and version upgrades — .NET Framework to modern .NET, out-of-support Java and Node.js — with regression tests
  • Containerization to run anywhere and simplify deployment and scaling
PLATFORM

Containers and platform

How the application runs at its destination determines cost, scale and how much operational work is left for your team.

  • Docker and orchestration with Kubernetes, ECS or Azure Container Apps — or a managed service when that is simpler
  • CI/CD pipelines for the new platform, with zero-downtime deploys and one-command rollback
  • Observability from day one: centralised logs, metrics, distributed tracing and alerts
  • Autoscaling and staging environments that spin up and down on demand
FINOPS

Cost and governance

A badly configured cloud gets expensive quietly. After the migration comes the part nobody plans for.

  • Right-sizing of instances and databases, reserved instances or savings plans where usage is predictable
  • Resource tagging by project and cost centre, with budgets and alerts before the invoice surprises you
  • Monthly cost review with concrete recommendations and shutdown of what nobody uses
  • Access policies, separate accounts per environment and governance your team can actually maintain
CONTINUITY

Security and continuity

A migration is the best opportunity to get backup, recovery and security the way they should have been from the start.

  • Continuous backup with point-in-time recovery, and restores that are actually tested, not just configured
  • Disaster recovery plan with RPO and RTO agreed with the business and rehearsed
  • Least-privilege identity and access, private networking, encryption in transit and at rest
  • Audit logging and compliance with GDPR, LGPD or your industry's requirements
HOW WE RUN IT
01
Inventory
What exists today, what depends on what, what nobody can explain. The map before the route.
02
Target architecture
Design, estimated cost and a per-application migration plan, in stages with success criteria.
03
Rehearsal
A staging environment identical to production, an end-to-end dry run and a measured cutover time.
04
Cutover and stabilisation
Cutover with a rollback plan, close follow-up in the days after and handover to your team.
PLATFORMS AND TOOLING

AWS and Azure as primary targets, with experience of Heroku, on-premise servers and traditional hosting as sources. Terraform, Bicep and CloudFormation for infrastructure; Docker, Kubernetes and managed services for runtime; PostgreSQL, SQL Server and MySQL for data; GitHub Actions, Azure DevOps and GitLab for pipelines.

50+ PROJECTS DELIVERED SINCE 2005

The next one could be yours.

Tell us what you need to build, migrate or automate. Our sales team will get back to you within one business day to understand the project and schedule a call.

Verification code

Your details are used only to reply to this message.