چگونه یک وب سایت را برای پشتیبانی از میلیون ها کاربر مقیاس کنیم؟ این را گام به گام توضیح خواهیم داد.

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

scale a website to support millions of users

scale a website to support millions of users

فرض کنید ما دو سرویس داریم: سرویس موجودی (توضیحات محصول و مدیریت موجودی را انجام می دهد) و سرویس کاربر (به اطلاعات کاربر، ثبت نام، ورود و غیره رسیدگی می کند).

مرحله 1 – با رشد پایگاه کاربر، یک سرور کاربردی دیگر نمی تواند ترافیک را مدیریت کند. سرور برنامه و سرور پایگاه داده را در دو سرور مجزا قرار می دهیم.

مرحله 2 – کسب و کار به رشد خود ادامه می دهد و یک سرور کاربردی دیگر کافی نیست. بنابراین ما یک خوشه از سرورهای برنامه را مستقر می کنیم.

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

مرحله 4 – با ادامه رشد تجارت، پایگاه داده ممکن است به گلوگاه تبدیل شود. برای کاهش این موضوع، خواندن و نوشتن را به گونه‌ای جدا می‌کنیم که درخواست‌های خواندن مکرر به خواندن کپی‌ها بروند. با این تنظیمات، توان عملیات نوشتن پایگاه داده را می توان تا حد زیادی افزایش داد.

مرحله 5 – فرض کنید تجارت به رشد خود ادامه می دهد. یک پایگاه داده واحد نمی تواند بار روی جدول موجودی و جدول کاربر را تحمل کند. ما چند گزینه داریم:

1. پارتیشن عمودی. افزودن قدرت بیشتر (CPU، RAM و غیره) به سرور پایگاه داده. حد سختی داره
2. پارتیشن افقی با افزودن سرورهای پایگاه داده بیشتر.
3. افزودن یک لایه کش برای تخلیه درخواست های خواندن.

مرحله 6 – اکنون می توانیم توابع را به سرویس های مختلف ماژولار کنیم. معماری سرویس گرا / میکروسرویس می شود.