چهارشنبه , ۲۸ آذر ۱۳۹۷

جزئیات؛ عامل اصلی افزایش ترافیک سامانه ها

این مطلب شامل بیش از ۱۴ راه حل برای پیاده سازی ساختارها و سامانه های تحت وب برای کاهش ترافیک و هزینه های انتقال در شبکه و همچنین کاهش هزینه و استفاده از منابع سخت افزاری و نرم افزاری است. پیشنهاد میکنم حتما این مطلب را بخواند!

مقدمه

امروزه با وجود زیر ساخت های نسبتا خوب و در دسترس، امکان استفاده از اینترنت تقریبا در بیشتر نقاط کشور وجود دارد، و همین امر و البته موارد دیگری سبب شده تا اغلب سازمان ها و ارگان ها، سامانه های تحت وب و شبکه راه اندازی و در دسترس کاربران خود قرار دهند. یکی از ساختارهای که سامانه ها و امکانات تحت وب آن بسیار مهم و ضروری است، ساختار دانشگاست، همه دانشگاها دارای یک سامانه تحت وب بوده که دانشجویان، اساتید و کارمندان، میتوانند از آنها استفاده کنند. کد نویسی و توسعه نرم افزار های این سامانه ها، معمولا آسان است، زیرا ساختار دانشگاهی به ندرت دچار تغییر میشود، مثلا از گذشته تا کنون در زمان انتخاب واحد، ساختار بدین صورت بوده که دانشجو با مراجعه به سایت، میتوانند تداد دروسی بر اساس یک سری معیار و محدودیت انتخاب و ثبت کند، این ساختار از گذشته تا کنون تقریبا ثابت است. اما یکی از مهم ترین مسائلی که در بحث مدیریت این ساختار وجود دارد، ترافیک است، مخصوصا در زمان انتخاب واحد و اعلام نمرات، در این ایام سامانه های دانشگاهی بشدت تحت فشار ترافیک بوده و هر شاهد از دسترس خارج شدن چندین سامانه مختلف برای مدت زمانی اندک هستیم. شما فرض کنید یک سامانه تحت مدیریت خود دارد که در هر ثانیه باید چندین هزار درخواست را مدیریت و هندل کند، منطقا مدیریت این ساختار و از همه مهم تر مدیریت ترافیک آن بسیار مهم و پیچیده است. راه حل های زیاد برای کاهش ترافیک این ساختار ها وجود دارد که برخی را در اینجا ذکر میکنیم

ناگفته نماند موارد ذکر شده در این مباحث شاید کم اهمیت و غیر ضروری تلقی شود، ولی با قرار گرفتن تنها چند عدد از این موارد، شاهد ایجاد شرایط سخت و افزایش ترافیک هستیم.

چالش ها و راه حل های پیاده سازی سایتها و سیستم های تحت وب 

 

۱- تقسیم بار کاری در ایام هفته

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

۲- افزایش قدرت سخت افزار و منابع مورد استفاده

یکی از راه حل های که همیشه مورد استفاده قرار میگرد، استفاده از تجهیزات و سخت افزار با قدرت مضاعف است، البته اگر واقعا نیاز به سخت افزار قوی باشد، این ساختار باید استفاده شود، در غیر اینصورت یک اشتباه است!

۳- عدم استفاده از گرافیک

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

۴- تشویق اساتید به اعلام وضعیف در شبکه های اجتماعی

شما فرض کنید یک دانشجو این ترم ۵ درس دارد، تعداد افراد درون هر کلاس هم ۳۰ نفر باشد، در این حالت ما تعداد ۱۵۰ دانشجو داریم که اگر فقط یک بار به سامانه مراجعه کنند یعنی پردازش دستورات ۱۵۰ کاربر، حال ممکن است یک کاربر چندین درخواست داشته باشد. اگر اساتید در شبکه های مجازی اعلام وضعیت کنند، مثلا استاد X درون یک شبکه مانند تلگرام اعلام کند که نمرات درس Y اعلام شد، اولا این تعداد دانشجو هر چند وقت یک بار به سامانه مراجعه نکرده، ثانیا زمانی هم که مراجعه میکنند نمرات آنها اعلام شده درنتیجه تمام منابع و انرژی ای که برای درخواست آنها مصرف میشود، هدفمند است، حال این ساختار را برای حالت های بسیار سنگین و بزرگ نظر بگیرید!

