saeid raei
saeid raei
خواندن ۲ دقیقه·۳ سال پیش

مقایسه‌ی haproxy و traefik (طبق تجربه من در پروداکشن)

اول از همه این نکته رو در نظر بگیرید این مقایسه نظر من طبق تجربه‌ی شخصی‌ای هست که با این reverse proxy ها داخل پروداکشن داشتم.

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

مزایای haproxy

  • پرفرمنس عالی (تقریبا اصلا از سی پی یو استفاده نمیکنه! البته برای کیس من که باتلنک دیتابیس بوده همیشه تا حالا)
  • کانفیگ ساده
  • پر استفاده تر از traefik
  • پنل آمار built-in با فعال سازی راحت
  • داکیومنتیشن خوب با مثال و آموزش برای موارد پر استفاده
  • کانفیگ فایلش خودش یه زبان برنامه نویسیه که یادگیری آسونی داره

مزایای traefik

  • فعال کردن letsencrypt به صورت اتوماتیک
  • ساپورت کردن چندین بک اند مثل docker , kubernetes , docker swarm و … (من فقط با داکر و داکر کامپوز استفاده کردم)
  • قابلیت کانفیگ خارجی برای داکر با استفاده از label ها‌ی کانتینر ها.(میتونید کانفیگ های مخصوص هر پروژه رو داخل همون پروژه نگه دارید و reverse proxy تون از پروژه ها اصلا خبر نداشته باشه)

معایب haproxy

  • عدم امکان تولید اتوماتیک گواهینامه‌ی letsencrypt به صورت پیشفرض
  • ریورس پروکسی کافیگش نمیتونه مثل traefik داینامیک باشه که هر پروژه تنظیمات ریورس پروکسیش هم داخل خودش باشه

معایب traefik

  • یادگیریش زمانبر تر از haproxy هست و کانفیگ هاش پیچیده تره ، در کل ستاپ کردنش زمان بیشتری میبره.
  • برای مشاهده آمار هاش مراحل بیشتری باید طی بشه ،‌اول داخل خود traefik باید فعال بشه و بعد از یه سیستم خارجی استفاده بشه که ازش استفاده کنه.
  • منابعش داخل اینترنت کمتر هست چون کمتر از haproxy استفاده میشه.
  • اگه بخواید از لود بالانسرش استفاده کنید دیگه سیستم لیبل های کانتینر های داکر جوابگوی کار شما نیست.
  • کانفیگ فایلش از نوع فایل yaml هست که تا یه حدی لازم نمیشه سراغش برید ولی اگه مجبور بشید ازش استفاده کنید خیلی جذاب نیست.

حرف آخر

در کل به نظر من اگه قراره load balancing داشته باشید haproxy خیلی سرتره ولی اگه از ریورس پروکسی استفاده میکنید که ساختار داکرتون تمیز باشه یا کلا لود بالانسینگ ندارید traefik میتونه انتخاب بهتری باشه. اگه هم ایده ای ندارید من haproxy رو پیشنهاد میکنم.

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

در پایان ازتون می خوام که اگه نکته ای بود یا جایی با من مخالف بودید حتما نظرتون رو درمیون بذارید.

شاید از این پست‌ها خوشتان بیاید