ویرگول
ورودثبت نام
علی علیمحمدی
علی علیمحمدیمن یک Backend Developer هستم که دوست دارم توی مسیر یادگیری و تجربه رشد کنم. ساختن ، همیشه برام هیجان‌انگیزه و تلاش می‌کنم هر روز چیز جدیدی یاد بگیرم 🌱
علی علیمحمدی
علی علیمحمدی
خواندن ۱ دقیقه·۱ ماه پیش

ساخت یک CLI برای مدیریت Port-Forwarding؛ از نیاز شخصی تا یک ابزار عمومی

توی پروژه‌های مختلفم همیشه یک دردسر تکراری داشتم: برای کار با چند سرویس و دیتابیس داخل Kubernetes باید مدام چندین تب ترمینال باز می‌کردم و برای هرکدام جداگانه port-forward می‌زدم. از همه بدتر، اگر یکی از این‌ها قطع می‌شد باید دوباره دستی رانش می‌کردم.

این روند نه قابل مدیریت بود، نه مقیاس‌پذیر، نه حتی قابل اعتماد.

به همین خاطر تصمیم گرفتم یک ابزار کوچیک ولی کاربردی با Go بنویسم؛ هم برای یادگیری بیشتر، هم برای اینکه کار روزمره‌ام ساده‌تر شود. نتیجه‌اش یک CLI ساده، ماژولار و قابل‌اتکا شد که این قابلیت‌ها را فراهم می‌کند:

  • اضافه کردن بی‌نهایت سرویس برای port-forward

  • اجرای همزمان چندین forward فقط با یک دستور

  • مشاهده‌ی وضعیت همه‌ی سرویس‌ها در یکجا

  • Reconnect خودکار در صورت قطع شدن کانکشن

  • ساختار تمیز، قابل‌گسترش و مناسب استفاده روزمره

هدفم این بود که از این نقطه ضعف کوچک در جریان کاری‌ام، یک ابزار عمومی بسازم که شاید برای بقیه‌ی مهندس‌ها هم مفید باشد.

در نهایت تصمیم گرفتم پروژه را اوپن‌سورس کنم تا اگر کسی خواست امکانات جدید اضافه کند، ایرادی پیدا کرد یا ایده‌ای داشت، بتوانیم هم‌افزایی کنیم.

لینک پروژه و توضیحات بیشتر را در ریپوی گیت‌هاب گذاشته‌ام. خوشحال می‌شوم اگر استفاده کردید، نظر یا PR بگذارید.

https://github.com/alinemone/go-port-forward

gocli
۱
۰
علی علیمحمدی
علی علیمحمدی
من یک Backend Developer هستم که دوست دارم توی مسیر یادگیری و تجربه رشد کنم. ساختن ، همیشه برام هیجان‌انگیزه و تلاش می‌کنم هر روز چیز جدیدی یاد بگیرم 🌱
شاید از این پست‌ها خوشتان بیاید