۵- اعلام زمان دقیق اعلام نتایج

بسیاری از سامانه ها، برای اعلام نتایج، هیچ بازه زمانی را مشخص نمیکنند، یا اگر مشخص میکنند این بازه زمانی بسیار طولانی است، به عنوان مثال ۳۰ روز، در این مدت تعداد کاربران زیادی به سامانه مراجعه کرده و سبب افزایش بار ترافیکی میشوند، با این وجود میتوان بازه زمانی را یک هفته در نظر گرفت.

مثال: اگر بازه ۳۰ روز باشد و هر نفر فقط روزی یک بار به سامانه مراجعه کند، اگر مبنا را اعلام نتیجه در روز ۱۵ ام قرار دهیم، ۱۵ درخواست به سامانه ارسال میکند اما اگر بازه تعیین شده ۷ روز باشد و مبنای اعلام نتیجه روز ۴ ام باشد تنها ۴ درخواست ارسال میشود حتی اگر روز آخر اعلام شود باز تعداد درخواست ها ۷ عدد می باشد!

۶- استفاده از api درون سامانه ها

ای پی آی(api) این امکان را فراهم میکند تا بتوانیم از اطلاعات و امکانات سامانه ها و برنامه ها درون برنامه های دیگر استفاده کنیم. اگر تیم تولید و توسعه این گونه سامانه ها یک سری api استفاده کنند به راحتی میتوان از بار کاری و ترافیک کم کرد. به عنوان مثال یک برنامه بسیار ساده و متصل به اینترنت که اگر استاد یک نمره را برای درسی اعلام کرد، درون آن برنامه یک متن به عنوان” استاد x نمره درس Y را اعلام کرد” نمایش داده شود، این ساختار بسیار ساده و کم هزینه میباشد، این برنامه میتواند هر یک ساعت یک بار قسمت اعلام نمره یک درس را چک کند. در این حالت ۲۴ درخواست در یک روز بسیار بهتر از ۱۵۰ درخواست در طول روز است!

۷- استفاده از نسخه موبایل و نسخه دستکتاپ برای هر سامانه

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

۸- عدم استفاده از متد ها و استاندارد های روز دنیا

ما ایرانی ها، خودمان را هم بکشیم همیشه از تکنولوژی و متدولوژی ها جدید عقب بوده و خیلی دیرتر از آنها استفاده میکنیم، کاری به علت این امر نداریم، ولی زمانی که آخرین نسخه یک برنامه مثلا نسخه شماره ۲۰ است، چه لزومی دارد از نسخه ۱۰ استفاده کنیم؟ همین امر سبب میشود تا در طراحی و کد نویسی از ساختار های پیچیده و سنگین به صورت ناخواسته استفاده کنیم.

۹- عدم استفاده از تجربه کاری

شاید اگر از یک تیم طراحی و توسعه یک سامانه دانشگاهی بپرسید آیا نظرات دانشجویان را در مورد این سامانه میدانید؟ در جواب به شما فقط میخندند و میگویند دانشجو چه میداند سامانه چیست؟!!! دانشجو چه میداند چه بهتر است یا چه بدتر؟!!! ولی واقعا باید برای این گونه افراد تاسف خورد! حقیت امر این است که بسیاری از ایده ها توسط همین افراد معمولی و غیر مرتبط بیان میشود.

۱۰- نظر سنجی از کاربران و متخصصان کامپیوتر
در هر سازمان, اداره یا دانشگاهی, یک سری افراد متخصص، آشنا با کامپیوتر و یا دانشجو وجود دارند, ای کاش هر چند وقت یک بار, مثلا هر شش ماه یا هر یک سال یک بار, یک نظر سنجی, و فرم پیشنهاد برای تمام افراد, یا حداقل گروهی ارسال میشد و به نظرات و پیشنهادات آنها کمی فکر میکرد, شاید باور نکنید ولی افراد یک سری ایده و پیشنهاد دارند که شاید به نظر خود افراد مسخره یا کم اهمیت باشند ولی در بیشتر مواقع شاهد تحولات شگرف و حل مساعل بسیار پیچیده میشود
بیشتر افراد از دیدگاهای خودشان به قضیه نگاه میکنند و یک نظر و پیشنهاد شاید معمولی ممکن است راه حل مسعله ای بسیار پیچیده در مباحث کامپیوتر و سامانه های آنلاین باشد.
برای تشویق و ترغیب شرکت کنندگان میتوان یک سری هدایا را در نظر گرفت, مثلا به پنج پیشنهاد برتر و برگزیده مبلغ x تعلق میگیرد.

