به‌زودی — جایگزین‌های فعال را پایین ببینید

توابع سرورلس، به‌زودی در ایران‌کلاد

اجرای کد به‌صورت تابع، بدون مدیریت سرور و با پرداخت به‌ازای اجرا، هنوز در ایران‌کلاد عرضه نشده است. تا آن زمان، وب‌هوک و API سبک را روی یک سرور ابری کوچک، کارهای رویدادمحور را با صف پیام مدیریت‌شده و ریدایرکت و هدر را با توابع لبه اجرا کنید.

حساب دارید؟ ورود و ساخت سرور

برای باخبر شدن از زمان عرضه وارد حساب شوید: خبرم کنید

توابع سرورلس

اجرای کد با رویداد، پرداخت به‌ازای اجرا

هنوز قابل سفارش نیست

زبان‌ها و قیمت اعلام نشده است. جایگزین‌های فعال امروز:

  • سرور ابری کوچک،  از ۱٬۱۰۰ تومان در ساعت
  • صف پیام مدیریت‌شده،  RabbitMQ / NATS، از ۱٬۳۰۰ تومان در ساعت
  • توابع لبه،  ریدایرکت، بازنویسی مسیر و هدر

وضعیت سرویس

توابع سرورلس (FaaS) و وضعیت آن در ایران‌کلاد

در مدل سرورلس به‌جای اجارهٔ سرور دائمی، فقط یک تابع را بارگذاری می‌کنید که با یک رویداد، مثل درخواست HTTP یا پیام صف، اجرا می‌شود. مقیاس خودکار و پرداخت به‌ازای اجرا دو مزیت اصلی آن است؛ محدودیت زمان اجرا و شروع سرد هم هزینه‌های پنهانش.

این سرویس در ایران‌کلاد هنوز عرضه نشده و سفارش یا قیمت ندارد. برای همان کاربردها امروز سرور ابری کوچک، صف پیام مدیریت‌شده با RabbitMQ و NATS و توابع لبه برای ریدایرکت و هدر در دسترس‌اند.

جایگزین‌های امروز

جایگزین‌های فعال امروز

سرور ابری کوچک

وب‌هوک و API سبک با Node.js یا PHP، پرداخت ساعتی و دسترسی کامل.

صف پیام مدیریت‌شده

RabbitMQ یا NATS برای کارهای پس‌زمینه و رویدادمحور، بدون نگرانی از گم شدن پیام.

توابع لبه

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

کار زمان‌بندی‌شده

cron یا تایمر systemd روی سرور ابری برای کارهای دوره‌ای.

کوبرنتیز مدیریت‌شده

برای تیم‌هایی که می‌خواهند چارچوب سرورلس متن‌باز را خودشان اجرا کنند.

سرورلس: به‌زودی

هنوز عرضه نشده؛ کاربرد مورد نیازتان را از صفحهٔ تماس اعلام کنید.

الگوی پیشنهادی

کار رویدادمحور دارید؟

رویدادها را در صف پیام مدیریت‌شده بگذارید و با یک worker روی سرور ابری پردازش کنید. این الگو امروز کار می‌کند و منطق کد شما فردا به‌راحتی به تابع سرورلس منتقل می‌شود.

راهنمای کامل

راهنمای سرورلس و جایگزین‌های امروز آن در ایران‌کلاد

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

۱۰ بخش حدود ۵ دقیقه مطالعه

فهرست مطالب

سرورلس چیست و چطور کار می‌کند؟

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

دو ویژگی سرورلس را جذاب می‌کند: مقیاس خودکار، یعنی اگر هزار درخواست هم‌زمان برسد، هزار نمونه از تابع اجرا می‌شود؛ و پرداخت به‌ازای مصرف، یعنی وقتی درخواستی نیست، هزینه‌ای هم نیست. در عوض، کنترل شما روی محیط اجرا محدود است و تابع باید کوتاه، بی‌حالت و مستقل نوشته شود.

سرورلس در ایران‌کلاد امروز در چه وضعیتی است؟

توابع سرورلس در ایران‌کلاد هنوز عرضه نشده است. محیط اجرای کد، زبان‌های پشتیبانی‌شده، محدودیت‌ها و مدل قیمت هنوز تعریف نشده‌اند و به همین دلیل دربارهٔ آن‌ها عددی نمی‌نویسیم. اگر این سرویس برای پروژهٔ شما مهم است، از صفحهٔ تماس بگویید چه کاربردی دارید؛ این اطلاعات در طراحی سرویس اثر دارد.

خبر خوب این است که تقریباً هر کاری که با سرورلس انجام می‌شود، با ترکیب سرویس‌های فعال امروز هم شدنی است. در ادامه برای هر کاربرد رایج، جایگزین عملی را توضیح داده‌ایم.

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

بازگشت به فهرست مطالب

هر کاربرد سرورلس را امروز با چه چیزی پیاده کنیم؟

جدول زیر کاربردهای رایج سرورلس را با سرویسی که همین حالا در ایران‌کلاد فعال است کنار هم گذاشته است:

کاربردجایگزین امروز در ایران‌کلادنکته
دریافت وب‌هوکسرور ابری کوچک با Node.js یا PHPیک سرور برای ده‌ها وب‌هوک کافی است
API سبکسرور ابری یا داکر سوارمبا Docker قابل جابه‌جایی می‌ماند
پردازش رویداد و کار پس‌زمینهصف پیام مدیریت‌شده و workerپیام‌ها تا پردازش در صف می‌مانند
کار زمان‌بندی‌شدهcron روی سرور ابریعبارت را با ابزار cron بسازید
ریدایرکت، بازنویسی و هدرتوابع لبهبدون سرور و بدون کد
اتوماسیون بین سرویس‌هاn8n روی سرور ابریگردش کار با رابط گرافیکی

بازگشت به فهرست مطالب

توابع لبه: چه کاری می‌کنند و چه کاری نمی‌کنند؟

توابع لبهٔ ایران‌کلاد برای دامنه‌هایی است که از طریق پروکسی لبهٔ ما سرویس می‌گیرند. برای هر رکورد می‌توانید قانون تعریف کنید: درخواست‌های یک مسیر را با کد ۳۰۱ یا ۳۰۲ به آدرس دیگری بفرستید، مسیر را پیش از رسیدن به سرور بازنویسی کنید یا یک هدر به پاسخ اضافه کنید. این قانون‌ها روی لبه اجرا می‌شوند و سرور شما اصلاً درگیر نمی‌شود.

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

بازگشت به فهرست مطالب

اجرای وب‌هوک و API سبک روی سرور ابری

برای بیشتر تیم‌ها ساده‌ترین جایگزین سرورلس یک سرور ابری کوچک است که چند سرویس سبک را هم‌زمان اجرا می‌کند. هر وب‌هوک یا API را یک برنامهٔ کوچک بنویسید، با systemd یا pm2 روشن نگه دارید و با یک reverse proxy مثل Nginx و گواهی SSL روی دامنهٔ خودتان منتشر کنید.

قیمت‌های زیر لحظه‌ای و ساعتی‌اند. برخلاف سرورلس، هزینه به تعداد درخواست بستگی ندارد و تا وقتی سرور وجود دارد ثابت است؛ معادل ماهانه بر پایهٔ ۷۳۰ ساعت حساب شده است. هر سرور ۵۰ گیگابایت ترافیک ماهانه دارد.

اگر چند API کوچک دارید، همه را روی یک سرور و پشت یک reverse proxy قرار دهید و هر کدام را با یک زیردامنه یا مسیر جدا منتشر کنید. با Docker هر سرویس در محیط خودش اجرا می‌شود و وابستگی‌هایشان با هم تداخل پیدا نمی‌کند؛ راهنمای نصب Docker این مرحله را توضیح می‌دهد.

سرویسمنابعساعتی (تومان)تقریبی ماهانه (تومان)
سرور ابری mini۱ هسته، ۱ گیگ رَم، ۲۰ گیگ دیسک۱٬۱۰۰۸۰۳٬۰۰۰
سرور ابری standard۲ هسته، ۲ گیگ رَم، ۴۰ گیگ دیسک۲٬۲۰۰۱٬۶۰۶٬۰۰۰
صف پیام مدیریت‌شده miniRabbitMQ یا NATS۱٬۳۰۰۹۴۹٬۰۰۰

بازگشت به فهرست مطالب

معماری رویدادمحور با صف پیام به‌جای تابع

بخش بزرگی از کاربرد سرورلس، کارهای پس‌زمینه است: ارسال ایمیل بعد از ثبت‌نام، ساخت تصویر کوچک بعد از بارگذاری عکس یا به‌روزرسانی گزارش بعد از هر خرید. همین الگو را می‌توانید با صف پیام پیاده کنید: برنامهٔ اصلی رویداد را در صف می‌گذارد و فوراً به کاربر پاسخ می‌دهد، و worker جداگانه آن را برمی‌دارد و پردازش می‌کند.

