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.