معماری چندکسب‌وکاری، تجاری و تجارت الکترونیک · فصل ۳ — Cost، Pricing، P&L، Entitlement و SLA · 240

SLA/Support Model

معماری یا تصمیم تجاری را با preference و الگوهای آماده می‌گیرد و constraint/cost/serviceability را مدل نمی‌کند. موضوع جاری: «SLA/Support Model». می‌تواند برای «SLA/Support Model» یک تصمیم bounded با constraints، cost/risk و stop/pivot condition طراحی کند.

SLA and Support Model — en-US

خلاصهٔ درس

معماری یا تصمیم تجاری را با preference و الگوهای آماده می‌گیرد و constraint/cost/serviceability را مدل نمی‌کند. موضوع جاری: «SLA/Support Model».

می‌تواند برای «SLA/Support Model» یک تصمیم bounded با constraints، cost/risk و stop/pivot condition طراحی کند.

خروجی این درس

می‌تواند برای «SLA/Support Model» یک تصمیم bounded با constraints، cost/risk و stop/pivot condition طراحی کند.

پیش‌نیازها

1) مسئله‌ای که این درس حل می‌کند

وقتی SLA فقط با یک عدد مثل «99.95%» فروخته شود، ممکن است هیچ‌کس نداند دقیقاً چه چیزی اندازه‌گیری می‌شود، window چیست، چه eventهایی exclude می‌شوند، چه consequenceای وجود دارد و آیا تیم support اصلاً توان پوشش وعده را دارد یا نه. این درس promise تجاری را به evidence عملیاتی متصل می‌کند.

2) مرز درس و خروجی

خروجی SLA-SLO Support Operating Contract v1 است. این درس مالک Plan/Entitlement درس ARC-020 یا Anti-fork Customization درس ARC-022 نیست و هیچ تغییر زندهٔ monitoring، staffing، billing credit یا contract اجرا نمی‌کند.

3) Fact: SLI، SLO و SLA یکی نیستند

Google SRE، SLI را measure کمی service level، SLO را target روی آن measure و SLA را agreement دارای consequence در صورت عدم تحقق objective معرفی می‌کند. بنابراین یک percentage به‌تنهایی SLA کامل نیست.

4) Fact: indicator باید به تجربهٔ کاربر نزدیک باشد

indicator راحتِ داخلی لزوماً signal مناسب کاربر نیست. اگر server availability سبز باشد ولی user-facing failure بالا رفته باشد، measurement contract ناقص است و نباید از آن success تجاری ساخت.

5) Measurement Contract را صریح کن

برای هر tier، sli_id، sli_definition، measurement_source و measurement_window را ثبت کن. بدون این چهار مورد، حتی target دقیق هم قابل audit نیست.

6) SLO را قبل از SLA بفهم

SLO target عملیاتی است و باید با capability واقعی service و dependencyها سازگار باشد. SLA سخت‌گیرانه‌تر از capability اثبات‌شده، contract را معتبرتر نمی‌کند؛ فقط overcommit ایجاد می‌کند.

7) Consequence مرز SLA را روشن می‌کند

اگر target هیچ consequence تعریف‌شده‌ای ندارد، آن را خودکار SLA ننام. consequence می‌تواند service credit یا remedy قراردادی دیگری باشد؛ خودِ نوع و مقدار آن تصمیم MAKNOW نیست مگر evidence تجاری جدا داشته باشد.

8) Support Severity را از Availability جدا نگه دار

Severity، response target، resolution target، support hours و escalation path یک محور جدا هستند. availability خوب، وعدهٔ 24/7 support را ثابت نمی‌کند.

9) Staffing باید promise را پوشش دهد

اگر contract می‌گوید critical response باید 24/7 باشد ولی staffing فقط weekday است، state باید HOLD_SUPPORT_UNSTAFFED بماند تا coverage واقعی یا تغییر promise مستند شود.

10) Dependency Boundary را پنهان نکن

یک service customer-facing نمی‌تواند به‌طور قابل‌اعتماد promise سخت‌گیرانه‌تری بدهد اگر critical dependency محدودکننده evidence نشده باشد. dependency objective باید در decision دیده شود، نه در پاورقی.

