اطلس نیکو

۵ توانایی لود بالانسر نرم افزاری

دسته بندی ها : مقالات شبکه 29 اکتبر 2021 siteadmin 1876 بازدید
5 مزیت لود بالانسر نرم افزاری

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

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

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

انواع لود بالانسر

قبل از اینکه انواع مختلف لود بالانسر را بررسی کنیم، ابتدا باید شباهت آنها را در نظر بگیریم. همه متعادل کننده های بار از الگوریتم هایی برای توزیع ترافیک استفاده می کنند. همانطور که گفته شد، همه متعادل کننده های بار از الگوریتم های یکسانی استفاده نمی کنند. برخی از الگوریتم های مختلف مورد استفاده در زیر ذکر شده است:

الگوریتم Round-Robin: درخواست به صورت متوالی بین تمام سرورها توزیع می شود.
Weighted Round-Robin: این همان Round-robin است، اما در اینجا برخی از سرورها سهم بیشتری از ترافیک کلی را بر اساس وزن تعریف شده برای هر سرور دریافت می کنند.
کمترین اتصال: درخواست به سروری که کمترین تعداد اتصال را دارد ارسال می شود.
حداقل زمان پاسخگویی: درخواست به سروری که کمترین زمان پاسخگویی را دارد ارسال می شود.
در بزرگ ترین مفهوم، لود بالانسر را می توان به دو دسته تقسیم کرد: متعادل کننده بار مبتنی بر سخت افزار و نرم افزار. هدف هر دو نوع متعادل کننده بار، توزیع حجم کار و افزایش قابلیت اطمینان و در دسترس بودن منابع است. تهیه متعادل کننده های بار نرم افزاری و سفارشی سازی آنها از طریق استفاده از کنسول های تعاملی آسان است. هر دو نوع بار متعادل کننده از مکانیسم های مسیریابی و الگوریتم های زمان بندی متفاوتی استفاده می کنند. تفاوت عمده بین دو نوع متعادل کننده بار ظرفیت، مجموعه ویژگی ها و معماری برنامه است.

متعادل کننده بار مبتنی بر سخت افزار

Hardware Load Balancers، لود بالانسر های مدل OSI لایه ۴ و لایه ۷ هستند که برای متعادل کردن ترافیک بین سرورها استفاده می شوند. اینها سیستم های اختصاصی هستند که هدف اصلی آنها متعادل کردن ترافیک بین منابع در حال سرویس است. از سرورهای لایه ۴ برای تونل زنی و مسیریابی استفاده می شود. از سرورهای لایه ۷ برای تشکیل یک شبکه تحویل استفاده می شود. مثال معروف یک متعادل کننده بار مبتنی بر سخت افزار F5 است.

لود بالانسر های مبتنی بر نرم افزار

متعادل کننده های بار مبتنی بر نرم افزار را می توان به دو دسته کلی تقسیم کرد: لود بالانسر قابل نصب و متعادل کننده بار به عنوان سرویس (LBaaS). چند نمونه از نرم افزارهای قابل نصب بار متعادل کننده عبارتند از: Nginx، Varnish، HAProxy و LVS. این بار متعادل کننده ها نیاز به نصب، پیکربندی و همچنین مدیریت دارند. کاربر باید برای تحمل خطا و مقیاس‌گذاری بار متعادل کننده برنامه‌ریزی کند. LBaaS مانند AWS ELB و Stratoscale LBaaS. آنها توسط ارائه دهندگان ابر مدیریت می شوند و تحمل خطا، کشش، نصب و مدیریت ذاتی را ارائه می دهند.

متعادل‌کننده‌های بار مبتنی بر نرم‌افزار بر اساس الگوریتم‌های مسیریابی به‌عنوان متعادل‌کننده‌های Weighted Scheduler، Round-robin Scheduler و Least Connections First Scheduler طبقه‌بندی می‌شوند.

متعادل کننده های بار وزنی زمانی استفاده می شوند که منابعی از انواع مختلف داشته باشیم. به عنوان مثال، ما سه سرور با مقدار محاسبات و حافظه متفاوت داریم. در چنین حالتی، هدایت ترافیک بیشتر به سمت سرورهایی که میزان محاسبات و حافظه بالاتری دارند، ایده آل خواهد بود. سایر سرورها ترافیک کمتری دریافت خواهند کرد. یک نمونه از آن، متعادل کننده بار وزنی فورتینت است
متعادل کننده های بار گردی زمانی مفید هستند که سرورهایی با مقدار محاسبات و حافظه مشابه داشته باشیم. این متعادل کننده ها از رویکرد الگوریتم Round Robin پیروی می کنند و درخواست ها به صورت متوالی به هر سرور یک به یک ارسال می شوند. به عنوان مثال می توان به AWS Application Load Balancer و AWS Classic Load Balancer اشاره کرد.
Last Connections First Balancers بر اساس الگوریتم اول حداقل اتصال کار می کند. طبق این الگوریتم درخواست به سرورهایی که کمترین تعداد اتصال را دارند ارسال می شود. این متعادل کننده ها در سناریوهایی استفاده می کنند که می خواهیم جلسات چسبناک را مدیریت کنیم. جلسات چسبنده در برنامه‌هایی مدیریت می‌شوند که جلسه هر کاربر را از طریق متعادل کننده بار مدیریت می‌کنند. نمونه آن Citrix NetScaler است.