۱۱- حذف درخواست های بی معنی
یک سیستم دانشگاهی وجود دارد که اگر دانشجویی بخواهد نمره یک درس در ترم جاری خود را مشاهده کند باید حدود ده عدد لینک و مرحله را پشت سر بگذاریم, این یعنی یک سری درخواست که بی جهت به سرور سامانه ارسال و سبب افزایش بار کاری بی ارزش و در نهایت افزایش ترافیک میشود. به راحتی میتوان این ساختار را ساده کرده و از افزایش درخواستها جلوگیری کرد.

۱۲- عدم دسترسی به سرویس های خودکار و هوش مصنوعی
شاید باور نکنید که بسیاری از افراد غیر مجاز همیشه سعی داشته که سامانه های پرکاربرد را خراب کنند, یا به اصطلاح آنها را down کنند, این افراد یا ربات های کامپیوتری سبب افزایش بار کاری و درخواست های زیاد به سرور بوده و تنها سبب افزایش بار کاری میشوند.

۱۳- استفاده از سرویس های ضد حملات dos و ddos
به زبان ساده حملات داس و دی داس سبب ارسال حجم عظیمی درخواست در یک مدت زمان کم به سرور یا سامانه می باشد.
مثلا یک سامانه دانشگاهای که حدود ۵۰۰ هزار کاربر فقط به عنوان دانشجو دارد اگر هر دانشجو فقط ۵ درس داشته باشد و بخواهد برای هر درس ۳بار به سامانه مراجعه کند, و در هر بار مراجعه  تنها ۲درخواست به سرور ارسال کند با یک حساب ساده به  حدود ۱۵ میلیون درخواست میرسیم!

حال اگر برای هر درخواست ده کیلوبایت اطلاعات پردازش و رد و بدل شود تقریبا ۱۴۰ گیگابایت حجم میباشد, خب شاید بگویید که این حجم که در یک لحظه به سرور ارسال نمیشود و کاربران این حجم و درخواست را در مدت چند روز ارسال میکنند ولی متاسفانه در حملات داس و داس توزیع شده(d-dos), حجم و درخواستی چند برابر در مدت زمان بسیار کمی به سرور ارسال میشود و این برای سامانه و وب سایت ما بسیار بد می باشد. نمونه سرویس های ضد این حملات کلود فلر

۱۴- قابلیت تغییر ساختار به وسیله کاربر
اگر مدیر تولید و توسعه, یا هر عامل دیگری اجازه نمیدهد سامانه سبک و بدون گرافیک باشد, با یک گزینه ساده میتوان این امکان را به کاربر داد تا بتواند تنها با یک کلیک رابط کاربری سامانه را از حالت ساده به گرافیکی تغییر وضعیت دهد. این حالت در اغلب موارد بسیار بسیار کاربر پسند می باشد.

۱۵- توجه به جزییات
جزییات همان طور که از نامش پیداست, موارد غیر ضروری و کم اهمیت را نشان میدهد, به عنوان مثال وقتی یک دانشجو بر روی گزینه کارنامه کلیک میکند, تجربه ثابت کرده است که اغلب به دنبال کارنامه جاری است, با این حال میتوان ساختاری طراحی کرد که با کلیک بر روی کارنامه, صفحه هدف پیش فرض کارنامه جاری باشد, در غیر اینصورت در همان صفحه میتواند به سایر کارنامه های دیگر دسترسی پیدا کند.
این عمل سبب کاهش ترافیک میشود

این پست به مرور آپدیت میشود؛ اگر راه حلی هر چند ساده به نظر شما میرسد، بیان کنید تا با نام خودتان در سایت دنیای آی تی منتشر شود.

 

درباره امید علیمحمدی

این مطالب را نیز ببینید!

پر شدن ناگهانی فضای هاست+ تنظیم و حذف فایل error_log

هاست چیست؟ به زبان بسیار ساده یک مقدار فضا بر روی یک کامپیوتر که به …

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *