عملکرد به عنوان یک سرویس (FaaS) یک دسته از خدمات رایانش ابری را نشان می دهد که بستری را فراهم می کند که به مشتریان اجازه می دهد تا عملکردهای برنامه را بدون پیچیدگی ساخت و نگهداری زیرساختی که معمولاً با توسعه و راه اندازی یک برنامه مرتبط است توسعه، اجرا و مدیریت کنند. این الگوی معماری معمولاً با محاسبات بدون سرور مرتبط است، جایی که توسعه دهندگان می توانند روی نوشتن کد برنامه خود تمرکز کنند و ارائه دهنده ابر محیط اجرا را مدیریت می کند.
ردیابی تاریخچه و ریشه های عملکرد به عنوان یک سرویس (FaaS)
آغاز کار به عنوان یک سرویس (FaaS) به شدت با تکامل محاسبات ابری مرتبط است. تولد رایانش ابری در اوایل دهه 2000، زیرساخت به عنوان سرویس (IaaS) و پلتفرم به عنوان سرویس (PaaS) را در کانون توجه قرار داد. با این حال، توسعه دهندگان همچنان نیاز به مدیریت سرورها در هر دو مدل داشتند، البته کمتر با PaaS.
این پیشرفت در سال 2014 زمانی رخ داد که خدمات وب آمازون (AWS) AWS Lambda را به عنوان اولین پلت فرم FaaS معرفی کرد. این نیاز توسعه دهندگان به نگرانی کامل در مورد سرورها را از بین برد. Lambda به توسعه دهندگان اجازه داد تا کد خود را در پاسخ به رویدادهایی مانند تغییرات داده ها در سطل آمازون S3 یا به روز رسانی در جدول DynamoDB آمازون اجرا کنند. این یک تغییر انقلابی در نحوه ساخت و ارائه برنامه ها بود.
غواصی عمیق تر در عملکرد به عنوان یک سرویس (FaaS)
FaaS یک روش بدون سرور برای اجرای کدهای مدولار در لبه است. به جای استقرار یک برنامه یا یک سرویس کامل، توسعهدهندگان میتوانند بخشهای کوچکی از توابع را اجرا کنند که یک کار مشخص و مشخص را انجام میدهند. این توابع «بدون حالت» هستند زیرا برای کوتاه مدت طراحی شده اند و در یک محیط بدون حالت اجرا می شوند. ارائهدهنده ابر بهطور خودکار منابعی را که برای اجرا و مقیاسبندی نیاز دارند، مدیریت میکند.
توابع توسط رویدادهایی مانند درخواست های HTTP، عملیات پایگاه داده، صف ها، ذخیره سازی و غیره فعال می شوند. ارائه دهنده تابع را اجرا می کند و پس از تکمیل موفقیت آمیز نتیجه را برمی گرداند. یکی از ویژگی های کلیدی FaaS این است که شما فقط برای زمان پردازش واقعی عملکرد و نه زیرساخت زیربنایی پرداخت می کنید.
کشف ساختار داخلی و مکانیزم کاری FaaS
در یک مدل FaaS، منطق برنامه به توابع جداگانه تقسیم می شود. اینها توسط یک پلتفرم زیربنایی مدیریت می شوند و معمولاً بدون تابعیت هستند. پس از دریافت یک رویداد، پلتفرم به سرعت منابع را برای اجرای تابع چرخانده، رویداد را پردازش می کند و پس از اتمام پردازش، منابع را خاموش می کند.
- ماشه رویداد: رویدادی مانند درخواست HTTP، آپلود فایل، یا عملیات پایگاه داده عملکرد را فعال می کند.
- مقداردهی اولیه تابع: ارائه دهنده ابر عملکرد را برای اجرا آماده می کند. این ممکن است شامل راه اندازی یک ظرف و بارگذاری کد تابع در آن باشد.
- اجرا: تابع با داده های رویداد ارائه شده اجرا می شود.
- واکنش: تابع داده های رویداد را پردازش می کند و نتیجه را برمی گرداند. همچنین ممکن است به عنوان بخشی از این پردازش با سایر سرویس ها یا پایگاه های داده تعامل داشته باشد.
- خاموش شدن: هنگامی که عملکرد به پایان رسید، ارائه دهنده ابر منابع مورد استفاده برای اجرای عملکرد را خاموش می کند.
ویژگی های کلیدی Function as a Service (FaaS)
- رویداد محور: توابع در پاسخ به رویدادها یا محرک ها اجرا می شوند.
- بی تابعیت: توابع اطلاعات را بین اجراها حفظ نمی کنند.
- مقیاس پذیر: ارائه دهنده ابر به طور خودکار مقیاس بندی عملکرد را مدیریت می کند.
- کوتاه مدت: انتظار می رود عملکردها به سرعت شروع شوند، برای مدت کوتاهی اجرا شوند و سپس متوقف شوند.
- پرداخت به ازای استفاده: قیمت گذاری بر اساس زمان محاسبه واقعی استفاده شده توسط تابع است.
انواع مختلف عملکرد به عنوان یک سرویس (FaaS)
در حالی که مفهوم اصلی FaaS یکسان است، ارائه دهندگان ابری مختلف محصولات FaaS کمی متفاوت ارائه می دهند. برخی از محبوب ترین آنها عبارتند از:
ارائه دهنده | محصول FaaS |
---|---|
AWS | لامبدا |
Google Cloud | توابع ابری |
مایکروسافت آژور | توابع لاجوردی |
IBM | توابع ابری |
اوراکل | پروژه Fn |
راه های استفاده از تابع به عنوان سرویس (FaaS)، مشکلات و راه حل ها
FaaS به ویژه برای برنامه هایی مفید است که نیاز به پاسخگویی به اطلاعات لحظه ای یا درخواست های پراکنده دارند. به عنوان مثال، می توان از آن برای پردازش فایل بلادرنگ، تبدیل داده یا پردازش جریان رویداد استفاده کرد. با این حال، چالشهای بالقوه مربوط به محدودیتهای زمانی اجرا، مدیریت حالت، آزمایش و اشکالزدایی وجود دارد. راه حل ها شامل طراحی دقیق کد عملکرد برای رعایت محدودیت های زمانی اجرا و استفاده از خدمات ابری اضافی برای مدیریت وضعیت است.
مقایسه با مفاهیم مشابه
مفهوم | شرح |
---|---|
FaaS | توسعه دهندگان کد عملکرد را ارائه می دهند. پلتفرم به طور خودکار تمام زیرساخت ها را مدیریت می کند. |
IaaS | توسعه دهندگان برنامه ها، داده ها، زمان اجرا و میان افزار را مدیریت می کنند. ارائه دهنده مجازی سازی، سرورها، ذخیره سازی و شبکه را مدیریت می کند. |
PaaS | توسعه دهندگان برنامه ها و داده ها را مدیریت می کنند. ارائه دهنده زمان اجرا، میان افزار، سیستم عامل، مجازی سازی، سرورها، ذخیره سازی و شبکه را مدیریت می کند. |
دیدگاه ها و فناوری های آینده مرتبط با FaaS
FaaS احتمالاً با اکوسیستم بدون سرور گسترده تر به تکامل خود ادامه خواهد داد. پیشرفتها در محاسبات لبهای میتواند باعث شود که FaaS در لبه شبکه، نزدیکتر به منابع داده، رایجتر شود. علاوه بر این، ممکن است محیطهای بدون سرور ترکیبی بیشتری را ببینیم که در آن FaaS همراه با سایر مدلهای محاسباتی برای بخشهای مختلف یک برنامه کاربردی استفاده میشود.
نقش سرورهای پروکسی در عملکرد به عنوان یک سرویس (FaaS)
سرورهای پروکسی می توانند با عمل به عنوان واسطه برای درخواست های مشتریانی که به دنبال منابع از سرورهای دیگر هستند، نقشی در FaaS ایفا کنند. آنها می توانند عملکرد را بهبود بخشند، امنیت را تامین کنند و ناشناس ماندن را حفظ کنند. در زمینه FaaS، یک سرور پراکسی میتواند برای رسیدگی به درخواستهایی استفاده شود که عملکردها را راهاندازی میکنند و قابلیتهای کنترل، ثبت و اصلاح اضافی را ارائه میدهند.