انتخاب های لود بالانسر

این بخش به برخی از متعادل کننده های بار مبتنی بر نرم افزار مختلف که امروزه از ارائه دهندگان خدمات مختلف ارائه می شود، نگاه می کند. از بین دو نوع، قابل نصب و LBaaS، خواهیم دید که انتخاب بسیار بزرگتر و سازگارتر در بین گزینه های LBaaS وجود دارد.

وقتی صحبت از متعادل کننده های بار قابل نصب می شود، HAProxy وجود دارد. این یک متعادل کننده بار منبع باز مبتنی بر TCP و HTTP است که برای وب سایت های با ترافیک بسیار بالا مناسب است. بسیار سریع است و به زبان C نوشته شده است. نرم افزارهایی مانند bitbucket، GitHub و speedtest.net از این نوع متعادل کننده بار استفاده می کنند. HAProxy را می توان بر روی Linux، Solaris و FreeBSD اجرا کرد.

در بین نوع LBaaS، AWS دو محصول متفاوت دارد. AWS Classic Load Balancer ترافیک بار ورودی را به نمونه های سالم AWS EC2 منتقل می کند. از شنوندگان TCP و SSL پشتیبانی می کند و جلسات چسبنده نیز پشتیبانی می شوند. همچنین از بررسی های سلامت TCP پشتیبانی می کند. نمونه های AWS EC2 بر اساس بررسی های سلامت TCP سالم در نظر گرفته می شوند. همچنین می توانید تعادل بار متقاطع را اجرا کنید. پیشنهاد دیگر AWS Application Load Balancer است. این بار متعادل کننده ها از این جهت که در سطح لایه کاربردی کار می کنند با بار متعادل کننده های کلاسیک متفاوت هستند. نمونه های زیر گروه های هدف مرتبط با متعادل کننده بار هستند. گروه های هدف چیزی جز نمونه های AWS EC2 نیستند که بر اساس بررسی های سلامت برنامه، سالم در نظر گرفته می شوند.

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

۵ مزیت کلیدی لود بالانسر نرم افزاری

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

۱٫ قابلیت برنامه ریزی

لود بالانسر نرم افزار قابل برنامه ریزی هستند، به این معنی که پارامترهای پیکربندی آنها را می توان بر اساس آن تغییر داد و برخلاف یک متعادل کننده بار سخت افزاری، این تغییرات بلافاصله انجام می شود. شما می توانید بررسی های سلامت خود را پیکربندی کنید و در صورت لزوم آنها را در زمان واقعی تغییر دهید. به عنوان مثال، این برای اجرای گواهی‌های SSL بر روی متعادل‌کننده‌های بار برای درخواست‌های مسیر مختلف یا پیکربندی کل گروه‌های هدف مفید است. می‌توانید از CLI‌های مختلف برای برنامه‌ریزی این متعادل‌کننده‌ها استفاده کنید.

مزایای این برنامه ریزی بسیار زیاد است. اسکریپت های خودکار را می توان برای تغییر تنظیمات یک متعادل کننده بار نوشت. بررسی های سلامت را می توان نه تنها در سطح برنامه، بلکه در سطح شبکه نیز پیکربندی کرد. نمونه های مورد نظر می توانند سرورها یا کانتینرهای متصل شده باشند. همچنین می‌توانید کد بررسی وضعیت را تغییر دهید تا نمونه‌ها را سالم در نظر بگیرید. به عنوان مثال، یک نمونه API فقط زمانی باید سالم در نظر گرفته شود که URL بررسی سلامت کد HTTP 401 را برمی گرداند، در حالی که یک نمونه APP با کد HTTP 200 سالم در نظر گرفته می شود. همچنین به شما انعطاف پذیری می دهد تا سرورها یا نمونه های مشابهی را در پشت متعادل کننده های بار مختلف قرار دهید. . مکانیسم های نظارت بر سلامت با استفاده از پینگ یا SNMP می تواند برای توزیع ترافیکی که از تنگناها جلوگیری می کند استفاده شود. از آمار و معیارهای نظارت نیز می توان برای نظارت بر سلامت بار متعادل کننده ها و انجام اقدامات مناسب با استفاده از اسکریپت های خودکار استفاده کرد.

۲٫ ذاتا مقیاس پذیر

