همه

FaaS چیست ؟ تابع به عنوان سرویس یکی از سرویس های رایانش ابری

 FaaS چیست ؟ faas مخفف Function as a Service یا تابع به عنوان سرویس است که یک نوع سرویس رایانش ابری است که اجرای برنامه های میکرو سرویس را برای توسعه دهندگان برنامه های ابری آسان می کند. برای این که به طور دقیق‌تر بدانید FaaS  چیست؟ و چه کارایی هایی داشته و چه تفاوت هایی با دیگر سرویس ها دارد خواندن این مطلب را ادامه دهید. ما در ابر آراز ارائه دهنده سرور های ابری مبتنی بر تکنولوژی رایانش ابری هستیم

تعریف FaaS چیست ؟ (Function-as-a-Service)

FaaS (تابع به عنوان سرویس) نوعی سرویس رایانش ابری است که به شما امکان می دهد بدون پاسخگویی به زیرساخت های پیچیده ای که معمولاً با ساخت و راه اندازی برنامه های میکرو سرویس مرتبط هستند، کدی را در پاسخ به رویدادها اجرا کنید.

میزبانی یک برنامه نرم افزاری در اینترنت معمولاً به تهیه و مدیریت یک سرور مجازی یا فیزیکی و مدیریت یک سیستم عامل و فرآیندهای میزبانی وب سرور نیاز دارد. با استفاده از FaaS ، سخت افزار فیزیکی، سیستم عامل ماشین مجازی و مدیریت نرم افزار وب سرور به طور خودکار توسط ارائه دهنده خدمات ابری شما انجام می شود. این به شما امکان می دهد تا فقط در توابع جداگانه در کد برنامه خود تمرکز کنید.

تعریف FaaS  چیست

تفاوت Serverless و FaaS چیست ؟

Serverless  و Functions-as-a-Service (FaaS) اغلب با یکدیگر ترکیب می شوند اما حقیقت این است که FaaS در واقع یک زیرمجموعه ای از بدون سرور یا  Serverlessاست. Serverless بر روی هر نوع سرویس ، اعم از محاسبه، ذخیره سازی، پایگاه داده، پیام رسانی، API gateways  و غیره که در آن پیکربندی، مدیریت و صورتحساب سرورها برای کاربر نهایی غیر قابل مشاهده است، متمرکز است.

از طرف دیگر، FaaS گرچه شاید مرکزی ترین فناوری در معماری های بدون سرور باشد، اما بر الگوی محاسبات رویداد محور متمرکز شده است که در آن کد برنامه یا کانتینرها فقط در پاسخ به رویدادها یا درخواست ها اجرا می شوند.

مزایای FaaS چیست ؟

اگر به دنبال انتقال کارآمد و مقرون به صرفه برنامه ها به ابر یا cloud هستید،  FaaS  ابزاری کارآمد است. موارد زیر برخی از مزایایی است که از آنها بهره مند خواهید شد:

۱. بیشتر روی کد تمرکز کنید، نه زیرساخت

با FaaS می توانید سرور را به توابع تقسیم کنید که به طور خودکار و به طور مستقل مقیاس بندی شوند. بنابراین نیازی به مدیریت زیرساخت ها نیست. با این کار می توانید روی کد برنامه متمرکز شوید و می توانید زمان ورود به بازار را بطور چشمگیری کاهش دهید.

۲. فقط برای منابعی که استفاده می کنید هزینه پرداخت کنید

 باFaaS ، فقط در صورتی که از منابع استفاده می کنید و فعالیت می کنید، در همان زمان هزینه پرداخت می کنید. وقتی فعایلت به اتمام رسید، همه چیز متوقف می شود؛ هیچ کدی اجرا نمی شود، از هیچ سروری استفاده نمی شود و در نتیجه هیچ هزینه ای متحمل نمی شوید. بنابراین،FaaS  به خصوص برای بارهای کاری پویا یا کارهای برنامه ریزی شده، مقرون به صرفه است. FaaS همچنین برای سناریوهای با بار بالا، هزینه کل مالکیت را ارائه می دهد.

۳. به طور خودکار مقیاس را بالا و پایین بیاورید

باFaaS ، توابع در صورت لزوم به طور خودکار، مستقل و فوری مقیاس بندی می شوند. با کاهش تقاضا،FaaS  به طور خودکار مقیاس را کاهش می دهد.

۴. از تمام مزایای زیرساخت ابری قوی بهره مند شوید

FaaS به طور ذاتی دسترسی بالایی را ارائه می دهد؛ زیرا در مناطق مختلف در دسترس در هر ناحیه پخش می شود و بدون هزینه های اضافی می تواند در هر تعداد از مناطق مستقر شود.

۵. اصول و بهترین روش ها در FaaS

چندین روش مناسب وجود دارد که می توانید برای سهولت کار و استفاده موثرتر از FaaS دنبال کنید:

۶. کاری کنید که هر function فقط یک عمل را انجام دهد

 توابع FaaS باید برای انجام یک کار واحد در پاسخ به یک رویداد طراحی شوند. دامنه کد خود را محدود، کارآمد و سبک کنید تا عملکردها به سرعت بارگیری و اجرا شوند.

۷. (functions) توابع را به فراخوانی توابع دیگر وادار نکنید

ارزش FaaS  در جداسازی function ها است. عملکردهای زیاد هزینه های شما را افزایش می دهند و ارزش ایزوله شدن عملکردهای شما را از بین می برند.

۸. در عملکردهای خود از کمترین تعداد کتابخانه ها (libraries) استفاده کنید

استفاده از کتابخانه های زیاد می تواند عملکردها را کند کرده و مقیاس بندی آن ها را دشوار کند.

موارد استفاده از FaaS چیست ؟

از آنجا که تراکنش ها را می توان به راحتی جدا و مقیاس بندی کرد، FaaS  برای بارهای کاری که  به طور نگران کننده ای موازی و با حجم بالا هستند، مناسب است. همچنین می تواند برای ایجاد سیستم های backend یا فعالیت هایی مانند پردازش داده ، تبدیل قالب، رمزگذاری یا تجمیع داده ها مورد استفاده قرار گیرد.

FaaS همچنین ابزار خوبی برای برنامه های وب، backends، پردازش داده ها یا جریان، یا ایجاد ربات های گفتگوی آنلاین یا back end ها برای دستگاه های اینترنت اشیا است. همچنین FaaS می تواند به شما در مدیریت و استفاده از خدمات شخص ثالث کمک کند. به عنوان مثال، اگر قصد توسعه برنامه Android  را دارید، می توانید برای کنترل هزینه های خود، رویکرد FaaS را در پیش بگیرید.

از آنجا که فقط وقتی برنامه شما برای عملکرد خاصی مانند پردازش دسته ای به ابر متصل می شود، هزینه پرداخت می کنید، هزینه ها می تواند به مراتب کمتر از هزینه استفاده از روش سنتی باشند.

Faas عملکرد محاسباتی را به طرز چشمگیری افزایش می‌دهد

FaaS همچنین می تواند عملکرد محاسباتی را به طرز چشمگیری افزایش دهد. به عنوان مثال، دو دانشجو اخیراً با مهندسان IBM کار کرده اند تا نحوه استفاده از فانکشن های ابر IBM را برای شبیه سازی های مونت کارلو (روش های ریاضی مورد استفاده برای تخمین نتایج آینده از برخی از وقایعی که پیش بینی آن ها سخت است) برای تخمین قیمت سهام بررسی کنند.

شبیه سازی مونت کارلو (Monte Carlo simulations) یک بار مهم محاسباتی با عملکرد بالا محسوب می شود. ترکیب Monte Carlo و IBM Cloud Functions این تیم را قادر به اجرای محاسبات در مقیاس گسترده کرده و به آن ها اجازه می دهد تا بر منطق تجارت تمرکز کنند.

با استفاده از FaaS ، تیم شبیه سازی یک شبیه سازی  Monte Carlo را در حدود 90 ثانیه با 1000 فراخوانی همزمان انجام داد. در مقایسه، اجرای همان جریان بر روی یک لپ تاپ با چهار هسته پردازنده 247 دقیقه و تقریباً 100٪ استفاده از پردازنده طول کشید.

FaaS در مقابل PaaS، کانتینرها و ماشین های مجازی

نقش Faas درمقابل Paas چیست ؟ FaaS و PaaS (پلتفرم یا بستر‌های نرم افزاری به عنوان سرویس) ، کانتینرها و ماشین های مجازی (VM) همگی نقشی اساسی در اکوسیستم serverless دارند. از آنجا که FaaS اصلی ترین و تعیین کننده ترین عنصر serverless stack است، لازم است بررسی کنیم که چگونه FaaS با سایر مدل های رایج محاسبه امروز در بازار در ویژگی های اصلی متفاوت هستند.

