در این پست قصد داریم ابتدا با مفهوم و کاربردهای API Gateway آشنا شویم. سپس پلتفرمهای معروف و در نهایت شرکتهای ایرانی فعال ارائه دهنده API Gateway را بررسی میکنیم.
فناوری API gateway یک ابزار مدیریتی API است که بین یک کلاینت و مجموعهای از سرویسهای پایانی (endpoint) قرار می گیرد. API gateway به عنوان یک پروکسی معکوس عمل میکند تا تمام فراخوانیهای رابط برنامه نویسی برنامه (API) را بپذیرد، سرویسهای مختلف مورد نیاز برای انجام آنها را جمع آوری کند و نتیجه مناسب را برگرداند.
ابزار API gateway درخواستهای API را از یک کلاینت میپذیرد، آنها را به سمت سرویسهای مناسب هدایت میکند و نتایج را در قالب یک تجربه سنکرون برای کاربر ارسال میکند.
پلتفرم API gateway همهی فراخوانیهای API را از کلاینتها میگیرد، سپس آنها را با مسیریابی درخواست، ترکیب و ترجمه پروتکل به میکروسرویس مناسب هدایت میکند. API gateway معمولاً یک درخواست را با فراخوانی چندین میکروسرویس و جمعآوری نتایج برای تعیین بهترین مسیر انجام میدهد. API gateway بین پروتکلهای وب و پروتکلهای web‑unfriendly که به صورت داخلی مورد استفاده قرار میگیرند، عمل ترجمه را انجام میدهد.
یک سایت در حوزهی تجارت الکترونیک ممکن است از یک API gateway برای ارائه نقطه پایانی (endpoint) به مشتریان تلفن همراه برای بازیابی تمام جزئیات محصول با یک درخواست واحد استفاده کند. به این صورت که خدمات مختلفی مانند اطلاعات محصول و بررسیها را فراخوانی کرده و نتایج را با هم ترکیب میکند.
اکثر API های سازمانی از طریق API gateway مستقر میشوند. برای API gateway ها انجام وظایف مشترک در یک سیستم که از سرویسهای API استفاده میکند، مانند احراز هویت کاربر، محدود کردن نرخ و آمار، امر رایجی است. در ابتداییترین حالت، سرویس API یک درخواست راه دور را میپذیرد و یک پاسخ را برمیگرداند. اما در عمل به این سادگی نیست چرا که دغدغههای مختلف را هنگام میزبانی API در مقیاس بزرگ بایستی در نظر گرفت:
در نتیجه چالش ارائه یک تجربه ساده و قابل اعتماد در برابر این همه پیچیدگی به مشتریان میباشد. API gateway راهی برای جدا کردن رابط مشتری از پیادهسازی نقطهی پایانی (backend) است. هنگامی که یک کلاینت درخواستی ارائه میدهد، API gateway آن را به چندین درخواست تقسیم کرده و به مکانهای مناسب هدایت میکند، پاسخی تولید و سپس همه چیز پیگیری میشود.
پلتفرم API gateway بخشی از سیستم مدیریت API است. API gateway تمام درخواستهای دریافتی را رهگیری میکند و آنها را از طریق سیستم مدیریت API که انواع فانکشنالیتیهای ضروری را مدیریت میکند، ارسال مینماید. کاری که API gateway انجام میدهد از یک اجرا به اجرای دیگر متفاوت است. برخی از فانکشنالیتیهای رایج عبارتند از احراز هویت، مسیریابی، محدود کردن نرخ، صورتحساب، نظارت، تجزیه و تحلیل، خطمشیها، هشدارها و امنیت.
در سازمانهایی که از رویکرد DevOps پیروی میکنند، توسعهدهندگان از میکروسرویسها برای ساخت و استقرار برنامهها به روشی سریع و تکراری استفاده میکنند. API ها یکی از رایجترین راههای ارتباطی میکروسرویسها هستند. علاوه بر این، توسعهی مدرن ابر، از جمله مدل بدون سرور، به APIها برای تامین زیرساخت بستگی دارد. میتوان توابع بدون سرور را مستقر و با استفاده از API gateway مدیریت کرد.
به طور کلی، همانطور که یکپارچگی و اتصال به یکدیگر ، اهمیت مییابند، APIها نیز اهمیت بیشتری پیدا میکنند. به این ترتیب با افزایش پیچیدگی API و افزایش کاربرد، ارزش API gateway نیز افزایش مییابد.
برای اکثر برنامههای کاربردی مبتنی بر میکروسرویس، پیادهسازی یک API gateway منطقی است، زیرا به عنوان یک نقطه ورودی واحد به سیستم عمل میکند. API gateway مسئول مسیریابی درخواست، ترکیب و ترجمه پروتکل است و میتواند سیستم را ساده کند. بوسیلهی API gateway، هر یک از کلاینتهای برنامه میتوانند یک API سفارشی دریافت کنند. API gateway برخی از درخواستها را به سادگی با مسیریابی آنها به سرویس پایانی مناسب (backend) مدیریت میکند و با فراخوانی چندین سرویس پشتیبان و جمعآوری نتایج، سایر سرویسها را مدیریت میکند. اگر در سرویسهای پایانی شکست وجود داشته باشد، API gateway میتواند با برگرداندن دادههای ذخیرهشده یا پیشفرض، آنها را پوشش دهد.
پلتفرم API gateway کانداکتوری است که درخواستهای پردازش شده توسط معماری میکروسرویسها را سازماندهی میکند تا تجربهای ساده برای کاربر ایجاد نماید. این کانداکتور نقش یک مترجم را ایفا میکند که بسیاری از درخواستهای کلاینت را میپذیرد و آنها را تنها به یک درخواست تبدیل میکند تا تعداد رفتوآمدهای بین کلاینت و برنامه را کاهش دهد. API gateway در مقابل میکروسرویسها راه اندازی میشود و به نقطه ورود هر درخواست جدیدی که توسط برنامه اجرا می شود تبدیل میگردد. در نتیجه اجرای کلاینت و اپلیکیشن میکروسرویس را ساده میکند.
در این بخش مزایای دیگر استفاده از مولفه API Gateway را بررسی میکنیم. از جمله این مزایا میتوان به موارد زیر اشاره کرد.
در این بخش معایب استفاده از API Gateway را بررسی میکنیم. از جمله این معایب میتوان به موارد زیر اشاره کرد.
1. ابزار API Umbrella
پلتفرم API Umbrella یک پلتفرم مدیریت API منبع باز پیشرو برای مدیریت API ها و میکروسرویسها میباشد. API Umbrella سازمانها را قادر میسازد تا تحت یک چتر واحد با اعطای مجوزهای مدیریتی مختلف به دامنههای متنوع، فعالیت کنند. این پلتفرم امکاناتی مانند Rate limiting، API key ها، حافظه پنهان (caching)، real-time analytics و دسترسی پذیری یک رابط وب مدیریتی (availability of an admin web interface) را فراهم میکند.
2. ابزار Gravitee.io
پلتفرم Gravitee.io یک پلتفرم منبع باز برای مدیریت API ها است که ماهیتی انعطافپذیر و سبک وزن دارد. از جمله ویژگیهای این پلتفرم میتوان به Rate limiting، فیلترینگ IP، اشتراکگذاری Cross-origin resource، گزینههای plug-and-play، پورتال توسعهدهنده API منبع باز با خطمشیهای OAuth2 و JSON web tokenها، متعادلسازی بار و موارد دیگر اشاره کرد.
با این حال، توانایی این پلتفرم در ایجاد گزارشهای دقیق جهت درک دادههای مورد استفادهی API، مهمترین ویژگی این ابزار مدیریتی به شمار میرود.
3. ابزار APIman.io
پلتفرم APIman.io که توسط شرکت Red Hat معرفی شده است، یکی از بهترین پلتفرمهای مدیریت API میباشد که باید هنگام انتخاب بهترین پشتهی فناوری برای برنامه خود، آن را در نظر گرفت. این پلتفرم که به راحتی در مخزن GitHub در دسترس است، فرصتهای فراوانی را در اختیار توسعه دهندگان در مرحله توسعه backend قرار میدهد. این فرصتها شامل موارد زیر:
4. ابزار WSO2 API Manager
پلتفرم WSO2 API Manager یک پلتفرم مدیریت API چرخه حیات کامل است که میتواند در هر مکان و زمانی اجرا شود. این پلتفرم توسعه دهندگان را قادر میسازد تا از امکان توزیع و استقرار API هم در فضای ابری داخلی و هم خصوصی استفاده کنند. این پلتفرم همچنین فرصتهای مختلف دیگری را نیز برای توسعه دهندگان فراهم میکند که تعدادی از آنها عبارتند از:
5. ابزار Kong Enterprise
پلتفرم Kong یکی از ابزارهای API میکروسرویس منبع باز است که به صورت گسترده مورد پذیرش واقع شده و به توسعه دهندگان امکان مدیریت سریع، آسان و ایمن همه چیز را میدهد. نسخهی سازمانی آن دارای ویژگیها و قابلیتهایی شامل موارد زیر است:
6. پلتفرم Tyk.io
پلتفرم Tyk.io که به زبان برنامه نویسی Go نوشته شده است، یک API gateway منبع باز شناخته شده میباشد. این پلتفرم به کمک یک پورتال توسعهدهنده API منبع باز، مستندات دقیق، داشبورد تجزیه و تحلیل API، محدود کردن نرخ APIها، احراز هویت، و مشخصات مختلف دیگری از این دست به سازمانها کمک میکند تا روی محیطهای میکروسرویس خود و کانتینریسازی تمرکز کنند.با این حال، خدمات تجاری محور این پلتفرم تنها برای نسخههای پولی موجود است.
7. پلتفرم Fusio
پلتفرم Fusio یکی از محبوبترین ابزارهای مدیریت API منبع باز است که به توسعه دهندگان اجازه میدهد API های REST را از انواع دادههای مختلف ایجاد و نگهداری کنند. این پلتفرم دارای ویژگیهای مدیریت چرخه عمر کارآمد مانند داشبورد backend برای کنترل ادمین، مستندات دقیق، اعتبارسنجی JSON برای درخواستهای ورودی، و مدیریت محدوده برای برآورده کردن مجوزهای کاربر است.
علاوه بر این، این پلتفرم به طور خودکار نیازمندیهای OAI و RAML را ایجاد میکند و یک SDK سفارشی مشتری را مطابق طرح تعریف شده ایجاد مینماید.
8. پلتفرم API Axle
یکدیگر از پروکسیهای منبع باز، ساده و سبک است که مزایای فراوانی را برای توسعه دهنگان فراهم میکند. از جمله این مزایا میتوان به موارد زیر اشاره کرد:
9. پلتفرم Snap Logic
یک پلتفرم یکپارچه است که به عنوان یک سرویس به سازمانها در حفظ و رشد مشتریان پایه کمک میکند. ویژگیهایی که این پلتفرم فراهم میکند عبارتند از:
10. پلتفرم DreamFactory
یکی از بهترین پلتفرمهای رایگان منبع باز است که از جمله دلایل محبوبیت آن میتوان به موارد زیر اشاره کرد:
11. پلتفرم 3SCALE
یک پلتفرم مدیریت API متعلق به Red Hat است که به شرکتهای بزرگ و کوچک امکاناتی با ویژگیهای زیر را ارائه میدهد:
12. پلتفرم Gloo Edge
یک API Gateway ابری است که از برنامههای قدیمی، مایکروسرویسها و همچنین بدون سرور پشتیبانی میکند. با محیط یکپارچه میشود و امکان انتخاب ابزارهای مورد علاقه را برای برنامهریزی، تداوم و امنیت برای کاربران خود فراهم میکند. همچنین این پلتفرم از پروژههای منبع باز چون NATS, Open Tracing, GraphQL, gRPC برای ارائه ویژگیهای با کیفیت بالا استفاده میکند.
13. پلتفرم Akana
پلتفرم Akana یکی دیگر از پلتفرمهای منبع باز API Gateway است. با استفاده از این پلتفرم میتوان API ها را طراحی، ایمن، پیادهسازی، نظارت و انتشار داد. همچنین میتوان آن را در فضای ابری مستقر کرد. برخی از ویژگیهای این پلتفرم میتوان به موارد زیر اشاره کرد:
تمامی ابزارهای معرفی شده در بالا منبع باز هستند و آماده اضافه شدن به پشته فناوری هستند. اما برای اطمینان از انتخاب مناسب برای نیازهای برنامه تجاری در ادامه نکاتی را در خصوص انتخاب ابزارهای مدیریت API بیان میکنیم.
1- ویژگیها
برای پاسخ دهی به سوال " چگونه بهترین ابزار مدیریت API را انتخاب کنم؟" مهمترین عاملی که باید در نظر گرفت ویژگیهای پلتفرمهای مدیریت API است. هر ابزار مدیریت API منبع باز دارای الزامات و محدودیتهای پیادهسازی خاصی است. بنابراین مقایسه پلتفرمهای مدیریت API با توجه به نیازهای فنی و غیرفنی میتواند واقعا مفید واقع شود.
2- پیچیدگی استقرار
زمانی که صحبت از استقرار به میان میآید، برخی از Gateway ها به یک node و برخی دیگر به چندین node برای راهاندازی دیتابیس نیاز دارند. علاوه بر این برخی از Gateway ها با دیتابیسهای زیادی کار میکنند که میتواند یک مورد پیچیده برای مدیریت باشد. بنابراین توجه به پیچیدگی استقرار نیز میتواند در انتخاب پلتفرم مناسب منبع باز مدیریت API نیز کمک کند.
3- هاست cloud و on-Premise
هاستهای نوع On-Premise در محوطه فیزیکی یک شرکت قرار دارند. بنابراین میتواند زمان بیشتری را به فرآیند استقرار و نگهداری اضافه کرد.
اما هاست ابری، ابزارهای منبع باز مدیریت API در یک مکان مجازی قرار دارند و خدمات آن از طریق محاسبات ابری در دسترس است. بنابراین استفاده از خدمات هاست ابری میتواند تاخیر بیشتری را ایجاد کند و دسترسپذیری سرویس را کاهش دهد.
بنابراین تجزیه و تحلیل مزایا و معایت هر دو گزینه برای تعیین اینکه کدام ابزار مدیریت API منبع باز انتخاب شود میتواند ایدهی سودآوری باشد.
4- حمایت انجمنی
داشتن پشتیبانی و انجمنی بزرگ از استفاده کنندگان از پلتفرم منبع باز مدیریت API شانس بروزرسانی و پاسخ به سوالات گوناگون مرتبط با پلتفرم مورد استفاده را نیز افزایش میدهد.
در ادامه تعدادی از شرکتهای ارائه دهنده API Gateway ایرانی را بررسی میکنیم.
شرکت پلتکو
پلتفرم Platco API Management راهکار و ابزاری برای اصلاح و ارتقاء سریع زیرساخت فناوری اطلاعات سازمانها میباشد که آنها در موارد زیر کمک می کند:
شرکت وصل
پلتفرم مدیریت API سورنا مربوط به شرکت وصل توسعهدهندگان را قادر میسازد تا برنامههایی مرتبط با سامانههای داخلی سازمان/سرویسدهنده طراحی و پیادهسازی نمایند. API ها در تکنولوژیهای مختلف نظیر اینترنت اشیا، رایانش ابری و دادههای حجیم نقشی کلیدی را ایفا مینماید. پلتفرم مدیریت API سورنا پایداری، امنیت و پشتیبانی ویژهای ارائه میکند تا شرکتهای ثالث، همکاران، شرکا و حتی توسعهدهندگان آزاد بتوانند با آسودگی خیال و اطمینان از آنها استفاده نمایند. طراحی سریع، سادگی پیاده سازی، تست دقیق از ویژگیهای محصول ارائه شده توسط این شرکت است. پلتفرم مدیریت API سورنا با نظارت، تجزیه و تحلیل دادهها، کنترل دسترسیها و محافظت از اطلاعات حساس سازمانها با سیاستهای امنیتی خود موفقیت سازمانها را تضمین میکند و به آنها کمک میکند در نبرد با متجاوزان دنیای دیجیتال عملکرد مطمئنی داشته باشند.
ابر درسا
یکی از خدمات این شرکت ارائه سرویس API Gateway است. این سرویس با تخصیص یک پنل به مشتری این امکان را می دهد تا تعیین کند برای دسترسی به هر صفحه به کدام سرور درخواست ارسال شود. به طور کلی سرویس API Gateway این شرکت قابلیتهای زیر را دارا است.
این مطلب، بخشی از تمرینهای درس معماری نرمافزار در دانشگاه شهیدبهشتی است.
https://www.nginx.com/learn/api-gateway/
https://www.redhat.com/en/topics/api/what-does-an-api-gateway-do
https://appinventiv.com/blog/open-source-api-management-tools/