خدمت Faas یا Function-as-a-service راهی برای اجرای کدهای آماده در سرورهایی که توسط خود ارائهدهنده خدمت مدیریت میشوند است. خدمت Faas برنامه نویسان را قادر میسازد تا کدهای مورد نظرشان را به سرعت ایجاد و به روز رسانی نمایند، کدهایی که در مراحل بعدی قابلیت اجرا شدن در پاسخ به یک رویداد همچون کلیک کاربر بر روی یک قسمت در سایت یا برنامه تحت وب را دارا میباشند. این خدمت مقیاس بندی کدها را تسهیل مینماید و روشی اقتصادی برای پیادهسازی میکروسرویسها است.
میکروسرویس چیست؟
رویکرد ساخت برنامه از طریق ایجاد مجموعهای از اجزای ماژولار و طبقهبندی شده معماری میکروسرویس نام دارد. در واقع اگر سایت یا برنامه تحت وب را یک دیوار در نظر بگیریم که قصد رنگ کردن آن را داریم، میکروسرویسها همچون موزاییکهایی هستند که دیوار را میپوشانند. در واقع هر زمان که نیاز باشد قسمتهای مختلف این دیوار(هر موزاییک) میتوانند مستقل از یکدیگر تغییر یابند. تقسیم یک برنامه به چندین میکروسرویس باب طبع توسعه دهندگان میباشد چرا که بوسیله آن امکان تغییر آزادانه هر بخش کد مستقل از سایر بخشها بوجود میآید. در مقابل این تعریف معماری Monolithic است که در آن کدها به صورت یکپارچه و واحد نوشته میشوند و ایجاد تغییر در هر قسمت از کد بر کل برنامه تاثیر میگذارد. مشکل دیگر این معماری اینست که حتی کوچکترین تغییر در کد نیز باعث اجرای مجدد کل برنامه میگردد.
مزیتهای خدمت Faas
-
بهبود سرعت کدزنی
با استفاده از خدمت Faas برنامه نویسان فارغ از دغدغههای مربوط به امور سرورها و پیادهسازی کدها،میتوانند زمان و تمرکز بیشتری را به کدزنی و ایجاد ساختار برنامه اختصاص دهند. این مورد به طور کلی موجب ارتقا سرعت و کیفیت فرایند طراحی میگردد.
-
مقیاس پذیری(Scalability)
مقیاس پذیری قابلیت مدیریت افزایش تعداد کاربران یک نرم افزار و یا سخت افزار است.از آنجاییکه کدهای Faas به طور ذاتی مقایس پذیر هستند، توسعهدهندگان نیازی به نگرانی در خصوص ایجاد راههای مدیریت تعداد کاربران در مواقع اوج ترافیک و هجوم کاربران را نخواهند داشت.
-
صرفه اقتصادی
برخلاف سبک سنتی رایانش ابری، ارائه دهندگان خدمت Faas علاوه بر میزان منابع، مقدار زمان استفاده شده از سرویس و قدرت رایانش سرور را نیز در محاسبه قیمت نهایی در نظر میگیرند. در واقع مشتریان تنها به ازای میزان منابع و مقدار زمانی که از سرویس استفاده کردهاند هزینه پرداخت میکنند.
معایب Faas
-
کاهش کنترل بر روی سیستم
عدم مدیریت بخشی از ساختار اصلی، در مواقعی درک کل سیستم و عیبیابی آن را برای تیم برنامه نویسان دشوار میسازد.
-
پیچیده کردن فرایند تست
ادغام کدهای Faas در فضای تست محیطی، کاری دشوار است و در نتیجه فرایند تست برنامه را به امر چالش برانگیزتری تبدیل مینماید.