Designed for the two things that are expensive to retrofit.
Outcome
Two properties are cheap to design in and brutally expensive to add later: horizontal headroom, and an audit trail. Both had to be there from the first diagram, because our platforms get resold to enterprises whose security teams inspect them before signing.
This is the platform our SaaS products run on. It autoscales on demand rather than on peak provisioning, it spans availability zones, and every control an assessor asks about was switched on before they asked.
Decisions & trade-offs
A platform diagram tells you what was built. What it does not tell you is what was rejected, which is where the actual engineering sits.
GuardDuty, Security Hub, Inspector, Config, KMS and ACM are enabled across the account rather than bolted onto the cluster. A control scoped to one workload has to be re-argued for every new workload; a control at account level is simply true, and stays true for whatever gets deployed next.
Operations
Prometheus, Grafana and Loki inside the cluster for metrics and logs — and Site24x7 checking from outside the perimeter, because an internal monitor cannot tell you the platform is unreachable. If DNS, the certificate or the load balancer is the problem, everything inside still reports healthy while users see nothing.
That external view is also what makes an uptime figure defensible. A number a customer's assessor can independently reason about is worth more than one derived from your own instrumentation.
Delivery runs on Terraform with S3 state, GitHub and ECR, with staging built to mirror production. Environments that diverge are the reason defects reach users; keeping them the same is unglamorous and pays for itself every release.
What I’d do differently
Rightsizing, reserved planning and spot automation came after the platform was running, as a response to a bill rather than a design input. The savings were real, but the exercise was archaeology — working out what each workload actually needed, months after the decisions were made.
Designing with cost as a constraint from the start would have been considerably cheaper than optimising later. It is now the first thing I ask about a new environment, and the reason the cloud agent I built posts a daily cost report rather than a monthly one.