مزیت این روش این است که اگر worker موقتاً از کار بیفتد یا بار ناگهان زیاد شود، پیام‌ها در صف می‌مانند و از دست نمی‌روند. برای پردازش سریع‌تر هم کافی است تعداد worker‌ها را زیاد کنید. صف پیام مدیریت‌شده ایران‌کلاد RabbitMQ و NATS را با پرداخت ساعتی ارائه می‌دهد.

بازگشت به فهرست مطالب

محدودیت‌های سرورلس که کمتر درباره‌شان گفته می‌شود

سرورلس برای همه‌چیز مناسب نیست. اولین درخواست بعد از یک دورهٔ بیکاری باید منتظر بالا آمدن محیط اجرا بماند؛ این شروع سرد برای API‌هایی که کاربر منتظر پاسخشان است محسوس است. بیشتر محیط‌های سرورلس برای مدت اجرای هر تابع سقف دارند، پس پردازش‌های طولانی مثل تبدیل ویدئو یا ساخت گزارش‌های سنگین باید به تکه‌های کوچک‌تر شکسته شوند.

تابع‌ها بی‌حالت‌اند و اتصال دائمی به دیتابیس ندارند؛ اگر هزار نمونه هم‌زمان اجرا شوند، ممکن است هزار اتصال هم‌زمان به دیتابیس باز شود و آن را از پا بیندازد. اشکال‌زدایی و دیدن لاگ هم معمولاً سخت‌تر از یک سرور معمولی است. این‌ها دلیل نمی‌شوند سرورلس را کنار بگذارید، اما نشان می‌دهند چرا برای بسیاری از تیم‌ها یک سرور کوچک یا صف پیام انتخاب ساده‌تری است.

بازگشت به فهرست مطالب

چارچوب‌های سرورلس متن‌باز روی کوبرنتیز

اگر تیم شما با کوبرنتیز آشناست و تجربهٔ سرورلس را واقعاً لازم دارد، چارچوب‌های متن‌بازی مثل OpenFaaS و Knative روی کوبرنتیز اجرا می‌شوند و مدل تابع، مقیاس خودکار Pod‌ها و حتی مقیاس به صفر را فراهم می‌کنند. در اصل می‌توانید آن‌ها را روی خوشهٔ کوبرنتیز مدیریت‌شده خودتان نصب کنید.

صادقانه بگوییم: این چارچوب‌ها خودشان چند جزء دارند و روی خوشهٔ کوچک تک‌نودی بخش قابل توجهی از منابع را مصرف می‌کنند. نصب، به‌روزرسانی و رفع اشکال آن‌ها هم با شماست. پیش از استفادهٔ جدی، روی یک خوشهٔ آزمایشی امتحانشان کنید و بسنجید که آیا پیچیدگی اضافه ارزشش را دارد.

بازگشت به فهرست مطالب

سرورلس یا سرور دائمی؛ کدام اقتصادی‌تر است؟

پاسخ به الگوی بار شما بستگی دارد. این مقایسهٔ کلی کمک می‌کند تصمیم بگیرید:

موضوعسرورلس (به‌طور کلی)سرور ابری
بار پراکنده با بیکاری طولانیمعمولاً ارزان‌ترهزینهٔ ثابت حتی در بیکاری
بار ثابت شبانه‌روزیمعمولاً گران‌ترمعمولاً ارزان‌تر و قابل پیش‌بینی
تأخیر اولین درخواستشروع سرد ممکن استهمیشه آماده
کارهای طولانیمحدودیت زمان اجرابدون محدودیت
کنترل محیط اجرامحدودکامل، با دسترسی root
وضعیت در ایران‌کلادبه‌زودیسفارش آنلاین از پنل

بازگشت به فهرست مطالب

کدتان را از امروز برای سرورلس آماده کنید

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

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

بازگشت به فهرست مطالب بازگشت به ابتدای راهنما

پرسش و پاسخ،  ۱۰ پرسش

سؤالات متداول

پاسخ پرسش خود را پیدا نکردید؟ با پشتیبانی در تماس باشید.

