۳ بررسی پس از استقرار (Post-Deploy) که من بعد از هر Build در Cloudflare Pages انجام می‌دهم

من دو هفته را صرف عیب‌یابی (debugging) مشکلات محیط عملیاتی (production) کردم.

یک قانون در sitemap باعث مسدود شدن فایل‌های XML من شد. یک race condition باعث شکست در آپلود تصاویر شد. من از حدس زدن دست کشیدم و سه بررسی مشخص را به گردش کار (workflow) خود اضافه کردم.

من این بررسی‌ها را روی سه سایت Astro 5 SSG اجرا می‌کنم: aiappdex.com، findindiegame.com و ossfind.com.

این بررسی‌ها حالت‌های شکست (failure modes) واقعی من را هدف قرار می‌دهند.

۱. تأیید Sitemap

من بررسی می‌کنم که آیا sitemap-index.xml در تمام دامنه‌ها کد وضعیت ۲۰۰ برمی‌گرداند یا خیر. من از curl بدون دنبال کردن ریدایرکت (redirect following) استفاده می‌کنم. این کار باعث شناسایی قوانینی می‌شود که URLها را به اشتباه بازنویسی (rewrite) می‌کنند.

همچنین زیر-sitemapها را نیز بررسی می‌کنم. تأیید می‌کنم که آن‌ها شامل حداقل تعداد مشخصی URL باشند. برای مثال، اگر تعداد URLهای aiappdex.com به زیر ۱,۰۰۰ برسد، یعنی خط لوله داده (data pipeline) من با شکست مواجه شده است.

۲. ارسال به IndexNow

پس از موفقیت‌آمیز بودن بررسی sitemap، اسکریپتی را برای ارسال URLها به IndexNow اجرا می‌کنم. این کار Bing، Yandex، Naver و Seznam را از محتوای جدید مطلع می‌کند.

من مراقب خطاهای ۴۰۳ هستم. خطای ۴۰۳ معمولاً به این معنی است که فایل تأیید کلید (key verification file) من مستقر نشده یا یک قانون ریدایرکت، مسیر را خراب کرده است. شناسایی زودهنگام این موضوع از تأخیر در ایندکس شدن جلوگیری می‌کند.

من این کار را به صورت دستی بعد از استقرار انجام می‌دهم. این کار تضمین می‌کند که URLهایی را ارسال می‌کنم که واقعاً روی CDN فعال هستند.

۳. ممیزی‌های زمان‌بندی شده Lighthouse

من بررسی‌های Lighthouse را از طریق یک cron job هر دوشنبه اجرا می‌کنم. برای هر سایت، یک صفحه اصلی و یک صفحه داخلی (deep page) را بررسی می‌کنم.

من این معیارها را زیر نظر می‌گیرم:

  • عملکرد (هدف: بالای ۸۰)
  • CLS (هدف: زیر ۰.۱)
  • امتیازهای دسترسی‌پذیری (Accessibility)

من از Lighthouse به عنوان مانیتور روند (trend monitor) استفاده می‌کنم. اگر امتیازی کمی کاهش یابد، استقرارها (deploys) را متوقف نمی‌کنم. من از این داده‌ها برای شناسایی عقب‌گردها (regressions) در تنظیمات Tailwind یا چیدمان کامپوننت‌ها استفاده می‌کنم.

چرا این سه مورد؟

من از مانیتورینگ زمان بالا بودن (uptime monitoring) یا تست‌های کاربر سرتاسری (end-to-end user tests) استفاده نمی‌کنم. سایت‌های من استقرارهای استاتیک SSG هستند. کل زمان اجرا (runtime) شامل HTML و CSS از پیش ساخته شده است.

سطح بروز خطا (failure surface) کوچک است. این سه بررسی، محتمل‌ترین روش‌هایی را که محیط عملیاتی من دچار مشکل می‌شود، پوشش می‌دهند.

منبع: https://dev.to/morinaga/three-post-deploy-checks-i-run-after-every-cloudflare-pages-build-3j14