Amirali Yaghoutiمهندس ارشد نرم‌افزار

مطالعه موردی مهندسی

عملیات میکروکش

یک کش وقتی خوب است که بشود گرداندش. این کار درباره‌ی خود کش نیست، درباره‌ی چیزهایی است که وقتی چیزی اشتباه پیش می‌رود لازم داری: بازسازی، گرم‌کردن، و یک راه امن برای دور زدن.

مسئله تجاری

یک میکروکش فقط وقتی مفید است که بشود امن بازسازی، گرم و دور زده شود. عملیات دستی کش وقتی به‌روزرسانی محصول، حالت‌های پرداخت یا نشست‌های شخصی‌سازی‌شده در میان باشد ریسک می‌سازد.

آنچه تحویل دادم

  • کنترل‌های سمت ادمین برای نگهداری کش و بازبینی عملیاتی.
  • الگوهای بازسازی دسته‌ای و warm worker که از فشار درخواست‌های طولانی پرهیز می‌کنند.
  • تفکر امن‌تر درباره‌ی دور زدن، حول پرداخت، سبد، AJAX و حالت‌های احراز هویت‌شده.

رویکرد فنی

  • گرم‌کردن دسته‌ای و کران‌دار انجام می‌شود نه در یک اجرای طولانی، چون یک worker که خیلی طول بکشد خودش تبدیل به منبع فشار می‌شود.
  • قوانین دور زدن صریح‌اند نه استنتاجی. هر حالتی که شخصی‌سازی‌شده یا تراکنشی است باید نام‌برده باشد، وگرنه بالاخره کش می‌شود.
  • کنترل‌های ادمین وجود دارند چون نگهداری کش نباید به دسترسی SSH نیاز داشته باشد. عملیاتی که فقط من بتوانم انجامش دهم عملیاتی است که در ساعت بد انجام نمی‌شود.

نتیجه و شواهد

این به‌روزرسانی گرداندن و بازیابی میکروکش را ساده‌تر و امن‌تر می‌کند بدون انتشار جزئیات داخلی کش زنده.

اهمیت برای کارفرما

کش‌ها وقتی مشکل می‌سازند که کسی نداند چطور بازسازی‌شان کند. ابزار عملیاتی همان چیزی است که یک بهینه‌سازی را از یک ریسک جدا می‌کند.

خلاصه-اجرایی-پروژه

خلاصه اجرایی خوانا

خلاصه_اجرایی {
  پروژه: "MU Microcache Operations"
  بافت: "کارایی ووکامرس"
  تمرکز: "گرداندن کش، نه ساختنش"
  ابزارها: "کنترل ادمین، بازسازی دسته‌ای، warm worker"
  کران‌داری: "گرم‌کردن دسته‌ای؛ بدون اجرای طولانی"
  دور_زدن: "صریح حول سبد، پرداخت، AJAX، احراز هویت‌شده"
  اصل: "نگهداری نباید به SSH نیاز داشته باشد"
}

ارزش حرفه‌ای این پروژه

بیشتر پروژه‌های کش روی نرخ hit تمرکز می‌کنند. من روی چیزی تمرکز کردم که وقتی چیزی اشتباه می‌شود اتفاق می‌افتد، چون آن‌وقت است که یک کش هزینه می‌سازد.

قابل‌دسترس‌کردن نگهداری از ادمین یک تصمیم عملیاتی است: ابزاری که به توسعه‌دهنده نیاز داشته باشد در بحران استفاده نمی‌شود.