Site Reliability Engineering (SRE) started at Google, but its core ideas work for a two-person team running a SaaS on a few VPS servers: decide how reliable the service needs to be, measure it, and use that number to balance new features against stability work. You don’t need a dedicated SRE team to benefit.

SLIs, SLOs and SLAs

Term Meaning Example
SLI (indicator) A measured aspect of service quality % of HTTP requests that succeed; % served in < 500 ms
SLO (objective) The target for an SLI over a period 99.9% of requests succeed over 30 days
SLA (agreement) A contractual promise, usually with penalties 99.5% monthly availability, or service credits

Set SLOs stricter than any SLA you promise, so you notice problems before they cost money. See VPS uptime and SLAs.

Choosing good SLIs

Measure what users experience:

  • Availability: successful requests / total requests (from load balancer or app metrics, not “is the server pingable”).
  • Latency: share of requests faster than a threshold (for example 95% under 400 ms).
  • Correctness or freshness for data pipelines (jobs completed on time).
# availability SLI over 30 days (Prometheus)
sum(rate(http_requests_total{status!~"5.."}[30d])) / sum(rate(http_requests_total[30d]))

See observability basics.

Error budgets

If your SLO is 99.9% over 30 days, your error budget is 0.1%: about 43 minutes of full downtime, or the equivalent in failed requests.

  • Budget left: ship features, run experiments, deploy freely.
  • Budget burned: slow down risky changes, and focus on reliability fixes until it recovers.

The budget turns “should we spend time on stability?” into a data-driven decision, and stops endless perfectionism, because 100% reliability is neither possible nor worth the cost.

Burn-rate alerts page you when the budget is being consumed fast (for example, at a rate that would exhaust it in a few days), which is better than static thresholds. See alerting best practices.

Toil

Toil is manual, repetitive, automatable work that scales with the service: restarting a stuck worker by hand, renewing certificates manually, copying files for deploys. SRE aims to keep toil under roughly half of operations time, and to automate the rest:

Incidents and blameless postmortems

When something breaks:

  1. Restore service first (mitigate), then investigate.
  2. Write a short postmortem: timeline, impact, root causes, what went well, and action items with owners.
  3. Keep it blameless: focus on systems and processes, not people. People hide problems when they fear blame.

See incident response runbooks.

A lightweight starting plan

  1. Pick one SLO per user-facing service (availability), and maybe one for latency.
  2. Measure it from real traffic, and show it on a dashboard.
  3. Alert on fast budget burn, not on every blip.
  4. After each incident, write a one-page postmortem.
  5. Every month, automate one piece of toil.

Reliability architecture basics

SLOs tell you how much reliability you need. Architecture provides it: backups, redundancy, health checks, graceful degradation, and capacity headroom. See VPS high availability and Linux disaster recovery plan.

Quick reference

Concept One-liner
SLI What you measure
SLO The target
Error budget 100% − SLO; spend it on change
Burn rate How fast the budget is being used
Toil Manual repetitive work; automate it
Postmortem Blameless learning with action items

Related: DevOps for small teams and deployment strategies.

  • SRE
  • DevOps
  • Reliability