Infrastructure · Security · Engineering Tell us what you need

Home / Application Engineering / Hosting Architecture Review

Hosting Architecture Review

Before you go live.

Building an application has never been easier. Working out what it should run on has not changed at all — and it is the decision that determines what the next three years cost you.

We model your workload properly, tell you what to build, and what it will cost to run.

WHAT WE MEASURE requests at peak concurrent users database working set bandwidth & egress storage growth rate MODELLED not estimated specification monthly cost AND WHEN TO CHANGE IT one machine → split the database → add an app server, with the trigger for each step

Sized from measured inputs. Never from a template.

For
Applications that are built

Finished or nearly finished, and not yet hosted properly.

Not for
Ideas

If it is not written yet, there is nothing to measure.

Output
A specification

What to build, what it costs monthly, and when to change it.

Obligation
None

Build it yourself, hand it to your provider, or have us run it.

Why this decision matters more than it looks

The hosting decision outlives the application.

Almost everything else about a new application is reversible. You can rewrite a feature, change a framework, redesign an interface. The things decided at deployment — which region, which database, whether environments were separated, how identity works — are the ones that turn into migrations later.

The decisionMade by defaultWhat it costs later
Instance sizeThe provider’s recommendation, or a figure chosen for headroom.Paid monthly, forever, on capacity nobody measured
DatabaseOn the application server, sized without measurement.The first real load spike takes the whole thing down
EnvironmentsA single server, with changes tested in production for want of anywhere else.The outage that was avoidable, and the data that was not recoverable
RegionThe default, or the one nearest the developer.A migration, once someone asks where the data lives
IdentityShared credentials, appropriate to three people and retained past thirty.Access nobody can retire when the third person leaves
BackupsProvider snapshots, untested.Discovering at the worst moment that they do not restore
ScalingDeferred while current capacity holds.Rebuilding under pressure, with users watching

Each is inexpensive to decide at the start, and expensive to revisit later.

What the review covers

Seven decisions, made once, from measurement.

Not a checklist against best practice. Your numbers, your workload, and a specification that follows from them.

Workload sizing

CPU, memory and instance count derived from your measured request rate, concurrency and response profile — not from the size of your codebase, which tells you nothing.

Database hosting

Engine, sizing against the working set rather than total data, connection pooling, backup schedule, and where it sits relative to the application. Most scaling problems are database problems.

Environment separation

Local, staging and production — what each is for, what separates them, and the rule that staging never shares production data.

Access management

LDAP, Active Directory or SSO, how administrative access is granted, and how it is removed when somebody leaves.

Bandwidth and egress

Modelled explicitly, because egress is the line item that surprises people and it is rarely in anybody’s first estimate.

TLS, DNS and region

Certificates, records, and which region you deploy into given where your users are and what obligations apply to your data. Free to choose on day one, a migration to change afterwards.

The scaling path

One machine, then a separate database, then a second application server — with the measurement that tells you it is time for each step, so the first design is not thrown away.

Sizing from a template is guessingwith more confidence.

A worked example

What a review actually produces.

The example below is constructed rather than drawn from a client, and the figures are illustrative. It is here to show the method — how a specification follows from measurement rather than from a template.

The application

An internal business application, built in-house, about to be opened to roughly 300 daily users across three offices. Currently running on one machine under somebody’s desk. No staging environment. Backups are the hosting provider’s snapshots, never restored.

What we measured

MeasurementResultWhy it matters
Requests at peak22 per second, against 4 on averagePeak sizes the machine. Sizing on the average would have under-built it nearly six times over
Concurrent users at peakAbout 180Drives connection pooling and session handling, not CPU
Response time, p95240msWith 22 req/s this means roughly 5 requests in flight at once — modest
Database working set4.2 GB of 11 GB totalOnly the working set needs to sit in memory. Sizing on total data would have doubled the bill
EgressAbout 140 GB per monthThe line item nobody includes in a first estimate
Storage growthAbout 3 GB per monthSizing on today’s 11 GB would need revisiting within a year

What we specified

ComponentSpecificationReasoning
Application server4 vCPU, 8 GB RAMFive requests in flight needs the headroom is for deployment and background jobs rather than request handling
Database serverSeparate machine, 4 vCPU, 16 GB RAMWorking set of 4.2 GB plus indexes plus filesystem cache, with room to grow before memory becomes the constraint
Staging2 vCPU, 4 GB RAM, own databaseA fraction of production, shut down outside working hours. Never shares production data
Storage120 GB, expandableThree years of growth at the measured rate, rather than a number that felt safe
BackupNightly, off-server, 30 day retention, immutableOff-server because a backup on the same machine is not a backup
AccessDirectory-backed sign-in, no shared accountsThree people today. Shared credentials become unremovable at eight

And the trigger for each next step

Add a second application server when sustained CPU passes 60% at peak, or p95 response passes 400ms — whichever comes first. Increase database memory when the working set reaches 70% of RAM. Move to read replicas only if read load exceeds writes by more than four to one.

Each is a number somebody can watch on a dashboard, rather than a feeling that things seem slower.

A review that recommended no change

A team of forty users on a single virtual machine asked us to design a container platform, because they had been told that was the next step.

Their measured peak was under 3 requests per second, their database was smaller than the memory it already had, and their machine sat at 11% CPU. The recommendation was to change nothing except the backups, which had never been tested, and to revisit the question if sustained load tripled.

That review took a morning and removed a platform from the plan. If your numbers say the same thing, that is what you will be told.

This example is illustrative. It will be replaced with a real anonymised review before launch.

How it works

From your numbers to a specification.

01

You measure, or we tell you how

Access logs, current utilisation, or the guides which set out exactly what to measure and the read-only commands to measure it. If nothing is running yet, we work from expected load and say plainly which figures are assumptions.

02

We model it

Sizing, database, environments, access, region and cost — including the options we rejected and why, because the reasoning is the part you can reuse.

03

You receive the specification

A written document with the sizing, the reasoning, the monthly cost and the scaling triggers, plus the architecture drawn out. We walk you through it on a call so you can argue with it — the reasoning matters more than the numbers, because it is the part you reuse when things change.

04

You decide what happens next

Build it yourself, hand it to your existing provider, or have us build and run it. All three are normal outcomes and none of them is a failure.

Who this is for

And who it is not for.

A good fit

  • An application that is built and about to carry real users
  • Something already live that is costing more than it should
  • A team who can build software but has never run infrastructure
  • An internal tool that spread further than anyone planned
  • Anyone who has been told to work out data residency and does not know where to start

Not a fit

  • An idea. There is nothing to measure yet.
  • A prototype that will be rewritten before it goes live
  • Anyone who already has an infrastructure engineer — they can do this
  • A hobby project where the hosting bill is not a real concern

If you are in the second column we will say so at the first conversation.

Before you pay anyone

Read the guides. They are free and not gated.

They set out what to measure, how to measure it, what the numbers mean, and how to separate environments and back things up properly. If they answer your question, you do not need the review — and the specification is yours regardless of what follows.

Tell us what you have built.

What it is written in, roughly how many users you expect, whether anything is running yet, and what is worrying you about hosting it. We will tell you whether a review is worth doing.

An engineer replies within two business days.