11) Exclusion و Error Budget را با دقت استفاده کن

exclusion_rule باید روشن و محدود باشد و نباید failure واقعی کاربر را از metric حذف کند. error_budget_policy نیز operating policy است؛ جای consequence قراردادی یا staffing evidence را نمی‌گیرد.

12) Core Evidence Contract

این درس 20 بُعد evidence دارد که 16 بُعد آن بحرانی است. جدول زیر baseline، measurement failure و support transfer را فشرده نشان می‌دهد؛ JSON/CSV mapping کامل را نگه می‌دارد.

casetierSLISLOmeasurementSLAconsequencesupportstaffingdependencystateevidence
baselinePROuser request success99.95%/30dclient+edge99.9%5% creditSEV1 30m 24x724x799.95%ADMISSIBLEev:arc021:baseline
measurement_failurePROserver uptime99.95%/30dserver only99.9%5% creditSEV1 30m 24x724x799.95%HOLD_MEASUREMENT_INVALIDev:arc021:server-only
transferPROuser request success v299.95%/30dclient+edge v299.9%10% creditSEV1 30m 24x78x599.99%HOLD_SUPPORT_UNSTAFFEDev:arc021:transfer

13) Typed state جلوی موفقیت جعلی را می‌گیرد

HOLD_EVIDENCE_MISSING، HOLD_MEASUREMENT_INVALID، HOLD_SUPPORT_UNSTAFFED، HOLD_DEPENDENCY_RISK، REJECT_SLA_OVERCOMMIT و BLOCKED_CONSEQUENCE_UNDEFINED خروجی معتبرند. هیچ‌کدام نباید با حدس به ADMISSIBLE تبدیل شوند.

14) Approval و Review Trigger

service tier فقط وقتی admissible است که ownerهای measurement/support مشخص باشند و review_trigger برای تغییر instrumentation، dependency objective، staffing coverage یا consequence تعریف شده باشد.

15) Lab و Transfer

Lab هشت fixture و 48 assertion دارد. در transfer، client-side SLI اضافه شده، dependency بهتر شده، overnight staffing حذف شده و financial service credit اضافه شده است. learner باید از evidence جدید تصمیم را دوباره محاسبه کند؛ baseline oracle نیست.

ارزیابی

پاسخ‌نامه‌ی این درس در بسته‌ی آموزش وجود ندارد؛ خودت جواب بده و صادقانه علامت بزن. «نیاز به مرور» درس را به صف تکرار می‌فرستد.

ARC-021-Q1 retrieval

Explain the difference among SLI, SLO and SLA, including the role of consequence.

lesson ✗AI ✗notes ✗

ARC-021-Q2 application

Build SLA-SLO Support Operating Contract v1 for the baseline fixture.

lesson ✗AI ✗notes ✗

ARC-021-Q3 diagnosis

Why does server-only availability fail when user-facing failures rise?

lesson ✗AI ✗notes ✗

ARC-021-Q4 transfer

Recompute the transfer case after client-side instrumentation improves, dependency objective improves, overnight staffing disappears, and a financial service credit is added.

lesson ✗AI ✗notes ✗
ملاک‌های ارزیابی (rubric)

Pass requires: correct SLI/SLO/SLA boundary; complete critical evidence; explicit non-success state when measurement/staffing/dependency/consequence is inadequate; no invented facts; and independent recomputation of transfer.

منابع و تازگی

Service Level Objectives
Google Site Reliability Engineering · FOUNDATIONAL_STABLE
Defines SLI/SLO/SLA terminology and SLO measurement/indicator guidance; does not define MAKNOW commercial thresholds, support tiers, staffing or penalty schedules.

مطالعهٔ موارد (case studies)

تصاویر درس

ARC-021-SLA-SUPPORT-FLOW

Flow from user-relevant SLI through SLO, support/dependency evidence and SLA consequence to a bounded decision.

فایل‌های آزمایشگاه

هشت case مصنوعی را بررسی کنید، python run_checks.py را اجرا کنید و برای هر state ناموفق، field تعیین‌کننده را توضیح دهید. staffing، dependency، consequence یا measurement مفقود را با حدس پر نکنید.