امنیت، هویت، استقرار و تاب‌آوری · فصل ۹ — Resource، Provider، Cost و Organizational Failure · 128

Cost Runaway

failure را بعد از وقوع و به‌صورت موردی تحلیل می‌کند و هنوز detection، containment و repair path از قبل طراحی نشده است. موضوع جاری: «Cost Runaway». می‌تواند failure family «Cost Runaway» را بازتولید/تشخیص دهد و detection، containment و recovery مناسب را تعیین کند.

Cost Runaway — en-US

خلاصهٔ درس

failure را بعد از وقوع و به‌صورت موردی تحلیل می‌کند و هنوز detection، containment و repair path از قبل طراحی نشده است. موضوع جاری: «Cost Runaway».

می‌تواند failure family «Cost Runaway» را بازتولید/تشخیص دهد و detection، containment و recovery مناسب را تعیین کند.

خروجی این درس

می‌تواند failure family «Cost Runaway» را بازتولید/تشخیص دهد و detection، containment و recovery مناسب را تعیین کند.

پیش‌نیازها

1. افزایش هزینه را با runaway یکی نگیرید

Cost Runaway یعنی نرخ هزینه یا هزینهٔ واحد از مرز مورد انتظار خارج شود و اگر مهار نشود، هزینه با سرعتی نامتناسب با خروجی مفید رشد کند. افزایش کل هزینه ممکن است کاملاً منطقی باشد؛ مثلاً وقتی ترافیک دو برابر شده و هزینهٔ واحد ثابت مانده است. تشخیص باید از workload، spend rate، unit cost و context با هم ساخته شود، نه از یک نمودار صورتحساب.

2. Baseline را قبل از anomaly بسازید

برای هر window، حداقل حجم workload، هزینه واقعی، نرخ هزینه، هزینهٔ واحد، eventهای برنامه‌ریزی‌شده و forecast را ثبت کنید. بدون baseline نمی‌دانید افزایش ۳۰ درصدی یک anomaly است یا اثر طبیعی release، campaign، batch job یا رشد مشتری. UNKNOWN را به‌جای حدس نگه دارید اگر داده تاریخی یا billing data کافی نیست.

3. Spend rate و total spend دو سیگنال متفاوت‌اند

Total spend می‌گوید تا این لحظه چقدر خرج شده؛ spend rate نشان می‌دهد هزینه با چه سرعتی در حال انباشت است. یک workload می‌تواند هنوز زیر budget ماهانه باشد ولی run rate آن نشان دهد تا چند ساعت دیگر از مرز عبور می‌کند. برای containment سریع، run rate اغلب زودتر از total spend هشدار عملیاتی می‌دهد.

4. Unit cost برای جداکردن رشد سالم از اتلاف حیاتی است

cost/request، cost/job یا هر unit economics مناسب را کنار حجم workload ببینید. اگر requests دو برابر و cost هم تقریباً دو برابر شود، افزایش ممکن است expected growth باشد. اگر workload ثابت است ولی cost سه برابر شده، retry amplification، premium tier، egress یا resource drift را بررسی کنید.

5. Usage driver را با evidence مشخص کنید

Driver را از روی label یا حدس انتخاب نکنید. retry count، provider calls، instance tier، autoscaling events، egress bytes، batch schedule و allocation metadata را به همان window هزینه bind کنید. اگر دو driver هم‌زمان تغییر کرده‌اند، record باید هر دو را نگه دارد و سهم هرکدام را اگر قابل اثبات نیست UNKNOWN اعلام کند.

6. Anomaly یعنی deviation از expected behavior، نه هر افزایش

FinOps anomaly management بر مقایسه با normal/expected spend تأکید دارد. بنابراین تغییر planned مثل launch یا batch schedule ممکن است هزینه را شدیداً بالا ببرد ولی anomaly عملیاتی نباشد. برعکس، flat traffic با retry loop می‌تواند حتی بدون جهش بزرگ total spend یک efficiency regression جدی باشد.

7. Budget alert را hard cap فرض نکنید

Alerts-only budget در Google Cloud صرفاً اطلاع‌رسانی و trigger برای action است و به‌خودی‌خود usage را متوقف نمی‌کند. در ۲۰۲۶ Google برای برخی سرویس‌های eligible، Spend Cap Budget را در Preview ارائه می‌کند؛ آن هم scope، latency و محدودیت‌های خاص دارد. پس در record دقیقاً بنویسید guardrail شما alert، programmatic action، quota، admission control یا enforced cap است.

8. Guardrail باید workload-aware و reversible باشد

مهار هزینه نباید کورکورانه service را نابود کند. برای workload حیاتی ممکن است rate limit، admission control، کاهش parallelism، disable کردن premium tier یا قطع retry loop از shutdown کامل بهتر باشد. Guardrail را با availability floor و business impact همان workload طراحی کنید.

9. Containment با recovery فرق دارد

Containment یعنی رشد نامطلوب هزینه متوقف یا bounded شده است. Recovery یعنی علت هزینه اصلاح شده و workload به حالت قابل قبول برگشته است. Closure فقط وقتی مجاز است که rerun نشان دهد spend rate و unit cost به محدوده اعلام‌شده برگشته‌اند و service impact هم از مرز مجاز عبور نکرده است.

10. Forecast و budget هر دو context هستند، نه oracle

Forecast می‌تواند با data ناقص یا event جدید اشتباه شود؛ budget نیز policy target است، نه اثبات anomaly. record باید actual، forecast، threshold و evidence مربوط به expected event را کنار هم نگه دارد. اختلاف actual و forecast فقط یک signal است و هنوز نیاز به driver analysis دارد.

11. Cost reduction به‌تنهایی proof نیست

اگر shutdown هزینه را ۹۰٪ کم کند ولی SLA یا useful output را بشکند، recovery موفق نیست. Closure باید حداقل یک شاخص خروجی مفید یا availability را کنار cost metric نگه دارد. هدف «کمترین هزینه به هر قیمت» نیست؛ هدف بازگرداندن unit economics و spend behavior به bound اعلام‌شده است.

12. Cost Runaway Detection, Guardrail & Recovery Record v1

Artifact اصلی ۱۳ بُعد دارد: workload volume، actual cost، spend rate، forecast، budget threshold، unit cost، usage driver، expected-growth baseline، anomaly classification، guardrail action، service impact، closure window و residual cost risk. هر بُعد باید observation، authority/policy، inference یا UNKNOWN برچسب داشته باشد.

13. Classification را از چند signal بسازید

چهار outcome اصلی این درس عبارت‌اند از EXPECTED_GROWTH_OR_SHIFT، COST_ANOMALY، EFFICIENCY_REGRESSION و UNKNOWN. Expected growth وقتی معتبر است که workload/output و cost تقریباً هم‌جهت رشد کنند و unit cost در bound بماند. Efficiency regression زمانی محتمل است که cost per useful unit بدتر شود؛ Cost anomaly زمانی که spend behavior نسبت به baseline غیرمنتظره و driver شواهددار باشد.

14. Lab: هشت fixture و 64 assertion

Lab کاملاً local و synthetic است. هشت fixture شامل retry amplification، رشد طبیعی workload، flat traffic با retry، alert-only budget، hard stop که availability را می‌شکند، billing evidence ناقص، transfer با batch+egressِ expected و transfer با egress-driven efficiency regression است. evaluator برای هر case هشت field تولید می‌کند و oracle در مجموع 64 assertion را می‌سنجد.

15. Exit checklist و انتقال

قبل از خروج باید بتوانید توضیح دهید چرا spend increase انتخاب‌شده anomaly است یا نیست، کدام usage driver با evidence پشتیبانی می‌شود، budget control دقیقاً چه semanticsی دارد، guardrail چه service impactی ایجاد می‌کند و closure با کدام rerun ثابت می‌شود. در transfer، retry loop حذف شده ولی batch و egress بالا رفته‌اند؛ classification باید از evidence جدید بازسازی شود، نه از diagnosis قبلی کپی شود.

