Parsa Rezaei
Parsa Rezaei
خواندن ۲ دقیقه·۳ ماه پیش

Kong API Gateway

سلام،

توی این قسمت من توضیح کوتاهی بابت Keycloak داده بودم و قراره که این مقاله راجب Reverse Proxy صحبت کنم که من توی پروژه ای که کار میکردم اومدم این دو رو باهم integrate کردم.

مدیریت ترافیک API ها با Kong API Gateway بهتون کمک میکنه که نظارت خوبی روی درخواستی هاتون داشته باشید. امتیازات خیلی خوبی داره این ابزار مثل Rate Limiting, احراز هویت، CORS و همچنین لاگ گرفتن از درخواست هایی که سمت شما میاد.

حالا ترکیب شدنش با Keycloak چه کمکی میکنه؟

اول از همه یه مثال عامیانه ای بابت اینکه چرا از keycloak و kong استفاده کردم میگم که یه جورایی متوجه قضیه بشیم که چه اتفاقاتی توی پروژه میوفته:)

فرض کنید یه شهر بزرگ داریم که چندین مغازه (میکروسرویس‌ها) توش فعالیت می‌کنن. هر کدوم از این مغازه‌ها وظیفه خاص خودش رو داره؛ یکی فروش مواد غذاییه، یکی کتاب می‌فروشه، و یکی لباس. حالا اگه مردم بخوان وارد این مغازه‌ها بشن، یه ورودی اصلی توی شهر هست که هم جلوی شلوغی و ترافیک رو می‌گیره و هم کنترل می‌کنه که کی وارد شهر بشه. این ورودی اصلی همون Kong API Gateway هست.

- وظیفه Kong حالا چیه؟

مثل دروازه ورودی اصلی شهره. وظیفه داره که:

  1. کنترل کنه کی وارد شهر می‌شه: یعنی ترافیک درخواست‌ها رو مدیریت کنه. هر کسی که می‌خواد وارد یه مغازه (میکروسرویس) بشه، باید اول از این دروازه عبور کنه.
  2. محدودیت تعداد بازدیدکننده‌ها: اگه یه مغازه خیلی شلوغ بشه و ترافیک سنگین واردش بشه، Kong می‌تونه بگه: "صبر کن، تو فعلاً نمی‌تونی وارد بشی تا ترافیک کمتر بشه." این همون Rate Limiting هست.
  3. امنیت: Kong می‌تونه قبل از اینکه کسی وارد بشه چک کنه که این آدم اجازه ورود به مغازه رو داره یا نه. اینجا هست که Keycloak وارد می‌شه.

- حالا فرض کنید که همون شهر یه نگهبان امنیتی (Keycloak) داریم که در واقع کارت شناسایی همه آدم‌ها رو نگه می‌داره. اگه کسی بخواد وارد یه مغازه خاص بشه (یعنی درخواست استفاده از یه میکروسرویس خاص رو بده)، Kong می‌ره پیش این نگهبان (Keycloak) و می‌پرسه: "این فرد اجازه ورود داره؟" Keycloak کارت شناسایی طرف رو چک می‌کنه و اگه اجازه داشت، اجازه ورود به اون مغازه رو می‌ده.(اینجا کارت شناسایی میشه توکنی که به هر شخص اختصاص داده میشه)

چنین ابزار هایی خیلی میتونن کمک بکنن روی پروژه ای که قرار هست میکروسرویس باشه، و قرار هستش که با درخواست های به شدت زیادی مواجه بشین و نخواین بار سنگینی روی دوش Django بذارید.

رفرنس های خوبی من بابتش پیدا کردم که پایین میذارم و اگر منابع بهتری پیدا کردم، پست رو آپدیت میکنم.

این نیمچه مقاله رو برای این نوشتم که بخوام شما هم با این ابزار آشنا بشید و امیدوارم به کارتون بیاد;)

تلاشمو میکنم که یک داکیومنت خوبی بابت راه اندازی Keycloak و Kong داخل پروژه Django بنویسم .



گیت هاب Kong API Gateway

گیت هاب Securing APIs with Kong and Keycloak

api gatewaydjango
یه برنامه نویس ساده که جنگو کار میکنه و جدیدا هم تصمیم گرفته راه دواپس رو پیش ببره:)
شاید از این پست‌ها خوشتان بیاید