PaaS یا Platform as a service که در فارسی به اصطلاح به آن پلتفرم به عنوان سرویس گفته می شود، نیز نوعی از خدمات رایانش ابری است که در آن یک ارائه دهنده خدمات با ارائه یک بستر یا پلتفرم به مشتری ها، آن ها را قادر می سازد تا برنامه های تجاری خود را بدون نیاز به ایجاد و نگهداری زیرساخت هایی که معمولاً به چنین فرآیندهای توسعه نرم افزار نیاز دارند و پرداخت هزینه های بالای آن اجرا، توسعه و مدیریت کنند. پیشنهاد می‌کنیم برای آشنایی کامل با معنی Paas سری به مقاله Paas چیست بزنید.

تفاوت paas‌ و fass‌ چیست

زمان تهیه

 میلی ثانیه، در مقایسه با دقیقه و ساعت برای مدل های دیگر.

Administration مداوم

(جمله ی پشنهادی:همه ی درخواست ها به صورت موازی پردازش می شود و هیچ صف و ترتیبی _در مقایسه با روش های سنتی _ برای اجرای برنامه ها ایجاد نخواهد شد.)

 هیچ چیز در مقایسه با مقیاس کشویی از آسان به سخت برای PaaS، کانتینرها و ماشین های مجازی به ترتیب نیست.

  • Ongoing administration: None, compared to a sliding scale from easy to hard for PaaS, containers, and VMs respectively.

مقیاس الاستیک (Elastic scaling)

در مقایسه با سایر مدل هایی که مقیاس خودکار اما آهسته ارائه می دهند و مستلزم تنظیم دقیق قوانین مقیاس خودکار هستند، هر اقدام به طور ذاتی همیشه وبلافاصله مقیاس بندی می شود.

برنامه ریزی ظرفیت

در مقایسه با مدل های دیگر که به ترکیبی از مقیاس گذاری خودکار و برخی از برنامه ریزی های ظرفیت نیاز دارند، هیچ یک مورد نیاز نیست.

اتصالات و حالت پایدار

توانایی محدود در تداوم اتصالات و وضعیت و حالت باید در سرویس یا منبع خارجی نگهداری شود. مدل های دیگر می توانند از HTTP استفاده کنند، برای مدت زمان طولانی سوکت باز یا اتصال خود را حفظ کنند و می توانند وضعیت را در حافظه بین تماس ها ذخیره کنند.

تعمیر و نگهداری

 کلیه امور تعمیر و نگهداری توسط ارائه دهنده FaaS مدیریت می شود. این امر برای PaaS نیز صادق است. کانتینر‌ها و ماشین های مجازی به تعمیر و نگهداری قابل توجهی نیاز دارند که شامل به روزرسانی یا مدیریت سیستم عامل ها، تصاویر کانتینر، اتصالات و غیره است.

در دسترس بودن بالا (HA) و بازیابی فاجعه (DR)

در دسترس بودن بالا High availability (HA) و بازیابی فاجعه  disaster recovery (DR) در مدل FaaS به طور ذاتی و بدون هیچ گونه تلاش و هزینه اضافی وجود دارد. مدل های دیگر به هزینه اضافی و تلاش مدیریتی نیاز دارند. در مورد ماشین های مجازی و کانتینرها، زیرساخت ها می توانند به طور خودکار مجدداً راه اندازی شوند.

همانطور که می‌بینید high availability یا بالا بودن میزان دسترسی از اهمیت بالایی در مدل FaaS برخوردار است. از آنجایی ککه صحبت بیشتر در مورد این موضوع در این مقاله نمی‌گنجد و همچنین از اهمیت بالایی نییز برخوردار است، در مقاله‌ای دیگر تحت عنوان خدمات high availability چیست ، به تفصیل در مورد این مفهوم و مزایای استفاده از آن صحبت کرده‌ایم؛ فرصت مطالعه‌ی این مقاله را از دست ندهید.

استفاده از منابع

منابع هرگز بلا استفاده نیستند؛ آن ها فقط در صورت درخواست فراخوانی می شوند. همه مدل های دیگر حداقل درجاتی از ظرفیت بلا استفاده را دارند.

محدودیت های منابع

FaaS تنها مدلی است که محدودیت منابع در اندازه کد، فعال سازی های همزمان، حافظه، طول اجرا و غیره دارد.

شارژ به صورت تکی و صورتحساب

 در هر بلوک 100 میلی ثانیه، در مقایسه با ساعت (و گاهی اوقات دقیقه) سایر مدل ها.

شما می توانید برای دستیابی به اطلاعات روز دنیا در حوزه فناوری و تکنولوژی ما را در اینستاگرام ابرآراز دنبال کنید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا