فیدل فستلی: تست VCL روی خودِ لبه
خلاصهٔ کاملتر
نویسنده که بهعنوان Solutions Architect تو فستلی کار میکنه، میگه همیشه به یه گیر ثابت میخوره: کامپایلر واقعی VCL روی لبهٔ فستلی زندگی میکنه، نه روی لپتاپ. لینت محلی بخشی از کار رو راه میندازه، ولی دادهٔ جئو، رفتار WAF، کلاسترینگ واقعی کش، شیلدینگ و ریتلیمیت فقط روی زیرساخت خود فستلی معنی دارن.
Fastly Fiddle دقیقاً همین شکاف رو پر میکنه: یه ابزار وبیه که VCL رو با کامپایلر پروداکشن و روی POPهای واقعی سراسر دنیا کامپایل و اجرا میکنه و درخواستها رو از کل ماشین حالت فستلی — vcl_recv، vcl_fetch، vcl_deliver — رد میکنه. به گفتهٔ نویسنده، لینک اشتراکی فیدل بیسروصدا یکی از بهترین قابلیتهاشه؛ خیلی از تیکتهای پشتیبانی با فرستادن یه لینک که همون رفتار رو بازتولید میکنه حل شدن.
نکتهٔ تازه اینه که مخاطب فیدل لزوماً آدم نیست. فستلی روی یه agent toolkit کار میکنه که به ایجنتهای کدنویس یاد میده با سرویسهاش کار کنن، و API فیدل — که مستند نیست ولی پایداره — دقیقاً چیزی رو میده که ایجنت لازم داره: تشخیصهای لینت با شمارهٔ خط، پاس/فیل هر ادعا، و مقدار انتظاری در برابر مقدار واقعی. فیدل یه DSL کوچیک تست هم داره که ایجنت بدون اسکرپکردن صفحهٔ وب میتونه بنویسه و بخونه:
clientFetch.status is 200
originFetches.count() is 0
clientFetch.bodyPreview includes "BadBot"هر POST بلافاصله خروجی کامپایل رو هم برمیگردونه، بدون اینکه چیزی اجرا بشه. پس ایجنتی که مثلاً داره یه robots.txt مصنوعی میسازه یا درخواستها رو بر اساس موقعیت جغرافیایی مسیردهی میکنه، تو یه رفتوبرگشت میفهمه کدش اصلاً کامپایل میشه یا نه، خطاهای لینت رو درست میکنه و بعد کل تست رو روی نودهای واقعی لبه اجرا میکنه. نویسنده میگه فیدل اصلاً برای ایجنتها طراحی نشده بود، ولی چون از اول قرار بود سندباکسی با دسترسی باز، اجرای فوری و بازخورد شفاف باشه، همون خاصیتها برای ایجنت هم جواب میده.
به گفتهٔ نویسنده، فیدل جایگزین ابزار محلی نیست و مکملشه: لینتر falco و افزونهٔ VS Code حلقهٔ داخلی و سریع کارن، فیدل حلقهٔ بیرونیه — وقتی خودت یا ایجنتت به لبهٔ واقعی احتیاج دارین. فیدل رایگانه و برای همه باز.
نکات کلیدی:
- فیدل کد VCL رو با کامپایلر واقعی فستلی روی POPهای واقعی اجرا میکنه، نه شبیهسازی محلی
- تنها جای تست قابلیتهای وابسته به لبه (جئو، شیلدینگ، کلاسترینگ کش، ریتلیمیت) بیرون از یه سرویس دیپلویشدهست
- لینک اشتراکی فیدل یه اجرای قابل بازتولید رو دست هر کسی میده؛ برای دیباگ تیکتهای پشتیبانی عالیه
- API غیرمستند ولی پایدارش خروجی ساختاریافته میده تا ایجنت لینت و تست خودش رو چک کنه
- مکمل لینتر محلی و افزونهٔ VS Code هست، نه جایگزینشون




