Canopus Software & Engineering — home
Cloud, DevOps & Modernisation

Cloud and DevOps work: deploys stay boring, bills stay predictable.

If releasing takes a maintenance window and a nervous evening, the problem isn't your team's care — it's that the pipeline makes every release large and every rollback manual. We make releases small, reversible and unremarkable, and we bring the cloud bill down while we're in there.

Rollback tested, not assumed3–14 weeksAWS · Azure · Google Cloud

What cloud and DevOps covers here

Cloud and DevOps engineering is the work that gets software into production reliably and keeps it there — migration, containers, deployment pipelines, monitoring, backups and cost control. Canopus does this on AWS, Azure and Google Cloud, and modernises legacy applications in staged slices rather than as a rewrite the business has to wait for.

Workstreams

Four kinds of engagement

Most clients start with one and add the next once the first pays for itself.

Cloud migration

From on-premise, a colocation rack or an unmanaged VPS onto AWS, Azure or Google Cloud. We inventory what's actually running first — including the cron job on a machine nobody remembers provisioning — then move it in a sequence that keeps the business trading throughout.

4–10 weeks · inventory first, then staged cutover

CI/CD and release engineering

Automated pipeline from merge to production: tests, container build, staging deploy, approval gate, production deploy, one-click rollback. Plus infrastructure as code, so environments are reproducible rather than reconstructed from memory.

3–6 weeks · merge to production, rollback included

Observability and reliability

Metrics, logs and traces in one place, alerts that fire on symptoms users feel rather than on CPU graphs, runbooks for the top failure modes, and a restore rehearsed rather than assumed. The goal is knowing before your customer tells you.

3–5 weeks · metrics, logs, traces, rehearsed restore

Legacy modernisation

An application that still runs the business but nobody wants to touch — original developer gone, framework several major versions behind, deployment a manual ritual. We audit, then modernise in slices behind a routing layer, running old and new in parallel until outputs agree.

Audit 2 weeks, then staged
Signature

Where cloud money actually leaks

Six findings account for most of what we recover on a first cost review. None of them require re-architecting anything.

A TYPICAL MONTHLY BILL, BEFORE REVIEW Compute Non-prod Storage Transfer Backup 1 · Instances sized for launch day Provisioned from a guess two years ago and never revisited. Peak CPU 8%. Fix: right-size against 90 days of real metrics 2 · Staging running at 3am on Sunday Non-production environments billed 168 hours a week to be used for about 45. Fix: scheduled shutdown outside working hours 3 · Orphaned volumes and snapshots Storage attached to instances terminated long ago, plus snapshots with no retention policy. Fix: inventory, delete, then lifecycle rules 4 · Cross-zone chatter App and database in different availability zones, paying transfer on every query. Fix: co-locate, or cache what crosses the boundary 5 · No commitment on stable load Baseline capacity that never varies, billed at on-demand rates indefinitely. Fix: savings plans sized to the floor, not the peak 6 · Logs retained forever Debug-level logging into hot storage with no tiering, years after anyone read them. Fix: sampling, tiering, retention matched to policy We report what we found and what it saved — not a percentage promised in advance A cost review is 1–2 weeks. If there is nothing meaningful to recover, we say that and stop.

Scroll the diagram sideways to see all six findings.

Legacy

Modernise in slices. Never as a rewrite.

The rewrite proposal is always attractive and almost always wrong. It asks the business to accept eighteen months of no new features in exchange for a promise, and it discards the accumulated edge cases that the old system quietly handles — the ones nobody documented because they were bug fixes, not requirements.

Instead: put a routing layer in front, move one capability at a time, run old and new in parallel and compare outputs until they agree, then cut that slice over. Slower on paper. Far more likely to finish.

Strangler-fig routingParallel run & output diffing Slice-by-slice cutoverRollback at every step
Platform

AWS, Azure or Google Cloud

All three will run your workload. The deciding factors are almost never technical.

Default

AWS

The widest set of managed services we actually operate day to day, and region coverage for the data-residency cases named above. Our default unless something specific points elsewhere.

  • ECS / Fargate and EKS
  • RDS PostgreSQL and Aurora
  • S3, CloudFront, SQS, Lambda
  • Terraform or CDK
Microsoft estates

Azure

When you already run Entra ID, SQL Server and Microsoft 365. Identity integration and existing enterprise agreements are worth real money.

  • App Service and AKS
  • Azure SQL and PostgreSQL Flexible Server
  • Entra ID SSO throughout
  • Azure DevOps or GitHub Actions
Data-centric

Google Cloud

