در بیشتر سیستمهای نرمافزاری در دنیای واقعی، انتظار میرود که نودهای پردازشی گهگاه با مشکلات موقتی مواجه شوند و به دلایل مختلفی مانند بار ترافیکی اضافی (Overload)، از دست رفتن منابع (Resource Leak) به دلیل مشکلات نرم افزاری، خرابیهای سختافزاری و غیره برای مدت زمانی از دسترس خارج شوند. در حالت ایدهآل، خیلی خوب است که بتوان بهشکل کامل از وقوع این رویدادهای ناگوار پیشگیری کرد، اما هزینهی طراحی و ساخت چنین سیستم ایدهآلی بهشکل کلی بسیار زیاد است.
با این حال، رویکرد واکنشی دیگری وجود دارد که مقرون به صرفهتر است و هدف آن به حداقل رساندن تاثیر منفی این از دسترس خارج شدنها بر درخواستهای کاربران است. ایجاد سیستمی برای توزیع بار ترافیک ورودی کاربران و بررسی وضعیت سلامت نودهای پردازشی میتواند راهحلی برای رفع این مشکل باشد.
سیستم توزیع بار ابر آروان می تواند سلامت هر سرور (نود پردازشی) را بررسی کرده و ارسال ترافیک کاربران به سرورهای ناسالم را تا زمان رفع مشکل متوقف کند. سیستم توزیع بار این کار را در قالب ابزاری به نام مانیتورینگ اجرا میکند. بررسی وضعیت سلامت سرورهای اصلی به صورت توزیع شده انجام شده و در هر منطقه جفرافیایی چندین کاوشگر (Probe) وضعیت بررسی سلامت را بر عهده دارند تا از مشکلات احتمالی شبکه در یک منطقه جغرافیایی که میتواند سبب ایجاد اطلاعات نادرست شود جلوگیری کنند.
به کمک این ابزار مانیتورینگ جدید در سیستم توزیع بار شبکه توزیع محتوای آروان (CDN) میتوانید یک سیستم توزیع بار اختصاصی خود با دسترسپذیری بالا ایجاد کنید که ترافیک ورودی کاربران شما را میان چندین سرور با اختصاص دادن وزن به هر کدام توزیع کند و اگر هر کدام از این سرورها بهشکل موقت از دسترس خارج شدند، ارسال ترافیک تا زمان رفع مشکل آن متوقف شود. به این ترتیب، با از دسترس خارج شدن یک یا چند سرور به دلیل مشکلات نرم افزاری یا سخت افزاری، بازدیدکنندگان هیچ گونه کاهش کیفیت ارتباطی را مشاهده نمیکنند.این قابلیت به صاحب وبسایت و اپلیکیشن این امکان را میدهد که با اضافه کردن مانیتورینگ به پنل کاربری CDN وضعیت سرورهای اصلی خود را بررسی کند. این قابلیت ضمن برطرف کردن استفاده از سرویسهای جانبی برای مانیتورینگ و هزینههای آن، این امکان را می دهد که اگر در توزیع بار CDN سروری دچار مشکل شد، ترافیک را به سمت آن ارسال نکند و صاحب دامنه را از مشکل پیش آمده مطلع کند.
در زمان استفاده از سیستمهای جانبی برای مانیتورینگ وضعیت سرورها، اگر یکی از آنها دچار مشکل شد، نیاز است تا کاربر به پنل CDN مراجعه کرده و بهشکل دستی وزن سرور مربوطه را صفر کند تا ترافیک برای آن ارسال نشود. اما با این سیستم مانیتورینگ جدید، این کار به صورت یکپارچه و در کمترین زمان و به صورت خودکار انجام میشود.
انواع توزیع بار در CDN ابر آروان
توزیع بار ترافیک ورودی در محصول شبکهی توزیع محتوی آروان در دو حالت قابل انجام است.
- در تنظیمات DNS: با اختصاص چندین آدرس سرور اصلی به یک زیردامنه (رکورد DNS) و ارسال ترافیک آن زیردامنه به سرورهای مربوطه با توجه به وزن هر سرور.
- در قسمت توزیع بار: بار با تعریف کلاستری شامل چند آدرس سرور اصلی و ارسال ترافیک ورودی یک مسیر از دامنه به کلاستر مربوطه توزیع میشود.
انواع مانیتورینگ توزیع بار
در توزیع بار نکتهای که اهمیت بسیار زیادی دارد، شیوهی برخورد توزیع کنندهی ترافیک در برابر خطاهای سرورهایی است که ترافیک کاربران برای آنها ارسال میشود. شیوهی برخورد سیستم توزیع بار با این خطاها را میتوان به دو حالت تقسیم بندی کرد.
مانیتورینگ Passive
در این حالت درخواستها به سمت سرورهای اصلی ارسال میشوند و اگر آن درخواست با خطا مواجه شود، مجدد برای سرور بعدی در لیست سرورها ارسال میشود.
از مزایای این روش میتوان به سادگی استفاده از آن اشاره کرد که بهشکل پیش فرض برای کاربران فعال است و نیاز به تنظیم خاصی ندارد.
از معایب آن میتوان به ایجاد تاخیر و کندی برای درخواستهای کاربران با خطا دار شدن یک سرور اشاره کرد. زیرا با وجود اینکه سرور اصلی دچار خطا میشود، درخواستهای کاربران همچنان برای آن ارسال میشود و کاربر تا زمان دریافت خطای Time Out در انتظار دریافت پاسخ باقی میماند اگر درخواست مربوطه، تایم اوت شود تنها در آن زمان است که این درخواست برای سرور دیگری ارسال می شود.
از معایب دیگر این روش میتوان به این مورد اشاره کرد که در زمانی که سرور اصلی خطاهای عملکردی داشته باشد، این موضوع از سمت سیستم توزیع بار قابل شناسایی نیست. بهعنوان مثال اگر سرور اصلی به هر دلیلی (مشکل در ارتباط با دیتابیس و…) خطای داخلی سرور یا 5xx بدهد، این موضوع از دید سیستم توزیع بار مخفی مانده و بازدید کننده با خطا رو به رو میشود.
مانیتورینگ Active
در این حالت سیستم توزیع بار بهشکل مستقل درخواستهایی را برای سرورهای اصلی ارسال میکند و وضعیت سلامت آن را مورد بررسی قرار میدهد. این درخواستها میتوانند بر اساس پروتکل HTTP و یا TCP باشند.
اگر این درخواستها با خطا روبه رو شوند (با توجه به تعریف ادمین سرور)، سیستم توزیع بار بهشکل خودکار سرور معیوب را از لیست سرورهای دچار مشکل خارج کرده و درخواستها را برای سایر سرورهای سالم در لیست مربوطه ارسال میکند. مانیتورینگ Passive که با نام مدیریت خطای سرورهای اصلی شناخته میشود و در پنل کاربری CDN در قسمت توزیع بار در دسترس کاربران است دیده میشود.
قابلیتی که اکنون به CDN آروان اضافه شده است امکان مانیتورینگ یک سرور بهشکل مستقل و همچنین مانیتورینگ فعال در سیستم توزیع بار است.
مانیتورینگ برای بررسی وضعیت یک یا چند سرور با امکان ارسال نوتیفیکیشن
کاربر میتواند وضعیت یک سرور را به صورت مستقل به کمک پروتکلهای HTTP/TCP مانیتور کرده و با مشاهدهی خطا از هر منطقه جغرافیایی هشدار مربوطه را دریافت کند.
مانیتورینگ برای یک سیستم توزیع بار با امکان از دسترس خارج کردن سرور معیوب و ارسال نوتیفیکیشن
کاربر میتواند وضعیت سرورهای یک کلاستر(سیستم توزیع بار در CDN) را به کمک پروتکلهای HTTP/TCP مانیتور کرده و با مشاهدهی خطا از هر منطقه جغرافیایی ضمن دریافت هشدار، سرور مربوطه را از لیست سرورهای آن کلاستر (سیستم توزیع بار CDN) به صورت خودکار خارج شود تا درخواستهای کاربران به سمت آن ارسال نشود. در این حالت همچنان درخواستهای مانیتورینگ همچنان برای سرور مربوطه ارسال میشوند و در صورتی که خطاهای آن برطرف شد مجدد وارد مدار شده و درخواست های کاربران برای آن ارسال میشود.
توزیع بار به کمک کلاستر
در پنل کاربری CDN آروان میتوان از این مسیر یک کلاستر (مجموعه ای از سرورهای اصلی) را تعریف کرد:
شبکهی توزیع محتوا (CDN) -> انتخاب دامنه -> توزیع بار -> ایجاد کلاستر جدید
این کلاستر میتوان شامل مجموعهای ازIP ها یا آدرس دامنهها باشد که به هر کدام وزنی اختصاص داده شده است و ترافیک متناسب با وزن هرکدام برایشان ارسال میشود.
از کلاستر تعریف شده میتوان در قسمت قوانین صفحات استفاده کرد:
شبکهی توزیع محتوا (CDN) -> انتخاب دامنه -> قوانین صفحات -> قانون جدید
در این حالت با انتخاب مسیری که میخواهیم ترافیک آن را برای یک کلاستر تعریف شده ارسال کنیم را وارد کرده و از لیست کلاستر مربوطه را انتخاب میکنیم. به این ترتیب، ترافیکی که برای آن مسیر دامنه دریافت شود برای سرورهای تعریف شده در آن کلاستر ارسال می شود:
مانیتورینگ برای وضعیت سرورهای کلاستر توزیع بار
حال نیاز داریم تا برای سرورهای تعریف شده در کلاستر مربوطه یک مانیتورینگ اضافه کنیم تا در صورتی که یکی از سرورهای آن دچار مشکل شد ترافیک کاربران برای آن ارسال نشده و به صاحب دامنه نیز اطلاع رسانی شود.
این کار از قسمت توزیع بار قابل انجام است:
بر روی دکمه + زیر مانیتورینگ کلیک کرده و یک مانیتورینگ جدید برای آن اضافه می کنیم. تنظیمات مربوط به مانیتورینگ در این قسمت قابل انجام است. این تنظیمات شامل موارد زیر است:
- توضیحات
- پروتکل
- TCP
- وارد کردن پورت سرور اصلی
- HTTP
- وارد کردن اطلاعات درخواست HTTP
- TCP
- برررسی از منطقه جغرافیایی و نحوهی واکنش نسبت به خطای مشاهده شده
- مدت زمان انتظار برای دریافت پاسخ
- بازهی تکرار برای تعیین فاصله زمانی میان درخواستهای متوالی
این موارد در شکل زیر قابل مشاهده است.
پشتیبانی از پروتکل های HTTP/TCP
قابلیت مانیتورینگ CDN ابر آروان از دو پروتکل پر استفادهی TCP و HTTP پشتیبانی میکند. در پروتکل TCP تنها اطلاعاتی که از سرور اصلی مورد نظر نیاز است شماره پورت شبکه است. در این حالت باز بودن این پورت مانیتور میشود و در زمانیکه سرور از دسترس خارج شود، از نظر سخت افزاری دچار مشکل شود و یا به هر دلیلی پورت مورد نظر بسته شود این مانیتورینگ اعلام خطا میکند.
در پروتکل HTTP اطلاعات مورد نیاز برای بررسی وضعیت سرور اصلی به وسیلهی پروتکل HTTP مورد نیاز این. این اطلاعات به شرح زیر است.
- متد: GET/POST
- نوع درخواست: HTTP/HTTPS
- پورت: 80-443-…
- مسیر دامنه: هر مسیری که انتظار میرود پاسخگوی درخواست ها باشد. به صورت پیش فرض ریشه دامنه(/)
- کدهای وضعیت مورد انتظار در پاسخ: 200-300-…
- بدنه (body) مورد انتظار در پاسخ دریافتی: پاسخی که انتظار می رود سرور مورد نظر در جواب درخواست ارسال کند
- هدرهای مورد انتظار در پاسخ
- هدرهای ارسالی به سرور اصلی
- دنبال کردن ریدایرکت: در صورتی که کد وضعیت 30x از سرور دریافت شد آیا درخواست به آدرس جدید ارسال شود یا نه
- چک کردن سرتیفیکیت سرور اصلی: سرتیفیکیت نصب شده بر روی سرور اصلی از نظر معتبر بودن تاریخ و … چک می شود.
در شکل زیر اطلاعات مربوط به پروتکل HTTP نشان داده شده است:
مانیتور کردن بهشکل توزیع شده
قابلیت مانیتورینگ CDN بهشکل توزیع شده پیادهسازی شده است و از سرورهای لبه آروان در سرتاسر نقاط جهان انجام می شود. در هر منطقهی جغرافیایی، تعدادی از پاپ سایتها بهشکل ترکیب شده تشکیل یک منطقه در مانیتورینگ را می دهند.
مناطق جغرافیایی که میتوان مانیتورینگ را برای آنها فعال کرد عبارت است از:
- ایران
- اروپا
- آمریکا
- جنوب شرقی آسیا
هر کدام از این مناطق شامل چندین پاپ سایت است که کار مانیتورینگ را انجام میدهند. وضعیت یک سرور از یک منطقه جغرافیایی زمانی خطا تشخیص داده میشود که از تمامی پاپ سایتهای مانیتورینگ آن منطقه خطا دریافت شود. این موضوع، امکان بروز اشتباه در مانیتورینگ به دلیل مشکلات شبکهای محلی را به کمترین میزان ممکن میرساند.
IP سرورهایی که از آنها درخواست ارسال میشود با IP سرورهای لبهی CDN یکسان هستند و از بخش لیست IPهای ابر آروان در دسترس هستند. نیاز است تا این IPها را بر روی سرورهای خود Whitelist کنید تا درخواستهای مانیتورینگ بدون مشکل دریافت شوند.
سطح مانیتورینگ
مونتورینگ میتواند از هر منطقهی جغرافیایی اضافه شده دارای سه وضعیت باشد.
- خاموش: درخواستی ارسال نمیشود و تاثیری در مانیتورینگ ندارد.
- اطلاع رسانی: در این حالت در صورتی که خطا از منطقه جغرافیایی مربوطه مشاهده شد برای ایمیل صاحب دامنه پیامی مبنی بر مشاهده خطا ارسال می شود ولی تغییری در تنظیمات لود بالانسر اعمال نمیشود.
- اطلاع رسانی و خارج کردن از لیست: در این حالت در صورت مشاهده خطا از آن منطقه جغرافیایی ضمن اطلاع رسانی به کاربر سرور مربوطه را تا زمان نرمال شدن وضعیت آن از لیست سرورهای اصلی خارج میکند و درخواستی به سمت آن ارسال نمیشود.
جمع بندی
به کمک قابلیت مانیتورینگ CDN ابر آروان که به تازگی به این محصول اضافه شده است، میتوانید سیستم توزیع باری با دسترسپذیری بالا ایجاد کنید که حتی در صورتی که یک یا چند سرور آن دچار وقفه در عملکرد صحیح شدند به خوبی بتواند ترافیک کاربران را برای سرورهای سالم ارسال کند و ضمن ارسال نوتیفیکیشن صاحب دامنه و وبسایت را از خطای پیش آمده آگاه میکند.
تمامی این فرآیند در کسری از ثانیه انجام میشود تا از دید کاربر اختلالی در پاسخگویی وبسایت ایجاد نشود. توزیعشدگی جهانی Probeهایی که وظیفهی سلامتسنجی را بر عهده دارند این امکان را میدهد که ضمن مقاوم بودن در برابر مشکلات محلی شبکههای اینترنتی، در زمانی که سرورهای اصلی از یکی از مناطق جغرافیایی در دسترس نبودند صاحب وبسایت سریعن از این موضوع مطلع شود. این قابلیت اکنون برای کاربرانی که از پلن های حرفه ای و سازمانی CDN استفاده میکنند، در دسترس است.