SLO مخفف Service Level Objective و به معنی هدف سطح خدمت است. تیم فنی با SLO مشخص می‌کند برای یک شاخص کیفیت معین، چه عملکردی را در چه بازه زمانی هدف می‌گیرد. مثلاً ۹۹٫۹ درصد درخواست‌های واجد شرایط API در بازه ۳۰ روزه باید موفق باشند.

تفاوت هدف و اندازه‌گیری

در مثال بالا مقدار واقعی موفقیت که از مانیتورینگ به دست می‌آید SLI است، اما حداقل ۹۹٫۹ درصد SLO محسوب می‌شود. SLA ممکن است تعهد رسمی متفاوتی را به مشتری بدهد. اگر مقدار واقعی ۹۹٫۹۵ درصد باشد هدف SLO رعایت شده است.

نمونه تعریف قابل اندازه‌گیری

بخشمقدار پیشنهادی نمونه
سرویسAPI سفارش
SLIنسبت پاسخ‌های معتبر موفق به تمام درخواست‌های واجد شرایط
SLOحداقل ۹۹٫۹ درصد
بازه۳۰ روز غلتان
درخواست حذف‌شده از محاسبهترافیک تست یا درخواست نامعتبر، طبق قرارداد اندازه‌گیری
منبع دادهمتریک‌های سرور و مانیتورینگ بیرونی

ارور باجت از روی SLO

اگر SLO برابر ۹۹٫۹ درصد باشد، ۰٫۱ درصد از درخواست‌های واجد شرایط می‌توانند در بازه تعیین‌شده ناموفق باشند. اگر ۱ میلیون درخواست معتبر داشته باشیم، بودجه حدود ۱۰۰۰ درخواست شکست‌خورده است. نرخ ترافیک واقعی ممکن است در طول روز تغییر کند و تیم باید بودجه را با داده واقعی محاسبه کند.

eligible = 1_000_000
slo = 0.999
allowed_failures = eligible * (1 - slo)
print(round(allowed_failures))  # 1000

SLO چه استفاده‌ای در تصمیم‌گیری دارد؟

اگر ارور باجت تمام شده باشد، تیم ممکن است انتشار قابلیت‌های پرریسک را متوقف کند و روی پایداری، تست و عیب‌یابی تمرکز کند. SLO نباید آن‌قدر سخت تعیین شود که هزینه عملیات بی‌دلیل بالا برود یا آن‌قدر سهل باشد که تجربه کاربران آسیب ببیند.

اصطلاحات فنی: اس‌ال‌آی، اس‌ال‌ای، ارور باجت، قابلیت مشاهده‌پذیری.

منبع آموزشی: تعریف رسمی شاخص و هدف در Google SRE.