An Azure platform for running a service on AKS with Terraform, Argo CD, CI, observability and incident handling.
View the Project on GitHub Franklindot04/production-platform-Azure
Status: proposed (ADR 0030). The process has not been used. No incident has happened, and nothing here says how well it works.
docs/architecture.md, non-goals). Alerts go to email, and nobody is paged.Level 1 and level 2 are the severities of the burn-rate alerts in infrastructure/environments/dev/persistent/alerts.tf (ADR 0028). The alert severity and the incident level are the same number. Level 3 covers what has no alert.
The response is given as actions. No time is given, because no response time has been measured.
| Level | Meaning | Examples from this repository | What the maintainer does | Postmortem |
|---|---|---|---|---|
| 1 | The error budget burns fast, or an exposure cannot be undone | AvailabilityFastBurn, LatencyFastBurn. A leaked credential: the repository is public, so a pushed value counts as exposed (docs/security.md, rule 8) |
Stop other work. Use the runbook, or for a credential rotate it first | Always |
| 2 | The error budget burns slowly | AvailabilitySlowBurn, LatencySlowBurn | Finish the current step first. Then use the runbook | When a runbook did not work or the failure was new |
| 3 | No alert exists for it | Resources left after a session (session.sh check exits 1). A failed session step. A failed gate in a session run sheet. A failure found by a check |
Note it. Fix it before the session ends, or before the next one starts. Use the runbook if there is one | When a runbook did not work or the failure was new |
Why a leaked credential is level 1: it cannot be undone once pushed, and the repository is public. Why resources still billing are level 3: no user is affected, the fix is one script (session.sh down), and the control is the check at the end of each session (ADR 0009). They cost money while they remain, so do not leave them.
pp-dev-alerts. The address is set at run time.infrastructure/session.sh that fails, and session.sh check at the end of a session.tests/load/README.md) and the query files in monitoring/prometheus/, for example request-rate.promql and error-ratio.promql.docs/slos.md). During a session, look at request-rate.promql and do not wait for an email../infrastructure/session.sh down.monitoring/prometheus/availability-sli.promql and latency-sli.promql show the service back within its targets. At the end of every session, ./infrastructure/session.sh check must exit 0.session.sh masks its own output). Do not save identifiers or addresses. Write a postmortem when the table says so, using the template.docs/runbooks/README.md.Follow docs/security.md (rule 8) and SECURITY.md. They are not repeated here. It is level 1, and it needs a postmortem.
docs/slos.md).docs/architecture.md).