رفتن به محتوای اصلی
مصطفی عفتی

درباره این پلتفرم

دفتر کاری زنده برای تجربه‌های مهندسی

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

همکار دانشجویی

  • خانم زهرا احسانی

    دانشجوی سابق · مشارکت‌کننده در توسعه پلتفرم

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

اینجا چه پیدا می‌کنید

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

با طراحی آگاهانه

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

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

فایل‌ها را از طریق بک‌اند پروکسی نکن

جابه‌جایی ذهنی مقیاس‌پذیر — بک‌اند را موتور مجوز بدانید، نه خط لولهٔ فایل.
Mostafa Effati3 دقیقه مطالعهsoftware-architecture

فایل‌ها را از طریق بک‌اند پروکسی نکن

یک جابه‌جایی ذهنی ساده که طراحی سیستم فایل در مقیاس را عوض می‌کند.

بیشتر توسعه‌دهنده‌ها سیستم فایل را یک‌جور شروع می‌کنند:

کاربر فایل آپلود می‌کند → بک‌اند پردازش می‌کند → بک‌اند ذخیره می‌کند → بک‌اند موقع دانلود سرو می‌کند.

طبیعی، امن و تحت‌کنترل به‌نظر می‌رسد.

و کار می‌کند… تا وقتی که دیگر کار نکند.

در مقیاس، این طراحی کم‌کم بک‌اند را به چیزی تبدیل می‌کند که برایش ساخته نشده:

یک پروکسی فایل با throughput بالا.

مسئلهٔ پنهان

وقتی همه‌چیز از بک‌اند رد می‌شود:

  • API به پهنای‌باند وابسته می‌شود
  • تأخیر با بار بالا می‌رود
  • مقیاس گران می‌شود
  • و «سرور منطق کسب‌وکار» تبدیل به pipeline استریم فایل می‌شود

نه چون عمداً بد طراحی کردید.

چون مسئولیت‌ها را جدا نکردید.

اشتباه اصلی

دو سیستم کاملاً متفاوت را مخلوط می‌کنید:

  • Control Plane → تصمیم، مجوز، احراز هویت
  • Data Plane → انتقال خام فایل، استریم، پهنای‌باند

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

مدل ذهنی بهتر

به‌جای:

«بک‌اند فایل‌ها را مدیریت می‌کند»

فکر کنید:

«بک‌اند فقط تصمیم می‌گیرد چه کسی اجازهٔ دسترسی به فایل دارد»

همین.

بیشتر نه.

معماری مدرن

سیستم‌های مقیاس‌پذیر عملاً این‌طور رفتار می‌کنند:

Client
   ↓
Backend (Auth + Policy Decision)
   ↓
Signed Access (URL / Cookie / Token)
   ↓
CDN / Object Storage
   ↓
استریم مستقیم به کلاینت

امنیت واقعاً کجاست؟

این بخش را خیلی‌ها غلط می‌فهمند.

امنیت با پروکسی کردن فایل از بک‌اند تضمین نمی‌شود.

از این‌ها می‌آید:

  • توکن‌های امضاشدهٔ کوتاه‌عمر
  • scope سخت‌گیرانه (view / download / upload)
  • امضای رمزنگاری
  • اعتبارسنجی در edge
  • ذخیره‌سازی private-by-default

بک‌اند دیگر دروازه‌ای نیست که داده را حمل کند.

دروازه‌ای است که مجوز صادر می‌کند.

چرا بهتر مقیاس می‌شود

با این مدل:

بک‌اند

  • بدون state
  • سبک
  • مقیاس افقی
  • بدون گلوگاه پهنای‌باند

CDN / Storage

  • بهینه‌شده برای استریم
  • توزیع‌شدهٔ جهانی
  • آگاه از cache
  • ساخته‌شده برای throughput بالا

هر سیستم کار خودش را می‌کند.

بدون هم‌پوشانی. بدون اصطکاک.

جابه‌جایی ذهنی

اگر یک ایده بماند، این است:

بک‌اند مقیاس‌پذیر داده را جابه‌جا نمی‌کند. دسترسی به داده را مجاز می‌کند.

به‌محض اینکه بک‌اند شروع به «حمل فایل» کند، دوباره control و data را کوپل کرده‌اید — و درد مقیاس از همان‌جا شروع می‌شود.

جمع‌بندی

بیشتر معماری‌های سیستم فایل به‌خاطر storage ضعیف شکست نمی‌خورند.

به‌خاطر یک سوءتفاهم ساده شکست می‌خورند:

بک‌اند را خط لولهٔ فایل دیدن، نه موتور تصمیم.


نسخهٔ canonical. همچنین در Medium.

اسناد مرتبط

منوی دستور

↑ ↓برای حرکت · Enter برای انتخاب · Esc برای بستن
ناوبری
اقدامات

Esc برای بستن · ⌘K برای باز/بسته کردن