بلاگ
🚀 مقدمه: Serverless computing چیست؟
در دنیای توسعه نرمافزار، روندها به سمت سادهسازی، مقیاسپذیری و کاهش هزینههای زیرساخت پیش میروند. یکی از این روندها Serverless computing یا همان «محاسبات بدون سرور» است.
برخلاف اسمش، Serverless به معنای «نبود سرور» نیست، بلکه به این معنی است که توسعهدهنده دیگر نیازی به مدیریت مستقیم سرورها ندارد. تمام فرآیندهای راهاندازی، نگهداری و مقیاسپذیری توسط ارائهدهنده سرویس ابری (مثل AWS، Azure یا Google Cloud) انجام میشود.
در این مدل، شما فقط کد مینویسید و آن را اجرا میکنید، بدون این که دغدغه نصب سیستمعامل، مدیریت منابع یا مانیتورینگ سختافزار را داشته باشید.
در Serverless computing، شما یک تابع یا سرویس را بهصورت جداگانه در یک محیط ابری تعریف میکنید. این سرویس تنها زمانی فعال میشود که یک درخواست (Event) به آن ارسال شود.
این رویکرد بر پایه مفهوم Function as a Service (FaaS) کار میکند. یعنی شما توابعی مینویسید که در پاسخ به رویدادها اجرا میشوند، و وقتی کارشان تمام شد، منابع آزاد میشوند.
فرض کنید یک API دارید که پس از آپلود تصویر، اندازه آن را تغییر میدهد.
در مدل سنتی باید یک سرور دائم روشن باشد، اما در مدل Serverless فقط زمانی که تصویر آپلود میشود، تابع مربوطه اجرا و سپس متوقف میشود.
همهچیز توسط ارائهدهنده ابر مدیریت میشود.
فقط برای مدت زمان اجرای کد و میزان منابع مصرفی هزینه پرداخت میکنید.
در صورت افزایش ناگهانی ترافیک، سیستم بهطور خودکار منابع را افزایش میدهد.
تابعها معمولاً در یک بازه زمانی مشخص (مثلاً چند دقیقه) اجرا میشوند و سپس خاتمه پیدا میکنند.
جهت دریافت اطلاعات بیشتر درمورد دورهها و اساتید با مشاورین دوران آکادمی در ارتباط باشید.
چون فقط زمانی که کد شما اجرا میشود هزینه پرداخت میکنید، در پروژههایی که ترافیک متغیری دارند، صرفهجویی زیادی خواهید داشت.
بهجای وقت گذاشتن برای مدیریت سرور، روی کدنویسی و توسعه ویژگیهای اصلی اپلیکیشن تمرکز میکنید.
Serverless computing بهطور خودکار با افزایش یا کاهش ترافیک سازگار میشود.
بدون نیاز به نصب و پیکربندی زیرساخت، میتوانید در چند دقیقه یک سرویس جدید راهاندازی کنید.
میتوانید از زبانهای مختلف برنامهنویسی و سرویسهای متنوع ابری استفاده کنید.
هر فناوری مزایا و معایب خود را دارد و Serverless هم از این قاعده مستثنی نیست.
توابع Serverless معمولاً بعد از مدت مشخصی (مثل ۱۵ دقیقه در AWS Lambda) متوقف میشوند، بنابراین برای پردازشهای طولانیمدت مناسب نیستند.
مهاجرت از یک سرویس ابری به سرویس دیگر میتواند دشوار باشد (Vendor Lock-in).
در برخی مواقع، اجرای اولیه تابع ممکن است کمی کندتر باشد چون محیط اجرای آن تازه ایجاد میشود.
دیباگ کردن یک تابع روی فضای ابری میتواند پیچیدهتر از اجرای محلی باشد.
یکی از محبوبترین سرویسهای Serverless
مناسب برای کاربران مایکروسافت
بر پایه Apache OpenWhisk
ادغام عالی با اکوسیستم Google
شامل مباحث پایه تا پیشرفته است که به دانشجویان کمک میکند تا به صورت عملی با مفاهیم مختلف ذخیرهسازی در Storage Plus آشنا شوند.
Serverless computing راهی نوین برای توسعه اپلیکیشنهاست که نیاز به مدیریت زیرساخت را حذف میکند و تمرکز توسعهدهندگان را بر روی منطق برنامه قرار میدهد. این رویکرد برای پروژههایی با ترافیک متغیر، APIهای سبک و وظایف رویدادمحور ایدهآل است.
با این حال، باید محدودیتهای آن مثل Cold Start، وابستگی به ارائهدهنده و محدودیت زمان اجرا را در نظر بگیرید.
در نهایت، اگر به دنبال سرعت، مقیاسپذیری و صرفهجویی در هزینهها هستید، Serverless computing میتواند انتخاب هوشمندانهای برای شما باشد.
بیشتر بخوانید :