APIهای ابری، امکان ارتباط بین خدمات مبتنی بر کلاود یا بین برنامههای فضای ابری (Cloud) و اپلیکیشنهای بومی را فراهم میکنند.
API تحت فضای ابری چیست؟
APIهای کلاود برنامههای نرمافزاری هستند که دادهها را بین خدمات رایانش ابری یا بین خدمات کلاود و نیز برنامههای بومی انتقال میدهند. این موارد زیرمجموعهای از رابطهای برنامهنویسی کاربردی هستند، رابطی که انتقال دادهها بین برنامههای نرمافزاری را تسهیل میکند. درهمین حال، توسعهدهندگان از این رابطها برای به اشتراک گذاردن دادهها و قابلیتها در چندین اپلیکیشن بدون آنکه نیازی به بازنویسی کد یا بازسازی قابلیتهای موجود در برنامههای جدید داشته باشند، استفاده میکنند. APIهای ابری را همچنین میتوان برای اهداف گوناگونی پیکربندی کرد که برخی از کاربردهای رایج آن شامل موارد زیر میشود:
- به اشتراکگذاری منابع بین چندین ارائهدهنده فضای ابری،
- پیکربندی و مدیریت زیرساختهای میزبانیشده در کلاود،
- سادهسازی امنیت فضای کلاود،
- خودکارسازی بازیابی (ریکاوری) پس از فاجعه.
درحالی که APIهای ابری، خدمات را در محیطهای کلاود به هم متصل میکنند، ممکن است با هر ارائهدهنده ابری سازگار نباشند یا حتی برای کار در محیطهای ارائهدهندگان مختلف طراحی نشده باشند. بههمین دلیل، رابطهای برنامهنویسی کاربردی در فضای ابری گاهی براساس ارائهدهندگانی که اقدام به پشتیبانی میکنند، دستهبندی میشوند. افزون بر این، یک API ابری خاص برای یک ارائهدهنده فقط با خدمات همان ارائهدهنده سازگار است، درحالیکه یک API ابری چند پلتفرمی با چندین ارائهدهنده سازگار است.
APIهای ابری چگونه کار میکنند؟
رابطهای برنامه نویسی کاربردی کلاود بسته به هدفی که دنبال کرده و پروتکلی که استفاده میکنند، به روشهای مختلفی پیکربندی میشوند. بهطور کلی، APIهای ابری از طریق ارسال و دریافت درخواستها بین خدمات ابری یا از کلاود به اپلیکیشن بومی کار میکنند. برای انجام یکپارچگیهای API نیز هر رابط برنامهنویسی کاربردی قوانین خاصی دارد که باید رعایت شود تا یک قابلیت از یک API به دیگری تکرار شود.
دراین راستا، فرآیند اتصال API نسبتاً پیچیده است، اما معمولا مراحل زیر را دنبال میکند:
- یک مشتری API (مثلاً یک اپلیکیشن) درخواست خاصی را برای دادهها ارسال میکند که به آن «فراخوانی رابط برنامهنویسی کاربردی (API Calls)» میگویند.
- API Calls همچنین توسط یک اندپوینت رابط برنامهنویسی کاربردی (API Endpoint) مثلاً یک سرور، دریافت میشود.
- API Endpoint، درخواست را احراز هویت میکند تا اطمینان یابد که درخواست از یک منبع معتبر ارسال شده و با استفاده از پروتکل API صحیح (SOAP، REST یا RPC) و طرحواره مناسب، قالببندی شده است.
- در آخرین مرحله نیز اندپوینت رابط برنامهنویسی کاربردی (API Endpoint) دادههای درخواستشده را به مشتری API بازمیگرداند.
در ادامه، اغلب، روند ادغام APIهای ابری به چندین Calls API نیاز دارند و از آنجا که این فرآیند میتواند بهسرعت پیچیده شود، توسعهدهندگان از دروازههای رابط برنامهنویسی کاربردی (API Gateway) بهره میبرند که یک سرویس پراکسی معکوس است که درخواستهای API را از یک مکان متمرکز، مدیریت میکند. Gateway API علاوه بر این مسئول دریافت، مسیریابی و تحویل درخواستها و پاسخهای API هستند. این دروازهها ممکن است محدودیت نرخ، احراز هویت، اجراء سیاستهای امنیتی و بسیاری از عملکردهای دیگر را نیز مدیریت کنند.
انواع اصلی APIهای ابری چیست؟
APIهای کلاود اغلب براساس لایهای که در آن خدمات ابری را متصل میکنند، برچسبگذاری میشوند که معمولا این اتصال در یکی از سه سطح زیرین رخ میدهد:
سطح زیرساخت: APIهای سطح زیرساخت که به آنها APIهای زیرساخت به عنوان سرویس (IaaS) نیز میگویند، به پیکربندی و مدیریت زیرساختهای میزبانیشده در فضای ابری کمک میکنند. همچنین، APIهای IaaS ممکن است برای سادهسازی مدیریت سرورهای مجازی، فضای ذخیرهسازی کلاود، راهکارهای امنیتی ابری و دیگر نرمافزارها و خدمات سطح زیرساخت استفاده شوند.
سطح خدمات: از طرف دیگر، APIهای سطح خدمات یا APIهای پلتفرم درقالب سرویس (PaaS)، زیرساخت ذکرشده را به پلتفرمهای شخص ثالث (۳rd party) برای توسعه اپلیکیشنها متصل میکنند. همچنین، APIهای PaaS به توسعهدهندگان امکان دسترسی به ابزارهای توسعه، سیستمعاملها، نرمافزارها و پایگاههای داده را میدهند تا بتوانند برنامههای خود را بسازند.
سطح برنامه: APIهای سطح برنامه یا APIهای نرمافزار بهعنوان سرویس (SaaS)، زیرساخت را به برنامههای ابری که توسط ارائهدهندگان شخص ثالث مدیریت میشوند، متصل میکنند. این دسته از APIها به کاربران امکان میدهند تا به برنامههای تکمیلشده ابری، مثلا جیمیل (Gmail) از یک مشتری دسترسی پیدا کنند.
درهمین حال، برای درک بهتر موضوع، فرض کنید که شخصی میخواهد ساخت یک خانه را برونسپاری کند. درهمین راستا، وی ممکن است با معماران، پیمانکاران، برقکاران، دکوراتورهای داخلی و دیگر متخصصان تماس بگیرد که همگی این افراد نقش خاصی در ساخت و تجهیز خانه دارند. بهطور مشابه، توسعهدهندگان از انواع مختلف APIها برای ساخت برنامههای مبتنی بر کلاود یا اتصال برنامهها به خدمات ابری استفاده میکنند و به مانند تیم متخصصان خارجی موردنیاز برای ساخت یک خانه، هر یک از این رابطهای برنامهنویسی کاربردی به توسعهدهندگان کمک میکند تا به قابلیتهای مختلفی دسترسی پیدا کنند.
کلاودفلر (Cloudflare) چگونه APIهای ابری را ایمن میکند؟
همانند هر آنچه که به اینترنت متصل است، APIها در معرض انواع مختلف حملات قرار دارند، از حملات محرومسازی از سرویس توزیعشده یا دیداس (DDoS) در لایههای اپلیکیشنها گرفته تا ۱۰ تهدید برتر OWASP. بنابراین، محافظت از APIها در برابر سوءاستفادههای احتمالی نیازمند دفاعی چندلایه است که بتواند به جلوگیری، تشخیص و کاهش حملات ورودی بپردازد. از سوی دیگر، دروازه رابط برنامهنویسی کاربردی کلاودفلر (Gateway API Cloudflare) به سازمانها کمک میکند تا APIهای مخفی را کشف و فهرستبندی، از استخراج داده API جلوگیری و APIها را از تهدیدات خارجی و داخلی محافظت کنند.