Skip to main content
DevOps & Cloud Engineering

Ship on a Tuesday afternoon without a war room

Azure landing zones, CI/CD pipelines and observability built by engineers who will be on the call when it breaks. Right-sized infrastructure, documented in something your team can actually maintain.

0%Faster release cycles
0%Infra cost saved
0.9%Measured uptime
deploy · main
0 min lead time
The pipeline we leave behind

CI/CD pipelines: commit to production, visible at every step

01
Commit~20s

Trunk-based with short-lived branches and required checks.

02
Build & test~3 min

Cached builds, unit and contract tests, artefacts versioned once.

03
Scan~1 min

Dependency, secret and IaC scanning that blocks rather than warns.

04
Provision~2 min

Terraform plan reviewed, applied per environment, no drift.

05
Deploy~4 min

Blue/green or canary with automated rollback on error budget burn.

06
Observelive

Traces, logs and SLOs wired before the feature ships.

commit → production≈ 14 min, no manual gate
What we build

Azure landing zones, IaC, Kubernetes and observability

Four workstreams, each with an owner and a runbook.

013–4 weeks

Azure landing zone without the 90-page doc

A minimal, opinionated baseline your team can maintain: subscriptions, networking, identity and policy, all in code.

Subscription and management group design
Hub-and-spoke networking with private endpoints
Entra ID roles and least-privilege access
Policy guardrails and tagging enforced in CI
Output · Terraform repo + diagram
Cost discipline

Right-sized, not over-provisioned

We start by finding what you’re paying for and not using. The first month usually funds the rest of the engagement.

Idle and orphaned resources

Unattached disks, dev environments running all weekend, over-provisioned SKUs.

0%

Right-sized compute

Matching instance families to real utilisation instead of the original guess.

0%

Reserved and spot mix

Committing only what is genuinely steady-state, spot for the rest.

0%

Log and storage tiering

Retention that matches what anyone actually queries after 30 days.

0%
Observability

You should know before your customers do

Dashboards that answer one question each, alerts with an owner, and runbooks linked from the alert itself. No wall of red.

SLOs written per user journey, not per server
Every alert has an owner and a linked runbook
Traces across services, not just per-app logs
Error budget burn drives release decisions
Failover drills on a schedule, not on faith
0 minMedian time to detect
0 minMedian time to restore
0 pagesAlerts without an owner
Where the two practices meet

CI/CD pipelines for Business Central AL extensions

AL extensions are software, and they benefit from source control, an automated build and a tested deployment path exactly like any other codebase. We build Azure DevOps pipelines that compile AL, run the test codeunits, publish to a sandbox tenant for UAT and promote to production behind an approval gate, so a hotfix is a pull request rather than a developer with the production client open. Infrastructure as code covers the Dynamics 365 environments themselves, in Terraform or Bicep.

See Business Central integrations and AL extensions →
Questions we get

Before you migrate anything

If lift-and-shift is the right answer, we’ll tell you, and what it will cost to run.

Lift-and-shift or re-architect?+

Often lift-and-shift first, then modernise what actually hurts. Re-architecting everything before migrating is how eighteen-month programmes happen.

What will it cost to run afterwards?+

We model run cost before wave one and hold ourselves to it. Right-sizing and tiering typically pay for a meaningful part of the migration itself.

Do we need Kubernetes?+

Only if you have the team to run it. For most mid-market workloads, App Service or Container Apps with good pipelines beats a cluster nobody owns.

Will our team be able to maintain this?+

That is the deliverable. Everything is in code, documented in the repo, and handed over with drills, not a slide deck.

Can you take on-call?+

For a defined window, yes, and we hand it back with the runbooks that made it boring.

Terraform or Bicep for Azure?+

Bicep if the estate is Azure-only and the team is already fluent in ARM concepts; Terraform if there is anything outside Azure, or the team already runs it elsewhere. Bicep has the tighter Azure resource coverage and no state file to manage. Terraform has the broader provider ecosystem and a much larger hiring pool. We have shipped both and will use whichever one your team can still maintain in two years, not the one we prefer.

Related

Bring your worst deploy story.

Thirty minutes with a senior engineer. You’ll leave with the two changes that would have prevented it and a rough cost to make them.

Book a free consultation