متعادل کننده های بار در زمان واقعی مقیاس پذیر هستند. مقیاس پذیری به عنوان توانایی مدیریت حجم زیادی از ترافیک در زمان واقعی با افزایش تقاضای شبکه و پردازش تعریف می شود. برای متعادل‌کننده‌های بار مبتنی بر سخت‌افزار، به دلیل محدودیت‌های فیزیکی لوازم سخت‌افزاری، مقیاس‌پذیری فراتر از یک حد معین، همیشه یک چالش است. در مقابل، متعادل کننده های بار مبتنی بر نرم افزار ذاتا مقیاس پذیر هستند و می توانند صدها هزار درخواست همزمان را انجام دهند. متعادل کننده های بار مبتنی بر نرم افزار را می توان از قبل در برابر افزایش ناگهانی گرم کرد. این بار متعادل کننده ها مقیاس پذیر هستند زیرا از منابع سرور x86 به جای سخت افزار اختصاصی جداگانه استفاده می کنند. AWS ELB می‌تواند با مقیاس خودکار برای افزودن و ثبت سرورها به صورت پویا کار کند. در مثالی که در زیر نشان داده شده است، مواردی که در پشت بار متعادل کننده اجرا می شوند، با افزایش ترافیک افزایش می یابند و زمانی که ترافیک کاهش می یابد، کاهش می یابند.

image1 4 - 5 توانایی لود بالانسر نرم افزاری

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

۳٫ کاهش هزینه

کاهش هزینه یکی از مزایای اصلی نرم افزارهای متعادل کننده بار است. آنها بیشتر شبیه OPEX به جای متعادل کننده های بار سخت افزاری هستند که CAPEX در نظر گرفته می شوند. خرید بالانسر ها آسان است و با هزینه بسیار کمتری در دسترس هستند. با استفاده از ارائه دهندگان ابری، می توانید هر تعداد بار متعادل کننده را که می خواهید تهیه کنید و بسیار کمتر هزینه کنید. همچنین مشکل تامین کم و بیش از حد بار متعادل کننده ها حل شده است. بر خلاف متعادل کننده های بار سخت افزاری که نصب آن ها دشوار است و نیاز به هزینه زیادی برای راه اندازی دارند، بار نرم افزاری را می توان با استفاده از یک کنسول تعاملی یا CLI تهیه کرد. ارائه دهندگان مختلف ابر همچنین یک پلت فرم ارزان قیمت برای آزمایش برنامه های کاربردی با منابع فشرده ارائه می دهند. به عنوان مثال، یک بار متعادل کننده در AWS فقط ۱۸ دلار در ماه هزینه دارد و با استفاده ساعتی شارژ می شود.

۴٫ امنیت برنامه

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

۵٫ استقرار بر اساس تقاضا

یکی از بزرگترین مزیت های لود بالانسر نرم افزاری این است که می توان آنها را در صورت تقاضا مستقر کرد. چه از یک متعادل کننده بار قابل کلیک و آماده استفاده مانند AWS ELB یا HAProxy یا NGINX مبتنی بر کد برای نصب بر روی یک نمونه، کانتینر یا سیستم عامل مختلف استفاده کنید، متعادل کننده های بار را می توان در زمان کوتاهی مورد استفاده قرار داد. استقرار بر اساس تقاضا برای یک سازمان راه اندازی که هدف اصلی آن ارائه یک محصول مقیاس پذیر با هزینه بسیار کمتر است بسیار مفید است. این لود بالانسر همچنین می توانند برای بارگذاری تعادل ترافیک در نمونه های داخلی و ابر استفاده شوند. متعادل کننده های بار مانند متعادل کننده های بار برنامه از مسیریابی مبتنی بر مسیر و برنامه های کانتینری پشتیبانی می کنند. قوانین برای شنونده شما را می توان به گونه ای پیکربندی کرد که درخواست ها بر اساس URL موجود در درخواست ارسال شوند. به عنوان مثال، تمام درخواست‌های دامنه www.abc.com/url به یک نمونه متفاوت و به www.abc.com/ اشاره می‌کنند.

نتیجه

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

رایج ترین مزایا شامل ساده سازی لود بالانسر نرم افزاری، ساخت برنامه های کاربردی بسیار مقیاس پذیر و قابل اعتماد و ایجاد امنیت است. انواع مختلفی از متعادل کننده های بار وجود دارد که توسط ارائه دهندگان مختلف ابری ارائه می شوند. متعادل کننده بار مانند Stratoscale LBaaS نه تنها تعادل بار را فراهم می کند بلکه امنیت و سازگاری را برای برنامه های کاربردی وب حیاتی نیز پیاده سازی می کند. Stratoscale LBaaS با توانایی مدیریت سطوح مختلف پروتکل ها و همچنین پشتیبانی از ابزارهای ارکستراسیون مانند Kubernetes، Docker، Swarm و موارد دیگر، به شما امکان می دهد میزبانی برنامه بسیار در دسترس را بر روی نمونه ها و توانایی انجام این کار در یک محیط کانتینری ارائه دهید.

 

siteadmin

راه آسان‌تری برای ارتباط با کاربران‌مان پیدا کرده‌ایم :) عضویت در کانال

مطالب زیر را حتما بخوانید:

قوانین ارسال دیدگاه در سایت

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

نظرات کاربران

    متاسفیم! برای ثبت دیدگاه باید وارد شوید!

    لینک کوتاه :
    0