DevOps Architecture

[DevOps Architecture] SLO and SLI

[DevOps Architecture] SLO and SLI

About this article

As the eleventh installment of the “DevOps Architecture” category in the series “Architecture Crash Course for the Generative-AI Era,” this article explains SLO, SLI, and SLA.

100% uptime is not a goal to pursue - the essence of SLO is buying dev speed with error budgets. This article covers the relationship of SLI (actuals) / SLO (targets) / SLA (contracts), error-budget operations, choosing user-perspective SLIs, and per-service-type x target numerical gates.

Before you read this

This article is mostly about the flow of building, testing, releasing and monitoring a service. If IT vocabulary is unfamiliar, reading the primer "From Development to Operations" first makes it far easier to follow. You can also look anything up in the glossary as you read.

What are SLO and SLI in the first place

SLI / SLO / SLA Relationship

Think of on-time train performance. Japanese railways hold a numerical target like “on-time rate of 99.x%”, drawing a clear line on how many minutes of delay are acceptable and what triggers improvement. Aiming for 100% leads to over-investment, so setting a realistic target and operating against it is the railroad’s wisdom.

SLO is the web-service version of an on-time target. It numerically defines service quality goals like “99.9% uptime” or “response time under 200ms.” SLI is the actual measurement, and SLA is the contractual value with customers.

Without SLO, “make it more stable” and “make it faster” never end, leading either to over-investment in quality or neglecting quality until a major incident.

Why SLO and SLI are needed

First, because they define “good enough”. Without a number, reliability is argued about in feelings and never settles. Second, because they give business and engineering a common language. An availability target is a sentence both sides can read. Third, because they make improvement priorities obvious. Which of latency, error rate and availability is furthest from target tells you where to spend next.

The difference between SLI, SLO and SLA

Relationship and Differences Between SLI/SLO/SLA Like train punctuality rates. Managed in 3 layers: measured values → internal targets → contracts SLI Service Level Indicator (Measured Values) Numerical answer to "What's happening now" Availability: 99.92% P95 Latency: 180ms Error Rate: 0.05% Throughput: 1200rps SLO Service Level Objective (Internal Targets) Team's internal promise of "we'll protect up to this level" Availability 99.9% or higher P95 200ms or less SLA Service Level Agreement (Contract) Agreement with customers: "penalties if breached" Availability 99.5% or higher Iron Rule: SLO < SLA Set internal targets stricter than contracts Error Budget SLO 99.9% → 43 min/month downtime allowed = Error Budget Push forward within budget, switch to defense when depleted Availability Guideline 99%=7h/mo | 99.9%=43min/mo | 99.99%=4.3min/mo | 99.999%=26sec/mo
MeaningUsage
SLIActualCurrent uptime, latency
SLOInternal target99.9%, under 200ms
SLA (Service Level Agreement)Contractual promiseContracts with external customers, penalty on violation

The iron rule is SLO < SLA. Without making the internal target stricter than the contract value, you break the promise made with customers. SLO is an internal guardrail with margin from SLA.

The typical SLIs are as follows.

SLIs are metrics measuring user experience, with the following standard patterns. “CPU usage” and “memory consumption” aren’t SLIs (indirect metrics of user impact).

TypeDefinition
AvailabilitySuccessful requests / total requests
LatencyWithin 200ms at 95th percentile
Error rate5xx errors / total requests
ThroughputPer-second processing count
AccuracyCorrect results / all results
FreshnessTime elapsed since data update

The right answer is choosing axes where users feel broken / slow / wrong.

A guideline table for availability

“99.9%” is hard to feel, but converting to downtime makes judgment easier. Choose appropriate level per business requirement.

AvailabilityAllowed down/monthAllowed down/yearSuited for
99%About 7 hoursAbout 3.6 daysInternal tools
99.9%About 43 minAbout 8.7 hoursGeneral B2C services
99.95%About 22 minAbout 4.4 hoursB2B SaaS
99.99%About 4.3 minAbout 52 minFinance, payments
99.999%About 26 secAbout 5.2 minTelecom, power

“99.999%” is the extremely strict level allowing only 20 sec monthly downtime. Excessive for most services.

The error budget and SLO-based operation

The “allowable failure amount” for SLO. The thinking is “aim for 99.9%” = “0.1% can fail,” with this 0.1% being the error budget. Used as the operational rule of “release aggressively within budget, freeze releases on over-budget.”

SLO: 99.9% availability (allow 43 min monthly downtime)
|- Beginning of month: 43 min budget
   |- 10 min down on release → 33 min remaining
   |- 30 min down on incident → 3 min remaining
   |- Budget exhausted → freeze releases, prioritize stabilization

While error budget remains, accelerate development; on exhaustion, invest in reliability improvement - the mechanism balancing dev and ops.

Choosing the SLO runs as a process.

SLOs aren’t decided arbitrarily but agreed with business. Tech-leaning SLOs ignoring user impact are meaningless, requiring agreement among business, sales, and tech.

StepContent
1. Identify critical pathFeatures users always pass through
2. User-experience axisWhat constitutes “broken”
3. Measure existing valuesKnow current actuals
4. Propose targetsRealistic targets
5. Stakeholder agreementAgree with business / management
6. Operations and reviewQuarterly review

The safe approach is setting loose first, then gradually tightening. Promising 99.99% from the start can’t be kept.

SLO-based operation is what the budget is for.

Once SLO is set, operational decisions get numerical. “Should we release?” or “Should we alert?” gets decided by numbers, not feel. This is the essence of SRE operations.

ScenarioDecision criterion
Error budget remaining > 50%Accelerate new-feature releases
Error budget 10-50%Normal operation, careful
Error budget < 10%Freeze releases, stabilize
Error budget exhaustedStop releases, investigate

When error budget reaches “0,” stopping new features and improving reliability is the SRE rule. Failing to follow loses both reliability and speed.

The moment availability SLO is articulated, the dev team’s atmosphere changes - a standard anecdote of SRE introduction. At sites that agreed on 99.9% numerically, where the vague tension of “always cautious on releases” had pervaded, conversations like “32 min left this month, OK to fail” became possible, doubling new-feature deploy speed - cases also told. SLO is shown as not a number that constrains, but a number that lets you step in with confidence.

SLO alerts and burn rate

Alerts that early-detect SLO violations use burn rate (budget-consumption speed). Consume 10% of monthly budget in 1 hour - warning; 50% - critical - judging by the slope of budget consumption.

Burn rateMeaningResponse
1xNormal consumptionNone
5xEarly warningInvestigate
10xRapid consumptionEmergency response
50xCriticalImmediate rollback

SLO burn rate is more meaningful than threshold-based alerts (CPU exceeding 80% etc.). Burn rate reflects user impact.

Multi-window, multi-burn-rate alerting is the refined form.

The technique of monitoring both rapid consumption in short time windows and persistent consumption in long windows. Detects both “rapidly eating budget in 1 hour” and “gradually eating over 24 hours.”

WindowDetection target
Short (1 hour, 6 hours)Rapid incidents
Mid (1 day, 3 days)Persistent issues
Long (7 days, 30 days)Chronic quality decline

Detailed in Google SRE Workbook - the standard alert design of modern SRE.

Three scenarios

If you are building solo or on internal tools

Watching availability at 99 percent and latency is enough. You do not need error-budget operation; just get the metrics platform in place. Allowing seven hours of downtime a month is a realistic level and avoids over-investment. Setting an SLO you cannot measure is meaningless, so the monitoring platform comes first.

Personal / Startup: Ship in One Month Is Correcten.senkohome.com/arch-intro-case-startup/

If you are a small or mid-size SaaS

This is the stage for three pillars: 99.9 percent availability, P95 latency and error rate. Start with the SLO features in Datadog or Grafana Cloud and adjust the targets quarterly against what you actually measure. This is also where the rule of freezing releases when the error budget runs out should go into operation. As B2B contracts increase, raising the target to 99.95 percent comes into view.

Small-Mid SaaS - Lean on Managed and Run with Few Peopleen.senkohome.com/arch-intro-case-saas/

If you are a large enterprise or in finance

The world of 99.99 percent availability and multi-window burn-rate alerts. Because an SLA breach turns directly into a penalty, designing the SLO stricter than the SLA, with margin, is essential — as is a route that takes an incident notification to the executive level immediately.

Large-Enterprise Core: Design That Holds Up for Yearsen.senkohome.com/arch-intro-case-enterprise/

SLO-level x service-type numerical gates

Note: Industry baseline values as of April 2026. Will become outdated as technology and the talent market shift, so requires periodic updates.

SLO at just “99.9%” is vague - the practice is numerically setting multiple axes per service type.

Service typeAvailability SLOLatency (P95)Error rateError budget/month
Internal tools99%1,000ms1%7 hours
General B2C Web99.9%300ms0.5%43 min
B2B SaaS99.95%200ms0.3%22 min
Finance / payments99.99%100ms0.1%4.3 min
Telecom, power99.999%50ms0.01%26 sec
AI agents (LLM)Accuracy 95% / response delay 3sSpeed + accuracyHallucination rate < 5%Custom design

Burn-rate alert numerical gates: Critical on consuming 2% of budget in 1 hour (burn rate > 14.4x), High on 5% in 6 hours (6x), Warning on 10% in 3 days (1x). This is the Google SRE Workbook standard firing criteria.

For SLO, separate numbers per service type. Same standard for all services becomes excessive or insufficient.

AI decision axes — AI features need a four-axis SLO

4 new SLO axes for AI features

When incorporating AI into a product, traditional SLOs (availability, latency) alone can’t measure quality. The following 4 axes need to be additionally defined as AI-feature-specific indicators:

  • Accuracy — the rate of correct AI answers (the inverse of hallucination rate)
  • Latency — time to response (for LLMs, measure TTFB to streaming start)
  • CostLLM API cost per request (design to degrade when ceiling is exceeded)
  • Safety — occurrence rate of harmful or inappropriate output

By quantifying these as SLOs and incorporating them into error-budget management, quality degradation in AI features can be objectively detected.

AI auto-monitors error budgets for release decisions

Operations are spreading where error-budget remaining is calculated in real time and rules like “auto-block new feature releases at 30% remaining” or “accelerate releases at 60%+ remaining” are embedded in CI pipelines. The decision logic itself is simple threshold comparison, but AI is becoming able to analyze error-budget consumption trends and predict “at this pace, budget will be exhausted by next week.”

Pitfalls and forbidden moves

Here are the six most dangerous ways SLO operation goes wrong. Every one produces a state where the numbers are not doing any work.

Forbidden moveWhy it is bad → what to do instead
Setting 100 percent uptime as the targetunbounded cost and development stops → agree an SLO below 100 percent, premised on an error budget
Setting the SLO equal to the SLAthere is no internal guardrail, and a breach is a contractual breach with penalties → keep the SLO stricter than the SLA
Using CPU utilisation as an SLIit does not connect to user impact → measure error rate, latency and correctness
Measuring the SLI on averagesthe slowest one percent of users is invisible → measure P95 and P99
Continuing to release after the error budget is exhaustedreliability collapses and customers leave → make budget exhaustion equal a release freeze, as an organisational rule
Fixing the SLO once and never revisiting itboth the business and the technology change → review it quarterly

Conversely, holding releases back while error budget remains is a loss of development speed through over-stabilisation. The budget exists to be spent.

Author’s note - cases of “dev stopping from pursuing 100%”

Cases of pursuing perfection only to have key release speed stop are perennial SRE talking points.

There’s a story often heard about a mid-size SaaS where, without setting SLO, “zero incidents” was set as goal, and as a result, no new features shipped for 3 months and customers were taken by competitors. The typical case where dev resources got sucked into infinite tasks like “investigate every Warning” or “resolve every latency degradation,” stopping business. After introducing SLO (99.9%) and changing to operations of allowing in-budget incidents, release speed returned to over double - many such patterns reported.

Another, as a reverse pattern, a financial-system company had SLA (customer contract) at 99.9% but internal SLO also at 99.9%, and an incident exceeding SLA → large penalties for contract violation. A typical case told of the lesson that SLO must be set stricter than SLA with margin design.

Both have “no numerical agreement” as the root cause, slapping home that SLO isn’t a constraining number but a dial for engineering-handling speed-reliability balance.

What to decide - what is your project’s answer?

For each of the following, try to articulate your project’s answer in 1-2 sentences. Starting work with these vague always invites later questions like “why did we decide this again?”

  • Critical path (SLO-target features)
  • SLI (what to measure)
  • SLO target (99.9%, 99.95%, etc.)
  • Difference from SLA (SLO < SLA)
  • Error-budget operational rules (per-remaining decision criteria)
  • Burn-rate alerts (short / mid / long term)
  • Review frequency (quarterly / semi-annually)

Summary

This article covered SLO and SLI, including SLI/SLO/SLA differences, typical SLIs, availability guidelines, error budgets, burn-rate alerts, per-service-type numerical gates, and AI-era 4-axis SLO.

Choose SLI by user impact, SLO<SLA with margin design, release decisions by error budget, AI era guarantees quality with 4-axis SLO. That is the practical answer for SLO/SLI design in 2026.

Next time we’ll cover incident response (on-call, postmortem).

Back to series TOC -> ‘Architecture Crash Course for the Generative-AI Era’: How to Read This Book

I hope you’ll read the next article as well.

📚 Series: Architecture Crash Course for the Generative-AI Era (70/95)