ارزیابی

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

Q1 retrieval

Why is a higher cloud bill not automatically Cost Runaway?

lesson ✗AI ✗notes ✗

Q2 application

Requests double and total cost doubles while cost/request stays stable. What is the default classification?

lesson ✗AI ✗notes ✗

Q3 diagnosis

Traffic is flat but provider calls triple because retries loop. What evidence points to runaway?

lesson ✗AI ✗notes ✗

Q4 decision

Why is an alerts-only budget not enough to claim containment?

lesson ✗AI ✗notes ✗

Q5 transfer

Retries disappear, scheduled batch traffic starts, egress rises, and unit cost worsens materially. How should the old diagnosis be used?

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

A sufficient response establishes a workload/cost baseline, distinguishes total spend from spend rate, calculates or bounds unit cost, identifies usage drivers from evidence, preserves UNKNOWN when billing data is incomplete, and separates alerts from enforced controls. Closure requires a repeatable rerun showing the abnormal driver is contained or removed, spend rate/unit cost return to declared bounds, and useful workload or service impact remains inside the stated floor. Transfer must be rebuilt from the changed batch/egress evidence rather than copying the original retry diagnosis.

منابع و تازگی

FinOps Foundation — Anomaly Management
·
Used to support the distinction between normal/expected spend and anomalous spend and the need for investigation context. It does not define a universal business budget or mandatory shutdown rule.
FinOps Foundation — Managing Cloud Cost Anomalies
·
Used to support the anomaly lifecycle and the idea that expected events can create spend increases that should not be blindly classified as anomalies.
Google Cloud Billing — Create, edit, or delete budgets and budget alerts
·
Used only for current Google Cloud semantics that alerts-only budgets do not automatically cap usage or spending. Provider-specific behavior must be checked independently.
Google Cloud Billing — Manage spend cap budgets
·
Used to note the 2026 Preview spend-cap capability for eligible services, including enforcement latency and scope limitations. It is not generalized to all Google Cloud services or other providers.

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

تصاویر درس

V1

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

Implement the bounded evaluator in starter.py for the eight supplied synthetic cases. No network calls or real cloud resources are needed. Keep workload growth, actual cost, spend rate, unit cost, expected-event evidence, retry/premium/egress drivers, budget-control semantics, and service impact as separate evidence dimensions. A higher bill alone is never enough to classify Cost Runaway. An alerts-only budget is detection evidence, not proof of containment. Preserve UNKNOWN when billing evidence is incomplete, and do not claim closure when the chosen guardrail violates the declared availability floor.

Run python run_checks.py to verify fixture shape before implementing the evaluator.

رسانه و اسلایدهای درس

MAKNOW_FLR-018_DECISION_EVIDENCE_TABLE_v1.0.svg
DECISION EVIDENCE TABLE v1.0.svg
MAKNOW_FLR-018_FAILURE_REPAIR_v1.0.svg
FAILURE REPAIR v1.0.svg
MAKNOW_FLR-018_PRIMARY_MODEL_v1.0.svg
PRIMARY MODEL v1.0.svg
MAKNOW_FLR-018_WORKED_EXAMPLE_v1.0.svg
WORKED EXAMPLE v1.0.svg

فایل‌های آموزشی (دانلود)

XLSXCost Runaway Detection Guardrail Recovery Record v1 v1.0.0.xlsxفایل‌های آموزشی (دانلود)
DOCXCost Runaway Detection Guardrail Recovery Record v1 WORKSHEET v1.0.0.docxفایل‌های آموزشی (دانلود)
PDFCost Runaway Detection Guardrail Recovery Record v1 WORKSHEET v1.0.0.pdfفایل‌های آموزشی (دانلود)