CodeCrafters
777 subscribers
90 photos
50 videos
41 files
170 links
Download Telegram
در این سری پست میخوایم بررسی کنیم api gateway در معماری میکروسرویس چکاری میکند


یک api gateway در واقع یک ابزار مدیریت api هستش که بین یک کلاینت و یک مجموعه از سرویس‌هایی بکند قرار میگیره

در این حالت یک کلاینت یک‌ برنامه است که روی دیوایس‌های کاربران میشنه و سرویس‌های بکند در سرورهای قرار دارند

یک api gateway جزو یک برنامه تحویل است (ترکیبی از سرویس‌هایی که یک برنامه کاربردی در اختیار کاربران قرار میده) و شبیه یک پروکسی معکوس (revers proxy) عمل میکنه که همه درخواست‌ها api رو‌ می‌پذیره و پاسخ میده، تجمیعی از خدمات مختلف مورد نیاز برای برای انجام دادن و بازگشت نتایج مناسب

در یک شکل ساده تر api gateway یک بخش از نرم افزار است که رهگیری میکنه تماس apiهارو از یک کاربر و مسیردهی میکنه این رو به سرویس مناسب


چرا از api gateway استفاده میکنیم؟
بیشتر apiهای سازمانی از طریق api gateway مستقر میشوند. معمولا api gateway هندل میکنه وظایف که استفاده میشوند در سرتاسر یک سیستم از سرویس‌های api، مانند احراز هویت کاربران، محدودیت نرخ و آمار گیری

در حالت ابتدایی یک api سرویس میپذیره یک درخواست بیرونی و برمیگردون یک پاسخ رو، اما حیات اون انقدر ساده نیست، نگرانی‌ در یک مقیاس بزرگ رو‌در نظر بگیرید:

شما میخواهید از apiهای خود در برابر سواستفاده و استفاده زیاد محافظت کنید

شما میخواهید بدونید که مردم چقدر از api شما استفاده میکنن و ابزارهای مانتیورینگ و تحلیل اضافه کنید

اگر یک api تجاری دارید شما میخواهید به یک سیستم صورتحساب متصل شوید

ممکنه شما یک معماری میکروسرویس اتخاذ کرده باشید در این صورت یک درخواست میتواند به تماس ده‌ها برنامه مجزا نیاز داشته باشد

با گذشت زمان شما سرویس‌های جدیدی بالا میاورید و سرویس‌هایی رو بازنشسته میکنید (در مبحث soa اشاره کردیم قبلا) اما مشتریان میخواهند تمامی سرویس‌های شما را در یکجا داشته باشند


چالش ما ارائه یک تجربه ساده و قابل اعتماد در مقابل این همه پیچیدگی به مشتریان است. یک api gateway راهی برای جدا کردن رابط مشتری از apiهای پیاده سازی شده است. هنگامیکه یک‌کلاینت درخواستی میده api gateway اون رو به چندین درخواست تقسیم میکنه، و مسیردهی میکنه به مکان‌های مناسب، یک پاسخ رو تولید میکنه و همه چیز رو پیگیری میکنه


نقش api gateway در مدیریت api:
یک api gateway یک بخش از سیستم مدیریتی است، این api gateway رهگیری میکنه تمامی درخواستهای ورودی رو و از طریق سیستم مدیریت ارسال میکنه، و تمامی توابع مختلف ضروری رو انجام میده

کاری که یک api gateway انجام می‌دهد از یک پیاده سازی تا انجام دیگری متفاوت است. برخی از توابع رایج شامل احرازهویت، مسیردهی، نرخ محدودیت، صورتحساب، مانیتورینگ، تحلیل، سیاست گذاری، هشدارها و امنیت است. api gateway فراهم میکنه این منافع رو:

کاهش تاخیر:
با توزیع درخواست‌های دریافتی و بارگذاری وظایف رایج مانند خاتمه SSL و ذخیره سازی، api gateway با بهینه کردن مسیریابی ترافیک و توزیع در سرتاسر سرویس‌های بکند به اطمینان از عملکرد بهینه و مصرف منابع. با اینکار، api gateway بار سرور و استفاده از پهنای باند را به حداقل می‌رسانند و نیاز به ظرفیت سرور و پهنای اضافی شبکه را کاهش و تحربه کاربری را بهبود می‌دهد