سرورلِس دقیقاً چیست؟
در مدل سرورلس به‌جای اجارهٔ سرور دائمی، فقط یک تابع (قطعه کد) را بارگذاری می‌کنید. تابع با یک رویداد، مثل درخواست HTTP یا پیام صف، اجرا می‌شود و پس از پاسخ متوقف می‌شود. ارائه‌دهنده مقیاس و زیرساخت را مدیریت می‌کند و هزینه بر اساس تعداد و مدت اجراها حساب می‌شود.
آیا توابع سرورلس در ایران‌کلاد قابل استفاده است؟
خیر. این سرویس هنوز عرضه نشده و سفارش، زبان‌های پشتیبانی‌شده یا قیمت ندارد. اگر به آن نیاز دارید، از صفحهٔ تماس اعلام کنید. برای همین کارها امروز می‌توانید از سرور ابری، صف پیام مدیریت‌شده و توابع لبه استفاده کنید.
وب‌هوک را امروز کجا اجرا کنم؟
یک سرور ابری کوچک با Node.js یا PHP برای دریافت وب‌هوک کافی است. برنامه را با systemd یا pm2 همیشه روشن نگه دارید و یک reverse proxy با گواهی SSL جلوی آن بگذارید. پورت‌های ۸۰ و ۴۴۳ روی سرورها به‌صورت پیش‌فرض باز است.
توابع لبهٔ ایران‌کلاد همان سرورلس است؟
نه. توابع لبه قانون‌های آماده‌ای برای دامنه‌های پروکسی‌شده‌اند: ریدایرکت، بازنویسی مسیر و افزودن هدر. کد دلخواه شما را اجرا نمی‌کنند. اگر کارتان فقط ریدایرکت یا تغییر هدر است، توابع لبه بدون سرور جواب می‌دهند.
اجرای یک API سبک روی سرور ابری چقدر هزینه دارد؟
با قیمت فعلی، کوچک‌ترین سرور ابری (۱ هسته، ۱ گیگابایت رَم) حدود ۱٬۱۰۰ تومان در ساعت است که ساعتی از کیف پول کسر می‌شود. یک سرور کوچک معمولاً می‌تواند چندین وب‌هوک و API سبک را هم‌زمان میزبانی کند.
کار رویدادمحور را بدون سرورلس چطور پیاده کنم؟
رویدادها را در یک صف پیام قرار دهید و یک یا چند worker روی سرور ابری آن‌ها را مصرف کنند. صف پیام مدیریت‌شدهٔ ایران‌کلاد RabbitMQ و NATS ارائه می‌دهد و اگر worker موقتاً از کار بیفتد، پیام‌ها در صف می‌مانند.
کارهای زمان‌بندی‌شده را کجا اجرا کنم؟
روی سرور ابری با cron یا تایمرهای systemd. هر کار را طوری بنویسید که اجرای دوباره‌اش مشکلی ایجاد نکند و خروجی و خطا را در لاگ ذخیره کنید. برای نوشتن عبارت زمان‌بندی، ابزار cron ایران‌کلاد کمک می‌کند.
می‌توانم چارچوب سرورلس متن‌باز را خودم اجرا کنم؟
چارچوب‌هایی مثل OpenFaaS و Knative روی کوبرنتیز اجرا می‌شوند و در اصل می‌توانید آن‌ها را روی خوشهٔ کوبرنتیز خودتان نصب کنید. نصب، به‌روزرسانی و رفع اشکال آن‌ها با شماست و پیش از استفادهٔ جدی، روی خوشهٔ آزمایشی امتحانشان کنید.
سرورلس همیشه از سرور ارزان‌تر است؟
نه. برای بار پراکنده با ساعت‌های طولانی بیکاری، پرداخت به‌ازای اجرا معمولاً ارزان‌تر است. اما برای باری که شبانه‌روز ثابت است، یک سرور دائمی اغلب هزینهٔ کمتر و رفتار قابل پیش‌بینی‌تری دارد.
وقتی سرورلس عرضه شد، کدم را باید بازنویسی کنم؟
اگر منطق اصلی را از جزئیات اجرا جدا نگه دارید، نه. تابعی بنویسید که ورودی بگیرد و خروجی بدهد و لایهٔ HTTP یا صف را دور آن بپیچید. این‌طور همان کد امروز روی سرور و فردا روی هر محیط سرورلس قابل استفاده است.

پاسخ پرسش خود را پیدا نکردید؟ با پشتیبانی در تماس باشید.

به توابع سرورلس نیاز دارید؟

بنویسید چه کاربردی دارید، با چه زبانی کار می‌کنید و تقریباً چند اجرا در روز دارید. این اطلاعات در طراحی و اولویت‌بندی سرویس اثر دارد.