SLA و SLO چیست؟ هر چیزی که باید درباره سطح خدمات و اهداف عملکردی در مانیتورینگ بدانید
اگر شما هم سایتی دارید یا مسئول مانیتورینگ یک سرویس آنلاین هستید، احتمالاً بارها اصطلاحات SLA و SLO به گوشتان خورده. این دو مفهوم در ظاهر خیلی شبیه به هماند، ولی در عمل تفاوتهای مهمی دارند که دانستنش میتواند به بهبود کیفیت سرویس و حتی رضایت کاربران شما کمک کند. در این مقاله میخواهیم به زبان ساده و البته کاربردی بررسی کنیم که SLA و SLO دقیقاً چه هستند، چه تفاوتی دارند، و چطور میشود از آنها در مانیتورینگ سیستمها استفاده کرد.
SLA چیست؟ (Service Level Agreement)
SLA یا توافقنامه سطح خدمات در واقع یک قرارداد بین ارائهدهنده سرویس و مشتری است. این قرارداد بهطور واضح مشخص میکند که سرویسدهنده چه سطحی از خدمات را تضمین میکند.
برای مثال:
-
یک شرکت هاستینگ ممکن است در SLA خود تضمین کند که سرورهایش ۹۹.۹٪ آپتایم دارند.
-
یا یک ارائهدهنده اینترنت قول بدهد که سرعت اینترنت شما کمتر از مقدار مشخصی کاهش پیدا نکند.
به زبان ساده، SLA همان قول و تعهدی است که سرویسدهنده به مشتری میدهد. اگر این تعهدات رعایت نشود، معمولاً جریمه یا غرامتی در نظر گرفته میشود.
SLO چیست؟ (Service Level Objective)
حالا بریم سراغ SLO.
SLO مخفف هدف سطح خدمات است. این مفهوم کمی متفاوت از SLA است. در حالی که SLA بیشتر روی تعهدات قراردادی تمرکز دارد، SLO در واقع همان هدف قابل اندازهگیری برای سطح عملکرد سرویس است.
برای مثال:
-
اگر در SLA قول آپتایم ۹۹.۹٪ داده شده باشد، SLO میتواند این باشد که میانگین پاسخگویی سرور کمتر از ۲۰۰ میلیثانیه باشد.
-
یا اینکه تعداد خطاهای سرور در طول یک ماه از ۱۰۰۰ مورد بیشتر نشود.
پس SLO بیشتر به درد مانیتورینگ سیستمها میخورد. چون ما با ابزارهای مانیتورینگ (مثل Yodevs، Prometheus، Grafana یا Datadog) میتوانیم این اهداف را بسنجیم و ببینیم سرویس دقیقاً در چه وضعیتی است.
تفاوت SLA و SLO در یک نگاه
خیلیها این دو اصطلاح را با هم اشتباه میگیرند. ولی اگر بخواهیم ساده بگوییم:
ویژگی | SLA | SLO |
---|---|---|
تعریف | قرارداد رسمی بین سرویسدهنده و مشتری | اهداف مشخص و قابل اندازهگیری در سطح خدمات |
کاربرد | بیشتر حقوقی و تجاری | بیشتر فنی و مانیتورینگ |
ضمانت | همراه با جریمه و غرامت در صورت نقض | صرفاً معیار سنجش کیفیت |
مثال | ۹۹.۹٪ آپتایم | کمتر از ۲۰۰ میلیثانیه پاسخگویی سرور |
به همین دلیل است که SLA بیشتر در مدیریت قراردادها به کار میرود، ولی SLO ابزار اصلی تیمهای فنی و مانیتورینگ است.
چرا SLA و SLO برای مانیتورینگ سیستم مهماند؟
فرض کنید شما یک فروشگاه اینترنتی دارید. اگر سایتتان حتی یک ساعت در روز قطع شود، مشتریها اعتمادشان را از دست میدهند و احتمالاً به رقبایتان سر میزنند. حالا تصور کنید همین قطعی بهطور مکرر اتفاق بیفتد.
با تعریف SLOهای مشخص (مثل آپتایم، سرعت لود، درصد خطاها) شما میتوانید در داشبورد مانیتورینگ بهطور لحظهای ببینید سرویس در چه وضعیتی است.
و اگر بهطور پیوسته این اهداف نقض شوند، یعنی SLA شما هم در معرض خطر است. در نتیجه یا باید زیرساخت بهتری تهیه کنید، یا پیکربندی سیستم را اصلاح کنید.
چند مثال واقعی از SLA و SLO
برای اینکه موضوع ملموستر شود، چند مثال واقعی را بررسی کنیم:
-
شرکت گوگل کلود (GCP):
در SLA خود تضمین کرده که سرویسهایش حداقل ۹۹.۹۵٪ آپتایم دارند.
اما در SLO هدفگذاری کرده که زمان پاسخدهی API کمتر از ۱۰۰ میلیثانیه باشد. -
سرویسهای بانکی آنلاین:
SLA: سامانه بانک در طول سال حداکثر ۴ ساعت قطعی دارد.
SLO: تراکنشها در کمتر از ۲ ثانیه انجام شوند. -
سایتهای فروش بلیت آنلاین:
SLA: سیستم همیشه در دسترس باشد، حتی در زمان پیک خرید (مثلاً فروش کنسرت یا پرواز).
SLO: تعداد خطاهای تراکنش نباید از ۰.۱٪ کل درخواستها بیشتر شود.
چطور SLA و SLO مناسب تعریف کنیم؟
یکی از بزرگترین اشتباهات این است که SLA و SLO را بیشازحد خوشبینانه یا غیرواقعی تنظیم کنیم. اگر قولی بدهید که نمیتوانید عمل کنید، اعتماد مشتری خیلی سریع از بین میرود.
برای تعریف درست:
-
واقعبین باشید. اگر زیرساخت شما آپتایم ۹۹.۹۹٪ ندارد، این عدد را در SLA نیاورید.
-
قابل اندازهگیری باشد. مثلاً بگویید زمان پاسخگویی کمتر از ۲۰۰ میلیثانیه، نه اینکه فقط «سریع» باشد.
-
همسو با نیاز کسبوکار باشد. اگر کاربران شما بیشتر دنبال سرعت تراکنش هستند، روی همان تمرکز کنید.
-
ابزار مانیتورینگ مناسب انتخاب کنید. بدون ابزار، هیچ SLOای قابل سنجش نیست.
نقش ابزارهای مانیتورینگ در تحقق SLO
اینجاست که ابزارهای مانیتورینگ وارد بازی میشوند.
-
Prometheus و Grafana: برای جمعآوری دادهها و نمایش داشبوردهای تصویری.
-
Yodevs: برای مانیتورینگ شبکه و سرورها.
-
Datadog: برای مانیتورینگ اپلیکیشنها و سرویسهای ابری.
این ابزارها به شما کمک میکنند تا ببینید SLOهایی که تعیین کردهاید، واقعاً رعایت میشوند یا نه. مثلاً اگر SLO شما پاسخ کمتر از ۲۰۰ میلیثانیه است، میتوانید روی داشبورد لحظهای ببینید که آیا این شرط برقرار است یا خیر.
SLA و SLO؛ پلی بین تیم فنی و مدیریت
یکی از جذابترین نکات در مورد SLA و SLO این است که باعث میشوند مدیران کسبوکار و تیمهای فنی زبان مشترک داشته باشند.
-
مدیران SLA را در قراردادها میبینند.
-
تیمهای فنی با SLO سروکار دارند و آن را با ابزارهای مانیتورینگ میسنجند.
در واقع SLA و SLO کمک میکنند که هم مشتری بداند چه چیزی دریافت میکند و هم تیم فنی بتواند کیفیت کار خود را اندازهگیری کند.
جمعبندی
SLA و SLO دو مفهوم نزدیک ولی متفاوتاند.
-
SLA بیشتر جنبه قراردادی دارد و قولی است که سرویسدهنده به مشتری میدهد.
-
SLO اهداف قابل اندازهگیری است که بیشتر در مانیتورینگ سیستمها استفاده میشود.
اگر شما مدیر یک سایت یا مسئول مانیتورینگ هستید، پیشنهاد میکنم همین امروز SLOهای مشخصی برای سرویستان تعریف کنید و با ابزارهای مانیتورینگ آنها را بسنجید. چون تا چیزی اندازهگیری نشود، نمیتوان آن را بهبود داد.