Cloud & DevOps

Workloads moved to the cloud one decision at a time, releases through a pipeline with a rollback someone has actually tried, and access rules kept in code rather than in a review document.

The release happens on a Saturday because only one person knows the order of the steps. Staging stopped matching production sometime last year. The cloud account opened for one project now hosts five, and nobody can say which roles read production data. Meanwhile a lease or a hardware quote is pushing the next migration onto a deadline. None of this was designed. It built up one reasonable shortcut at a time, and it can be taken apart the same way.

Copy or rebuild

Decide workload by workload, not all at once

Lift and shift

Move each machine as it is onto a cloud server of about the same size. It meets the deadline, changes nothing in the application, and can be reversed.

  • Nothing in the application changes, so the test surface stays small
  • A lease or hardware deadline is met without rewriting anything
  • You can move back if the platform proves the wrong choice
  • Costs stay close to the old setup, because the old sizing moves too

Re-architect for the platform

Rebuild the workload around what the platform offers: managed databases, object storage, automatic scaling. More work up front, and a different way of operating afterward.

  • Capacity follows demand, so you stop paying for idle hours
  • Patching and backups move from your team’s calendar to the platform
  • The application has to change, and so do the tests
  • Worth it for individual workloads, rarely for the whole estate
Phases of a move

The order that keeps a migration uneventful

Every estate is a different size and every change board works at its own pace, so we don’t commit to dates here. The order doesn’t change, and each phase ends with a document or a running system you can verify.

  1. 01Phase 1

    Inventory and dependencies

    We list everything that runs and map what talks to what. This is where the surprises appear: a license server nobody owns, a batch job writing to a shared folder no diagram mentions. You receive the map with the unknowns marked.

  2. 02Phase 2

    Decide for each workload

    Each workload gets one of four outcomes: move it as it is, rebuild it for the platform, replace it with a product, or switch it off. Switching off is the cheapest option and almost always underused. Every decision is written down with its reasoning.

  3. 03Phase 3

    Build the landing zone

    Before anything moves, we set up what it moves into: accounts, networks, identity and access, secrets handling and policy guardrails, all as code in your repositories. Every later workload inherits mistakes made here, so you review it before the first system moves.

  4. 04Phase 4

    Move in waves

    The first wave is low-risk but realistic: real dependencies, users who tolerate small issues. Later waves carry the systems people would notice at once. Each wave has a rollback plan that has been carried out, not just written, and is reviewed before it closes.

  5. 05Phase 5

    Right-size and hand over

    Sizes are adjusted to how workloads actually behave in the cloud, not to hardware bought years ago. Then dashboards, alerts, runbooks and the on-call procedure go to whoever will operate the estate, together with the decision record.

Rare releases are the risky ones

Deploying often is safer than deploying rarely. If a release contains one change, a problem can be traced in minutes. With three months of changes in one release, finding the cause means testing them one by one. The release window meant to reduce risk is what concentrates it, and small improvements get skipped because shipping them costs as much effort as anything else.

A pipeline alone won’t fix that. If the engineer who wrote a change can’t see it running, can’t read its logs without a ticket, and never gets the alert, automation only makes the same handover faster. What changes behavior is feedback reaching the person who made the decision. We will tell you which of those conditions the tooling depends on, and which only you can change.

What you are left with

The test is whether an engineer in their second week can read the pipeline, recreate an environment and roll back a release without asking anyone for help.

A pipeline you can read

Build, test and deployment steps are defined in files next to the code, so anyone can see exactly what happens when a change is merged.

Infrastructure reviewed like code

Networks, clusters and databases are defined in Terraform or an equivalent and changed through pull requests. A firewall rule gets the same review as a code change.

Environments you can recreate

A test environment is built from the same definitions as production and deleted when it is done. Drift stops being a problem when no environment lives long enough to drift.

A rollback you have practiced

Rolling back is a tested path in the pipeline, not a paragraph in a document. Your engineers carry it out in a real environment before anyone needs it under pressure.

Security that belongs to the estate

AreaWhat gets checkedEnforced by
Identity and accessExcess permissions, unused keys, admin group membersPermission boundaries and access reviews in code
Network boundariesOpen inbound rules, public subnets, exposed endpointsDeny-by-default rules, reviewed before merge
Secrets and keysKeys in build scripts, rotation, backup accessA secrets vault and scanning in the pipeline
Pipeline guardrailsInfrastructure changes, container images, dependenciesPolicy and scan checks before merge
Logging and detectionLog coverage, retention, who receives alertsAlerts with named owners and runbooks
Account structureShared accounts, root account use, blast radiusOrganization policies applied to new accounts
A review describes one day. Each control here is held in code, so a console change or a forgotten exception shows up as drift.

Platforms and tools

The cloud platform is usually decided before we arrive, by an enterprise agreement or by where your engineers have experience, and your existing pipeline tools usually win too. We hold firmer opinions about the infrastructure code, because that is what you will maintain.

  • AWS
  • Microsoft Azure
  • Google Cloud
  • GitHub Actions
  • Azure DevOps
  • Terraform
  • Docker
  • Kubernetes
  • Helm
  • Microsoft Entra ID
  • HashiCorp Vault
  • Prometheus
  • Grafana
  • OpenTelemetry

What we get asked

You switch back. Every wave has a rollback plan that has been carried out in testing, and the old environment keeps running until the new one has worked reliably for an agreed period. The hard part is data created after the switch, so the plan says what happens to it and for how long switching back costs nothing.

Not sure which one you need?

Describe the problem in a paragraph and we will tell you which service applies.