When analytics is the centre of gravity. BigQuery remains the strongest reason to choose GCP for a data-heavy platform.

  • Cloud Run and GKE
  • BigQuery and Dataflow
  • Cloud SQL
  • Terraform

Where we advise against Kubernetes

If you run fewer than about ten services and have no platform engineer, Kubernetes will cost more in operational attention than it returns. A managed container runtime — ECS on Fargate, Azure Container Apps or Cloud Run — gives you the same deployment story with a fraction of the moving parts, and nothing stops you moving to Kubernetes later if scale genuinely demands it.

We say this on most first calls and it regularly reduces the size of the engagement. What we won't do is stand up a cluster you have no one to operate, hand over the kubeconfig and call that a platform.

Tooling we standardise on

DockerKubernetesTerraformGitHub Actions GitLab CIGrafanaPrometheusOpenTelemetry SentryDatadogCloudflareHashiCorp Vault
Definition of done

What we leave behind

Checkable claims, not "best practices applied".

  • Every environment defined in codeTerraform or CDK in your repository. Nothing exists that was clicked into being.
  • A deploy takes one merge and one approvalNo runbook of manual steps, no SSH into a box.
  • Rollback is one actionTested during the engagement, not documented and hoped for.
  • Secrets are in a secret managerNot in environment files on a server, and rotatable without a redeploy.
  • Alerts fire on user-visible symptomsError rate and latency, not CPU graphs nobody acts on.
  • A restore has actually been performedInto a live staging environment, with the time it took written down.
  • Cost visible per environment and serviceTagged, so "why did the bill go up" has an answer in minutes.
  • Runbooks for the top five failure modesWritten so someone who isn't us can follow them at 3am.
Questions

Migration, cost, modernisation and on-call

How much does a cloud migration cost?

Cost tracks three things: how many services move, whether you rehost as-is or re-architect into containers with CI/CD and infrastructure as code, and how much undocumented configuration lives only on the machines you're leaving. That last one is why we start with a two-week discovery rather than a quote. You leave discovery with a fixed written estimate, a cutover sequence and an inventory of what's actually running — yours whether or not we do the move.

AWS, Azure or Google Cloud — which should we use?

AWS by default for breadth and hiring depth. Azure when you already run Entra ID, SQL Server and Microsoft 365 — the identity and licensing integration is genuinely worth money. Google Cloud when data and analytics are the centre of gravity, particularly with BigQuery. Any of the three will run your workload.

Can you reduce our cloud bill?

Usually, and the first pass is normally the largest. The recurring findings are the same: over-provisioned instances, non-production environments running nights and weekends, orphaned storage, unnecessary cross-zone transfer, and no savings plan on stable baseline load. We report what we found and what it saved rather than quoting a percentage upfront.

How do you modernise legacy software without downtime?

In slices, never as a big-bang rewrite. We put the legacy system behind a routing layer, move one capability at a time, run both in parallel until outputs agree, then cut that slice over. It takes longer on paper and it's the only approach that doesn't require the business to stop while engineering catches up.

What does DevOps actually change day to day?

Deploys stop being events. A merge runs tests, builds an image, deploys to staging and — once approved — goes to production with a one-click rollback. Teams that deployed monthly with a maintenance window usually end up deploying several times a week without one, because the risk per release drops as the release size does.

Do you provide 24/7 monitoring and on-call?

We set up monitoring, alerting and runbooks for every system we operate, with severity-tiered response times in the retainer. Genuine round-the-clock on-call is available as a specific engagement rather than assumed — we'd rather scope it honestly than let you believe someone is awake at 3am when the contract doesn't pay for it. See support tiers.

Can you work with our existing infrastructure team?

Yes, and it's common. We usually take the application delivery pipeline and observability while your team keeps network, identity and the platform boundary. The split works when it's written down in week one — including who is allowed to change what in production.

What about compliance and data residency?

Region selection, encryption at rest and in transit, key management, access logging and retention policies are part of the build. Where you need SOC 2 or ISO 27001 evidence, we implement the technical controls and produce the artefacts — within the limits we're explicit about.

Last updated: Written by the Canopus platform team

Get a Free Quote

Send us last month's cloud bill and a description of your deploy.

Those two things tell us most of what we need. An engineer replies within one business day with the specific things we'd look at first.

Scope cloud or DevOps work

Need an NDA first? Say so in the message and we will return yours signed, usually the same day, before you send anything sensitive.

An engineer replies within one business day. Your details go to our enquiry inbox and nowhere else — no lists, no resale, no marketing sequence.
Call WhatsApp Get a Quote