معماری پایدار آجیل حسینی

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

وقتی رشد، یک فروشگاه را به زانو در می‌آورد!

فروشگاه اینترنتی «آجیل حسینی»، یکی از نام‌های شناخته‌شده در صنعت خود، با یک چالش بزرگ روبه‌رو بود: زیرساخت فعلی آن‌ها توانایی مدیریت ترافیک سنگین در زمان کمپین‌های فروش ویژه، به‌خصوص در مناسبت‌هایی مانند عید نوروز را نداشت.
با شروع کمپین، وب‌سایت با کندی شدید مواجه می‌شد و نهایتاً از دسترس خارج می‌گردید. تلاش‌های اولیه آن‌ها برای حل مشکل از طریق افزایش چندباره منابع سخت‌افزاری (CPU و RAM) بی‌نتیجه مانده بود، چرا که گلوگاه اصلی سیستم در جای دیگری پنهان شده بود.
 این نقطه، سرآغاز همکاری ما برای طراحی یک راه‌حل مهندسی‌شده بود.

گلوگاه پنهان در ورودی/ خروجی دیسک (I/O)

تحلیل‌های اولیه نشان داد که مشکل اصلی، محدودیت در عملیات ورودی/خروجی هارد دیسک بود. سرور برنامه (PHP) و سرور دیتابیس هر دو از یک دیسک واحد استفاده می‌کردند.
این یعنی درخواست‌های مربوط به بارگذاری سایت، تصاویر و پردازش‌های PHP برای دسترسی به دیسک، با درخواست‌های سنگین دیتابیس در رقابت بودند.
در زمان اوج ترافیک، این رقابت به یک گلوگاه بزرگ تبدیل می‌شد و عملاً کل سیستم را قفل می‌کرد. مشخص بود که راه‌حل، فراتر از افزایش صرف منابع سخت‌افزاری است.

بازمعماری هوشمند زیرساخت

۰۱ – تفکیک سرور دیتابیس و سرور برنامه جداسازی کامل دیتابیس از سرور PHP باعث شد هر کدام منابع I/O مخصوص خود را داشته باشند و ظرفیت کلی سیستم تقریباً دو برابر شود.
 برای میزبانی دیتابیس از سرویس پایگاه داده ابری «پنکیک» استفاده شد که علاوه بر SSD پرسرعت، پشتیبان‌گیری خودکار نیز ارائه می‌داد.
۰۲ – بهینه‌سازی وب‌سرور (از Apache به PHP-FPM) با تغییر وب‌سرور از Apache به PHP-FPM، عملکرد پرستاشاپ بهینه شد و انعطاف‌پذیری پیکربندی PHP افزایش یافت.
۰۳ – معماری سه‌لایه؛ جداسازی پنل مدیریت از فروشگاه بخش مدیریت و انبارداری به یک سرور جدا منتقل شد تا ترافیک داخلی با ترافیک مشتریان تداخل نداشته باشد.
۰۴ – ارتقای هوشمند سخت‌افزار و شبکه پورت شبکه سرورها از ۱ به ۱۰ گیگابیت ارتقا یافت و فاصله‌ی فیزیکی بین سرورها به حداقل رسید تا تأخیر شبکه (Latency) کاهش یابد.

ساختار نهایی؟

سرور مشتریان (Client/Customer Server):
  • این سرور نقش خط مقدم را ایفا می‌کند و مسئول پاسخگویی به درخواست‌های خرید است. در واقع، تمام تعاملات و دریافت نیازهای اولیه مشتریان در این لایه انجام می‌شود.

سرور مدیریت (Management Server):
  • پس از ثبت درخواست‌ها، وظیفه این سرور پردازش سفارش‌ها است. این سرور اختصاصاً برای مدیریت و اجرای منطق کسب و کار (Business Logic)، هماهنگی بین بخش‌ها و اطمینان از صحت اطلاعات پیش از ثبت نهایی طراحی شده است.

سرور دیتابیس (Database Server):
  • به عنوان قلب سیستم، این سرور وظیفه سرویس‌دهی متمرکز داده‌ها را بر عهده دارد. کلیه اطلاعات مشتریان، وضعیت سفارش‌ها، و سوابق عملیاتی به صورت امن و متمرکز در این لایه ذخیره و مدیریت می‌شوند تا برای تمامی بخش‌های سیستم قابل دسترس باشند.
سرور مشتریان (Client/Customer Server): این سرور نقش خط مقدم را ایفا می‌کند و مسئول پاسخگویی به درخواست‌های خرید است. در واقع، تمام تعاملات و دریافت نیازهای اولیه مشتریان در این لایه انجام می‌شود.

سرور مدیریت (Management Server): پس از ثبت درخواست‌ها، وظیفه این سرور پردازش سفارش‌ها است. این سرور اختصاصاً برای مدیریت و اجرای منطق کسب و کار (Business Logic)، هماهنگی بین بخش‌ها و اطمینان از صحت اطلاعات پیش از ثبت نهایی طراحی شده است.

سرور دیتابیس (Database Server): به عنوان قلب سیستم، این سرور وظیفه سرویس‌دهی متمرکز داده‌ها را بر عهده دارد. کلیه اطلاعات مشتریان، وضعیت سفارش‌ها، و سوابق عملیاتی به صورت امن و متمرکز در این لایه ذخیره و مدیریت می‌شوند تا برای تمامی بخش‌های سیستم قابل دسترس باشند.

و نتیجه؟ فروش بی‌وقفه، رشد بدون محدودیت

فهرست مطالب

چطور از چالش تا پایداری رسیدیم؟!

در آغاز، گلوگاه‌های عملکرد سیستم و وضعیت I/O به‌دقت بررسی شدند تا تصویر دقیقی از bottleneck‌ها به‌دست آید.
سپس معماری جدید با لایه‌بندی سرورها طراحی شد تا مسیر داده‌ها و پردازش‌ها بهینه شود. در ادامه، دیتابیس، پنل مدیریت و سرور اصلی از هم تفکیک شدند تا بار کاری از هم جدا و پایداری افزایش یابد. پس از آن، با بهینه‌سازی PHP-FPM و ارتقای سخت‌افزار، سرعت و پاسخ‌گویی سیستم به شکل چشمگیری بهبود پیدا کرد. در نهایت، تست‌های بار و امنیت انجام شد و پروژه با مانیتورینگ مداوم و تحویل نهایی به تیم فنی، آماده‌ی بهره‌برداری پایدار شد.