(Cloud development & migration)

Cloud development and migration without the bill that arrives later

Cloud development is two jobs wearing one name: building services that suit a rented data centre, and moving what you already run into one. Both are done here, and priced separately.

Data mesh abstract
Cloud development & migration

(Rented, not owned)

A server you own punishes you for buying too little. A server you rent punishes you for leaving it on. That single difference decides how the architecture should look, how the bill behaves, and why a straight copy of an old estate almost always costs more in the cloud than it did in the rack.

Which is fine, as long as the trade is deliberate. Some workloads are worth paying more for; some should never have left the cupboard they are in.

(What we deliver)

Cloud migration and cloud-native work we take on

Most estates need three or four of these. Each is scoped on its own so a migration can pause without stranding you between two data centres.

  1. An inventory of applications, dependencies, data volumes and licences, then a call per workload: rehost, replatform, re-architect, retire or leave alone. Comes with an estimated monthly run cost for each path, so the cheap-looking option is compared properly with the fast one.

  2. Accounts or subscriptions, network layout, identity, logging, budgets and policy, defined as Terraform before anything moves in. Building the estate first is what stops the sprawl of untagged resources nobody dares delete eighteen months later.

  3. Moving virtual machines and databases largely as they are, in waves, with a rehearsed cutover and a tested route back. Fastest way out of a data centre with a lease expiring, and the right answer for workloads that will be retired within a couple of years.

  4. Breaking a monolith into services, swapping a self-managed database for a managed one, replacing cron boxes with queues and scheduled functions. Slower and more expensive up front; it is the only path that makes the running cost drop instead of rise.

  5. New systems designed for the platform: containers on EKS, AKS or GKE, serverless where the traffic is spiky, managed Postgres, object storage, event buses. Infrastructure lives in Terraform modules and ships through the same pipeline as the code.

  6. Tagging that makes the bill readable per team and per product, right-sizing, savings plans, storage lifecycle rules and alerts on spend anomalies. Plus dashboards, log retention and the on-call runbooks the platform needs once it is live.

(Platforms and tooling)

(How we work)

How a migration actually runs

Migrations fail at the cutover, not the copy. These phases replace the studio’s usual six because the sequencing is different.

  1. 01

    Discover

    Agents and interviews build the real dependency map — including the forgotten server that everything quietly depends on. Two to four weeks for a mid-sized estate, and you keep the inventory whatever you decide next.

  2. 02

    Decide per workload

    Each application gets a disposition, a target design and a cost estimate. Anything with a licence question, a compliance boundary or a chatty database link is flagged early, because those are what move waves around.

  3. 03

    Build the landing zone

    Accounts, networking, identity, logging, backup and policy as code. A pilot workload — low risk, real traffic — goes through the whole pipeline to prove the design before the big ones queue up.

  4. 04

    Migrate in waves

    Groups of applications that share dependencies move together. Each wave is rehearsed on a copy, cut over in a window you agree, and left with a rollback that stays valid for a fixed number of days.

  5. 05

    Optimise

    For the first two months after each wave the estate is over-provisioned on purpose. Right-sizing, reserved capacity and storage tiering come after real usage data exists, not before.

  6. 06

    Hand over or run

    Runbooks, dashboards, alert routing and a cost review cadence. Your team takes the pager, or we keep it under an agreed support arrangement — either way the Terraform is in your repository.

(Why Team of Keys)

What keeps a cloud programme from turning into a bill

The common failures are predictable: no guardrails, a big-bang cutover, and nobody watching the meter until finance does.

  1. 01

    Cost modelled before the move

    Each disposition carries an estimated monthly figure, checked against real usage a month after cutover. Surprises get investigated rather than absorbed into next year’s budget.

  2. 02

    Infrastructure as code from day one

    Nothing important is clicked into a console. Environments are reproducible, changes go through review, and the disaster-recovery story is a pipeline run rather than an afternoon of remembering.

  3. 03

    A rollback that has been tested

    Every wave keeps a documented way back, rehearsed on a copy of production. Cutovers happen midweek, in business hours, with the people who wrote the plan in the room.

  4. 04

    Cloud-agnostic where it is cheap to be

    Containers, Postgres and open telemetry travel. Managed services that genuinely save money get used anyway, with the lock-in written down instead of discovered during a renewal negotiation.

  5. 05

    Security in the design, not the audit

    Least-privilege roles, private subnets, encrypted storage, secrets in a managed vault and centralised logs. Built to the CIS benchmarks as a practice, which is what makes the later audit uneventful.

(Related)

More in development

(FAQ)

Questions, answered

Two figures matter and they move in opposite directions. Project cost scales with the number of workloads and how many are re-architected rather than rehosted. Run cost is the one that lasts, and a straight lift-and-shift usually raises it by a third before optimisation brings it back. The assessment gives you both numbers per workload before you commit.

Usually both, split by workload. Rehost anything being retired soon, anything with a lease deadline, and anything too fragile to touch twice. Re-architect the two or three systems that dominate the bill or the outage log. Doing the whole estate either way is how programmes run over — the disposition call is made application by application.

Whichever your team can operate on Monday morning. Azure tends to win where Microsoft licensing and Active Directory are already central, AWS where breadth of managed services matters, Google Cloud where the workload is data or machine learning heavy. Existing commitments and staff skills decide it more often than feature comparisons.

Discovery is two to four weeks. A landing zone plus a pilot workload is another three to six. After that, waves run every two to four weeks depending on how much rehearsal each one needs. A fifty-application estate is typically a six to nine month programme, and your data centre lease usually sets the pace.

Yes, and that is the more common request. A review of accounts, networking, identity, tagging and spend produces a prioritised list of fixes — the ones that reduce risk, the ones that reduce cost, and the ones that can wait. Guardrails can be added to a running estate without downtime.

(Global presence)

Nine countries, one studio behind them.

Every project is designed, built and shipped from one studio.
Turn the globe, or pick a country to see what we deliver there.

(Next step)

Send us your estate, or your architecture diagram

A workload list, a recent cloud bill or a data centre exit date is enough to start. You get an assessment scope and a price, usually within two working days.

START

Or write to info@teamofkeys.com · Noida, India