یکی از سریعترین و سادهترین راهها برای بهبود قابلیت دسترسی پذیری (High availability) و افزایش عملکرد برنامهها، استفاده از لود بالانسها (Load balance) است. که در زاگریو قصد داریم تا 10 لود بالانس اوپن سورس و رایگان را برای شما توضیح دهیم.
در یک تقسیم بندی، ما سه نوع لود بالانسر (Load balancer) داریم:
- سخت افزاری
- بر پایه تکنولوژی ابری
- نرم افزاری
لود بالانسر سختافزاری، یک وسیله اختصاصی برای تأمین توزیع load است و از ویژگیهای مربوطه برخوردار است. برخی از سازندگان محبوب لود بالانسر سخت افزاری LB، عبارتند از:
- F5
- TP-Link
- Barracuda
البته باید در نظر داشته باشید که این سخت افزار گران قیمت است، ولی به شما کنترل کاملی بر فرایند لود بالانس میدهد.
از سوی دیگر لود بالانسرهای مبتنی بر تکنولوژی ابری، بیش از پیش بر سر زبانها افتادهاند، از مزایای این نوع لود بالانسرها، میتوان به قیمت فوقالعاده رقابتی آنها اشاره نمود، که از یک قائده جالب استفاده میکنند و آن هم این است که هرچقدر که استفاده میکنی هزینه بپرداز!
تعداد از ارائه دهندههای سرویس لود بالانس مبتنی بر تکنولوژی کلود (Cloud) یا ابری از شرکتهای زیر میباشند:
- AWS
- Google Cloud
- Cloudflare
- Incapsula
- DigitalOcean
- Azure
و میتوانید از خدمات این شرکتها با قیمت پایه 20 دلار ماهانه استفاده کنید.
در آخر به سراغ لود بالانسرهای نرمافزاری میرویم که نیاز است شما آنها را نصب و پیکربندی نمایید، تعدادی از این نرم افزارها رایگاناند و اگر میخواهید یک راه حل رایگان و اوپن سورس را تجربه کنید، خواندن مقاله ما را از دست ندهید.
seesaw
لود بالانسر مورد استفاده گوگل، یک لود بلانسر مجازی مبتنی بر سیستم عامل لینوکس، این لود بالانسر به زبان Go توسعه یافته است و در توزیع Ubuntu / Debian به خوبی کار میکند. از anycast ،DSR پشتیبانی میکند و به دو نود Seesaw نیاز دارد. آنها میتوانند فیزیکی یا مجازی باشند.
لازم به ذکر است که Seesaw با شبکههای لایه چهار کار میکند، بنابراین اگر به دنبال ایجاد لود بالانس در لایه هفت هستید، ممکن است بخواهید گزینه دیگری را جستجو کنید.
LoadMaster by KEMP
یک کنترل کننده تحویل برنامه که بصورت رایگان توسط KEMP ارائه شده و از همه hypervisor اصلی پشتیبانی میکند. میتوانید آن را در دیتاسنتر خود نصب کنید یا بر روی پلتفرمهای ابری مانند Azure یا AWS نصب و راه اندازی نمایید.
KEMP با اینکه رایگان است، اما تعدادی از بهترین ویژگیهای نرم افزارهای شرکتی این رده را با خود دارد.
- لود بالانس لایه 4 تحت TCP/UDP با استفاده از الگوریتمهای round robin یا least connection
- لود بالانس برای اتصال لایه 7
- فایروال داخلی برای وب اپلیکیشنها
- موتور پیشگیری از نفوذ داخلی (IPS)
- لود بالانس (Load Balance) با پشتیبانی از چند سایت
- ذخیره سازی ، فشرده سازی محتوا، سوئیچینگ محتوا
- ماندگاری کوکیهای سایت
- IPSec tunneling
KEMP LB توسط برخی از برندهای بزرگ مانند اپل، سونی، JP مورگان، آئودی، هیوندای و غیره استفاده میشود. نسخه رایگان ویژگیهای کافی را فراهم میکند. با این حال، اگر به موارد بیشتری نیاز دارید، میتوانید لایسنس تجاری آنها را بررسی کنید و در صورت نیاز خریداری کنید.
HAProxy
یکی از محبوبترینهای موجود در بازار برای ایجاد لود بالانسHAProxy است، که قابلیتهایی نظیر: TCP / HTTP، قابلیت دسترسی بالا و پروکسی را دارد. HAProxy توسط برخی از برندهای مشهور جهان مانند زیر استفاده میشود.
- Airbnb
- GitHub
- Imgur
- MaxCDN
از ویژگیهای خوب این نرم افزار را میتوان به موارد زیر اشاره کرد:
- پشتیبانی از IPv6 and UNIX socket
- فشرده سازی Deflate & Gzip
- بررسی سلامت
- Source-based session stickiness
- گزارش آماری داخلی
ZEVENET
از L3 ،L4 و L7 پشتیبانی مینماید و سورس کد آن موجود است، و حتی ریپازیتوری داکر و ایمیج iOS آن نیز در دسترس میباشد. ZEVENET از نظارت پیشرفته بررسی سلامت پشتیبانی میکند، بنابراین سرور/سرویسهای معیوب برای ارائه تجربه کاربری یکپارچه از کار میافتند. Zevenet که قبلاً با نام Zen شناخته میشد با پروتکل مبتنی بر TCP مانند FTP ،SIP ،SSL ،HTTP و … به خوبی کار میکند.
Neutrino
نوترینو توسط eBay و با استفاده از Scala & Netty ساخته شده است. نوترینو از الگوریتمهای least connection و round-robin با ویژگیهای زیر عرضه شده است:
- از canonical names استفاده میکند
- Context-based
- L4 با استفاده از شماره های پورت TCP
نوترینو برای پاسخگویی به 300+ درخواست در هر ثانیه از طریق VM دو هسته ای آزمایش شده است. اگر شما در حال مقایسه نوترینو با HAProxy هستید، باید به یاد داشته باشید که یک مزیت عمده استفاده از نوترینو سوئیچینگ L7 است.
Balance
یک پروکسی TCP لود بالانس round-robin است که از IPv6 در قسمت listening پشتیبانی میکند. این بدان معنی است که شما می توانید IPv4 را در قسمت Front-end و IPv6 را در قسمت Back-end داشته باشید.
Balance همه ویژگیهای اساسی LB را دارد.
Pen
Pen بر روی Linux ،FreeBSD ،HP-UX ،Solaris ،Windows آزمایش شده است و میتوانید مطمئن باشید که بر دیگر نسخههای مبتنی بر Unix نیز کار میکند. از پروتکل های مبتنی بر UDP و TCP مانند HTTP ،SNMP ،DNS و … نیز پشتیبانی میکند.
برخی ویژگیهای Pen:
- فیلتر GeoIP
- SSL termination
- سازگاری با IPv4 & IPv6
Nginx
مشخصا به این فکر میکنید که Nginx یک وب سرور، پروکسی سرور و … است. اما Nginx اوپن سورس از تغییرات اساسی در سطح محتوای خود پشتیبانی میکند و میتواند مسیریابی را در چند سرور مجزا توزیع نماید.
Nginx Plus یک web application delivery مانند KEMPاست که شامل لود بالانس، ذخیره محتوا، وب سرور، WAF، نظارت و … میشود. این نرم افزار راه حل لود بالانس با بازده بالا برای نرم افزارهایی که حتی دارای چندین میلوین درخواست نیز هستند را ارائه میدهد.
Traefik
یک پر.کسی رزرو توسعه داده شده با زبان برنامه نویسی Go است، ترافیک از چنین سرویس بک اند مانند Amazon ECS, Docker, Kubernetes, Rancher پشتیبانی میکند.
این برنامه از Websockets ، HTTP / 2 ، تمدید خودکار گواهی SSL و این امکان را به شما میدهد که مدیریت بهتری بر سرور خود داشته باشید.
Gobetween
یک لود بالانسر با پشتیبانی از L4 TCP, TLS و UDP میباشد. که با سیستم عاملهای Windows, Linux, Docker, Darwin کار میکند، و شما حتی میتوانید این لود بالانسر را از سورس کد بسازید و در پیکربندی الگوریتم مورد نیاز خود برای لود بالانس را انخاب نمایید. الگوریتمهای قابل انتخاب:
- IP hash
- round robin
- Least bandwidth
- Least connection
- Weight
بر طبق بنچماکها Gobetween از HAProxy سریعتر است اما به سرعت Nginx Plus نمیباشد.
اگر به دنبال یک لود بالانسر برای L4 میگردید بنظر میرسد GObetween عملکرد خوبی دارد میتوانید آن را امتحان نمایید.
بدون دیدگاه