Serverless چیست؟ نحوه کارکرد و مزایای آن
- mentorx
- ۱ مهر ۱۴۰۴

Serverless معماریای است که در آن توسعهدهنده فقط بر کدنویسی و منطق برنامه تمرکز میکند و مدیریت سرورها، امنیت، مقیاسپذیری و نگهداری بهطور کامل توسط ارائهدهندگان خدمات ابری مانند AWS، Azure و Google Cloud انجام میشود.
فرض کنید میخواهید یک اپلیکیشن بسازید؛ مثل یک سیستم سفارش آنلاین غذا. اولین چیزی که به ذهنتان میرسد این است که باید یک سرور بخرید یا اجاره کنید، آن را کانفیگ کنید، امنیتش را بسنجید، بعد هم همیشه حواستان به نگهداری و بهروزرسانی آن باشد. اما واقعیت این است که امروزه دیگر لازم نیست وقت و انرژی خودتان را صرف مدیریت سرور کنید. اینجا دقیقاً همان جایی است که سؤال اصلی مطرح میشود:
Serverles چیست؟ جالب است بدانید طبق گزارشی از Gartner، بیش از ۵۰٪ شرکتهای فناوری تا سال ۲۰۲۵ بخشی از سیستمهای خود را روی معماری Serverless پیادهسازی میکنند. دلیلش هم ساده است: توسعهدهنده فقط روی کدنویسی تمرکز میکند و همه چیز دیگر از جمله مدیریت سرور، مقیاسپذیری و نگهداری، به سرویسهای ابری سپرده میشود.
اگر دانشجوی رشته شبکه باشید یا در این حوزه کار کنید، احتمالاً بارها با مشکلاتی مثل کانفیگ کردن یک وبسرور، تنظیم لود بالانسر یا افزایش منابع سرور در ساعات پیک مواجه شدهاید. Serverless دقیقاً آمده تا این دردسرها را برطرف کند. در ادامه این مقاله از بلاگ دواپس ایران ارائه دهنده خدمات تخصصی دواپس با هم میبینیم که Serverless چیست؟ چگونه کار میکند و چرا بسیاری از استارتاپها و حتی غولهای فناوری مثل Netflix و Coca-Cola به سراغش رفتهاند؟
Serverless چیست؟
وقتی اسمش را برای اولین بار در خدمات پشتیبانی شبکه میشنوید، شاید فکر کنید که «Serverless» یعنی بدون سرور! اما این یک باور غلط است. حقیقت این است که در معماری Serverless سرورها همچنان وجود دارند، فقط شما دیگر مسئول مدیریت آنها نیستید. همه کارهای مربوط به سرور مثل نگهداری، مقیاسپذیری، بهروزرسانی و امنیت به عهده ارائهدهندههای خدمات ابری مثل AWS، Azure یا Google Cloud گذاشته میشود.
برای اینکه راحتتر موضوع را درک کنید، یک مثال ساده بزنیم:
تصور کنید شما راننده یک تاکسی اینترنتی هستید. کار اصلیتان فقط رانندگی است. شما نگران تعمیر ماشین، بیمه، یا عوض کردن روغن موتور نیستید؛ چون همه این کارها بر عهده شرکت صاحب خودرو است. شما فقط پشت فرمان مینشینید و مشتریها را جابهجا میکنید.
Serverless هم دقیقاً همین مفهوم را در دنیای شبکه و توسعه نرمافزار پیاده میکند. شما بهعنوان توسعهدهنده فقط روی کدنویسی و منطق برنامه تمرکز میکنید و دیگر لازم نیست به سرورها، سیستمعامل یا زیرساخت فکر کنید.
به زبان ساده: Serverless چیست؟ معماریای است که باعث میشود سرورها برای شما «نامرئی» شوند و همه دغدغههای زیرساختی توسط ارائهدهندههای ابری مدیریت گردد.
Serverless چگونه کار میکند؟
در ادامه فرآیند کار serverless را توضیح میدهیم:
رویداد (Event) ایجاد میشود
هر چیزی میتواند آغازگر اجرای یک برنامه در Serverless باشد. این رویداد ممکن است یک کلیک کاربر روی دکمه ثبت سفارش باشد، یا آپلود شدن یک فایل، یا حتی رسیدن ساعت به یک زمان مشخص. به محض وقوع رویداد، سرور ابری آن را شناسایی میکند و آماده اجرای کدی میشود که شما نوشتهاید.
مثال: وقتی در یک فروشگاه اینترنتی دکمه «خرید» را میزنید، این رویداد باعث شروع پردازش سفارش شما میشود.
اجرای فانکشن (Function Execution)
بعد از وقوع رویداد، نوبت به اجرای فانکشن میرسد. فانکشنها قطعههای کوچکی از کد هستند که یک کار مشخص را انجام میدهند. در Serverless، این فانکشنها فقط زمانی اجرا میشوند که نیاز باشد، نه قبل و نه بعد از آن. مثال: وقتی یک عکس در اپلیکیشن آپلود میکنید، فانکشنی اجرا میشود که اندازه تصویر را تغییر میدهد و نسخه بهینهشده را ذخیره میکند.
استفاده از سرویسهای آماده (BaaS)
در معماری Serverless نیازی نیست همهچیز را از صفر بسازید. بسیاری از نیازهای متداول مثل ذخیره فایل، مدیریت کاربران، یا پایگاه داده توسط سرویسهای ابری آماده ارائه میشوند. فانکشن شما میتواند بهراحتی به این سرویسها متصل شود. مثال: بهجای نوشتن سیستم ورود کاربر از ابتدا، میتوانید از سرویس آمادهای مثل Firebase Authentication استفاده کنید.
مقیاسپذیری خودکار (Auto Scaling)
یکی از جذابترین بخشهای Serverless همینجاست. اگر تعداد درخواستها افزایش یابد، سرویس ابری بهطور خودکار تعداد بیشتری فانکشن اجرا میکند تا پاسخگویی سریع بماند. وقتی تعداد درخواستها کم شود، این فانکشنها خاموش میشوند. بیشتر بخوانید: سرور مجازی یا vps چیست؟
مثال: تصور کنید یک رستوران آنلاین در ساعات ناهار صدها سفارش میگیرد. در این زمان Serverless تعداد بیشتری فانکشن برای پردازش سفارشها اجرا میکند.
پایان اجرا و آزادسازی منابع
وقتی فانکشن کار خود را انجام داد، بسته میشود و منابع محاسباتی آن آزاد میشوند. این ویژگی باعث میشود سرورها همیشه روشن نباشند و هزینهای بابت بیکاری پرداخت نکنید. شبیه تاکسی اینترنتی است؛ راننده فقط وقتی مسافر دارد فعال است و وقتی کاری ندارد، سیستم بهطور خودکار او را غیرفعال میکند.
مدل پرداخت بر اساس استفاده (Pay-as-you-go)
در نهایت، شما فقط بهاندازهای که استفاده کردهاید هزینه پرداخت میکنید. خبری از پرداخت ثابت برای سرورهای همیشه روشن نیست. این مدل هم بهصرفه است و هم شفاف. درست مثل قبض برق است؛ فقط بهاندازه مصرف واقعی خودتان هزینه میپردازید.
برای مطالعه بیشتر بخوانید: cdn چیست ؟همه چیز درباره شبکه انتقال محتوا
مزایای Serverless چیست؟
مهمترین مزایای این سیستم چه مواردی هستند؟
حذف مدیریت سرور
در Serverless دیگر نیازی نیست شما نگران نصب سیستمعامل، آپدیت امنیتی یا نگهداری سختافزار باشید. همه این کارها توسط سرویسدهنده ابری انجام میشود. مثل این است که بهجای خرید یک ماشین شخصی و رسیدگی به بیمه و سرویسهای دورهای، از تاکسی اینترنتی استفاده کنید.
مقیاسپذیری خودکار (Auto Scaling)
وقتی تعداد درخواستها بالا میرود، Serverless بهطور خودکار منابع بیشتری در اختیار فانکشنها قرار میدهد و وقتی درخواستها کم میشود، منابع آزاد میشوند.
مثال: یک فروشگاه آنلاین در روز بلکفرایدی هزاران سفارش دریافت میکند. Serverless خودش تعداد فانکشنهای بیشتری اجرا میکند تا هیچ کاربری معطل نشود.
هزینه بر اساس استفاده (Pay-as-you-go)
در این مدل فقط برای زمانی که کد شما اجرا میشود هزینه پرداخت میکنید. اگر هیچ درخواستی وجود نداشته باشد، هزینهای هم ندارید. درست مثل قبض آب است؛ فقط بهاندازه مصرف واقعی پرداخت میکنید، نه بیشتر.
سرعت در توسعه و عرضه محصول
چون دغدغه سرور و زیرساخت ندارید، تمرکزتان فقط روی نوشتن کد و منطق برنامه است. این باعث میشود زمان توسعه و عرضه محصول مانند استفاده از دواپس بسیار سریعتر شود. یک استارتاپ کوچک میتواند در چند هفته یک اپلیکیشن آماده کند، بدون اینکه تیم بزرگی برای مدیریت سرور داشته باشد. بیشتر بخوانید : دواپس چیست و چه کاربردی دارد؟
نگهداری و امنیت بهتر
بهروزرسانیها، پچهای امنیتی و نگهداری زیرساخت همه توسط سرویسدهنده ابری مدیریت میشوند. این یعنی شما از آخرین استانداردهای امنیتی بدون دردسر بهرهمند میشوید.
مثال: درست مثل این است که در یک برج مدرن زندگی کنید که مدیریت ساختمان بهطور مرتب از آسانسور و سیستمهای ایمنی مراقبت میکند.
مناسب برای پروژههای متغیر و رویدادمحور
Serverless بهترین گزینه برای پروژههایی است که بار کاری در آنها متغیر است یا رویدادمحور عمل میکنند. مثال: اگر یک وبسایت فقط در زمان ثبتنام دانشگاهها ترافیک زیادی دارد، Serverless باعث میشود در طول سال هزینه اضافی بابت سرورهای بیکار پرداخت نکنید.
پس اگر بخواهیم خلاصه کنیم، مهمترین مزایای Serverless شامل حذف مدیریت سرور، مقیاسپذیری خودکار، کاهش هزینهها، سرعت بالای توسعه، امنیت بهتر و سازگاری با پروژههای متغیر است.
برای مطالعه بیشتر بخوانید: مدیریت ریسک امنیت اطلاعات چیست؟
کاربردهای واقعی Serverless
Serverless در چه جاهایی بیشترین کاربرد را دارد؟
پردازش فایلها و تصاویر
یکی از رایجترین کاربردهای Serverless، پردازش فایلهاست. تصور کنید کاربر در یک وبسایت عکسی آپلود میکند. بهمحض آپلود، یک فانکشن اجرا میشود که تصویر را تغییر اندازه میدهد، فرمتش را تبدیل میکند یا حتی روی آن واترمارک میگذارد. همه این کارها بدون نیاز به سرور همیشه روشن انجام میشوند. مثال: اینستاگرام از روش مشابهی برای کوچک کردن و بهینهسازی عکسهای کاربران استفاده میکند.
ساخت API برای اپلیکیشنها
Serverless برای ایجاد APIهای سبک و سریع فوقالعاده است. شما میتوانید فانکشنهایی تعریف کنید که هرکدام یک بخش از API شما را تشکیل دهند و به درخواستهای کاربران پاسخ دهند. برای مثال یک اپلیکیشن آبوهوا میتواند با فانکشن Serverless اطلاعات دما و پیشبینی روزانه را به کاربر نمایش دهد. بیشتر بخوانید: رابط برنامه نویسی (API) چیست؟
پردازش دادههای بلادرنگ (Real-time Data Processing)
در پروژههایی که حجم زیادی داده تولید میشود، Serverless میتواند دادهها را در لحظه پردازش کند. این ویژگی در شبکه و IoT اهمیت زیادی دارد. برای مثال یک کارخانه مجهز به سنسورهای IoT میتواند دادههای دما و فشار دستگاهها را لحظهای به فانکشنهای Serverless بفرستد تا وضعیت سیستم پایش شود.
ارسال نوتیفیکیشن و پیام
یکی دیگر از کاربردها ارسال پیام یا نوتیفیکیشن به کاربران است. بهمحض وقوع یک رویداد، فانکشنی اجرا میشود و پیام لازم را ارسال میکند. وقتی خرید آنلاین شما ثبت میشود، پیامک یا ایمیل تأیید سفارش بهطور خودکار از طریق یک فانکشن Serverless ارسال میشود.
برنامههای اینترنت اشیا (IoT)
دستگاههای IoT معمولاً رویدادهای کوچک و متعددی تولید میکنند. Serverless انتخاب مناسبی برای مدیریت این رویدادهاست، چون مقیاسپذیری خودکار دارد و هزینهها هم متناسب با استفاده واقعی محاسبه میشوند. برای مثال در یک خانه هوشمند، وقتی سنسور حرکتی فعال شود، فانکشنی اجرا میشود که چراغها را روشن میکند.
پردازش ویدئو و صوت
Serverless میتواند برای کارهایی مثل فشردهسازی ویدئو، تبدیل فرمت یا حتی تشخیص صدا استفاده شود. این کارها سنگین هستند اما چون فانکشنها موازی اجرا میشوند، بهخوبی مدیریت میشوند. مثال: یک وبسایت آموزشی میتواند با Serverless ویدئوهای آپلودشده کاربران را خودکار به کیفیتهای مختلف (480p, 720p, 1080p) تبدیل کند.
اتوماسیون وظایف روزمره (Automation)
خیلی وقتها لازم است کارهای تکراری بهطور خودکار انجام شوند. Serverless برای چنین سناریوهایی ایدهآل است. برای مثال هر شب ساعت ۱۲ یک فانکشن اجرا میشود و از پایگاه داده نسخه پشتیبان تهیه میکند.
جمعبندی
در این مقاله با هم بررسی کردیم که Serverless چیست؟، چگونه کار میکند و چه کاربردهایی در دنیای واقعی دارد. فهمیدیم که برخلاف اسمش، Serverless به معنای حذف سرور نیست، بلکه به این معناست که مدیریت سرورها به سرویسدهندگان ابری سپرده میشود و توسعهدهنده میتواند تنها روی نوشتن کد و منطق برنامه تمرکز کند.
مزایای این معماری مثل مقیاسپذیری خودکار، کاهش هزینهها، سرعت توسعه بالا و حذف دغدغههای نگهداری سرور باعث شده بسیاری از شرکتهای بزرگ فناوری از آن استقبال کنند. در عین حال، معایبی مانند محدودیت در زمان اجرای فانکشنها یا وابستگی به ارائهدهندگان ابری هم وجود دارد که باید در تصمیمگیریها در نظر گرفته شود.
کاربردهای Serverless را دیدیم؛ از پردازش فایل و تصاویر گرفته تا ارسال نوتیفیکیشن، مدیریت دستگاههای IoT، ساخت API و حتی اتوماسیون وظایف روزمره. همه اینها نشان میدهد که Serverless نهتنها یک مفهوم مدرن، بلکه ابزاری عملی و مؤثر برای حل بسیاری از چالشهای شبکه و توسعه نرمافزار است.
در نهایت، اگر شما دانشجوی شبکه هستید یا در این حوزه کار میکنید، شناخت Serverless چیست؟ میتواند دید تازهای به شما بدهد و کمک کند در پروژههای آینده بهترین انتخاب را برای زیرساخت خود داشته باشید.