مدیریت ترافیک:
 ترافیک را از طریق مکانیسم‌های مختلفی که برای کنترل نرخ و حجم درخواست‌های دریافتی طراحی شده‌اند و عملکر بهینه و استفاده از منابع را تضمین، کنترل و مدیریت می‌کنند

۱-سیاست‌های محدود کننده نرخ در یک بازه زمانی را مشخص میکند، برای هر کلاینت یا کلید، در برابر بار اضافی محافظت میکنند

۲-قواعد مهار درخواست،قوانین و محدودیت‌هایی را برای تنظیم ترافیک درخواست تعریف می‌کنند مانند: حداکثر نرخ‌های درخواست، مجوزهای انفجاری و سهمیه‌ها

۳-قواعد کنترل همزمانی بالاخص سقف تعداد درخواست‌های از ارتباط همزمان یا درخواست‌های که میتونن بصورت همزمان سرویس‌های بکند هندل کنند

۴-قواعد قطع مدار سلامت مانیتورینگ و پاسخگویی از سرورهای بکند و بلاک موقت یا تغییر مسیر ترافیک موقت، تا از خرابی عادی و ابشاری یا کندی سرویس‌ها جلوگیری کنید

۵-توزیع بار پویا از api gateway، بطور مداوم سلامت سرور را نظارت می‌کند و مسیریابی ترافیک را در زمان واقعی تنظیم می‌کند تا بتوانند افزایش تقاضا رو مدیریت کند، زمان پاسخ را حداقل و توان عملیاتی را به حداکثر برساند


استفاده از زیرساخت‌ها شبکه جهانی:
توان مقیاس کردن پویای منابع زیرساختی در پاسخ به الگوهای ترافیکی در حال تغییر و تقاضای بار کاری، به این ترتیب استفاده از منابع را بهینه کنند و هزینه‌های زیرساخت را به حداقل برسانند و اطمینان حاصل کنند که هزینه بابت منابع مصرفی تنها پرداخت میشود



#api_gateway
#microservice



@code_crafters
👍4👎1
هزینه اثربخشی:
با ارائه یک پلتفرم متمرکز برای مدیریت ترافیک API، اجرای سیاست‌های امنیتی، اجرای قوانین مدیریت ترافیک و تسهیل یکپارچه‌سازی با سرویس‌های بکند، در مدیریت اثربخشی هزینه تحویل برنامه و یکپارچه‌سازی API نقش دارند. همچنین امکان مصرف سطحی خدمات را برای حفظ اثربخشی هزینه فراهم می‌کنند. انواع مختلف API ها می توانند از طرق مختلفی بر اثربخشی هزینه یک برنامه تاثیر بگذارند

۱-انعطاف پذیری: apiهای http که عمومی‌ترند، می‌توانند از هر روش http استفاده کنند. که سادگی و انعطاف پذیری را در توسعه ارائه می‌دهند و کاهش هزینه می‌دهند rest api که به قواعد خاصی تمرکز و پایبند دارند ممکن است به تلاش و تخصص بیشتری نیاز داشته باشند جهت پیاده سازی و هزینه رو افزایش دهند

۲-زیرساخت: به دلیل انعطاف apiهای http ممکن است هزینه زیرساخت کمتری داشته باشند برای res api ها جهت پشتیبانی از از ویژگی‌ها نیاز به اجزای اضافی در زیرساخت یا خدمات اضافی باشد که به‌طور بالقوه باعث افزایش هزینه‌های زیرساخت شود

مقیاس پذیری: API های HTTP، که می توانند با افزودن سرورها یا نمونه های بیشتر به صورت افقی مقیاس شوند، ممکن است گزینه های مقیاس پذیری مقرون به صرفه تری را ارائه دهند، به ویژه در محیط های ابری با قابلیت های مقیاس خودکار. APIهای REST ممکن است به دلیل شرایط بدون حالت، حافظه پنهان، و ملاحظات معماری توزیع شده نیاز به مقیاس بندی پیچیده تری داشته باشند و ممکن است برای دستیابی به مقیاس پذیری افقی به منابع زیرساخت یا خدمات اضافی نیاز داشته باشند که به طور بالقوه هزینه ها را افزایش می دهد


#api_gateway
#microservice


@code_crafters
👍3👎1