Serverless به چه معناست؟
ﺯﻣﺎﻥ ﻣﻄﺎﻟﻌﻪ: 6 دقیقه

Serverless به چه معناست؟

به زبان بسیار ساده پردازش مبتنی بر Serverless به حالتی گفته می‌شود که به اندازه مصرف سرویس‌های بک-اند منابع به یک اپلیکیشن تخصیص خواهد یافت. هدف بیشتر این معماری این است که توسعه دهندگان بک-اند بتوانند بدون درگیر شدن با زیرساخت‌های ابری و کار با سرور و… بتوانند اپلیکیشن مورد نظرشان را دیپلوی کنند و آن را در اختیار کاربران قرار بدهند.

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

در این نوع از پردازش تمام هزینه‌ها براساس میزان مصرفی خواهد بود که برنامه از سرور خواهد داشت. بنابراین دیگر نیازی به خریداری یک میزان ثابت از حافظه داخلی، پهنای باند، تعداد سرور نخواهد بود چرا که پردازش Serverless خود به صورت خودکار میزان استفاده از منابع سخت افزاری را مورد ارزیابی قرار داده و همان مقدار را نیز در اختیار برنامه قرار خواهد داد.

از این جهت صرفه جویی بسیار زیادی در برنامه انجام می‌شود چرا که شما دقیقاً به میزان استفاده‌تان پول پرداخت خواهید کرد و اگر برنامه‌تان واقعاً به میزان بیشتری از منابع نیاز داشته باشد سرویس دهنده Serverless خود به صورت خودکار آن را در اختیارتان قرار داده و براساس مقیاس پروژه خود را همخوان می‌کند.

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

در نتیجه گول نام Serverless را نخورید چرا که این عبارت در انگلیسی به معنای «بدون سرور» خواهد بود. در صورتی که اصلاً بدین شکل نیست.

یک داستان قدیمی رو به پیشرفت

در روزگارهای اولیه دنیای اینترنت هر کسی که قصد داشتن یک وبسایت را داشت باید یک سرور (کامپیوتری با توانایی پردازش مناسب) را به صورت شخصی خریداری می‌کرد و از آن برای میزبانی وبسایت‌ش استفاده می‌کرد که روشی پر دردسر و البته پر هزینه بود.

این فرد می بایست در ابتدا هزینه بالایی بابت خریداری سرور می‌پرداخت و سپس یک فرد متخصص در این زمینه را استخدام می‌کرد و سرور را برای وی پیاده‌سازی می‌کرد و وبسایت را روی آن میزبانی می‌کرد. در کنار آن باید هزینه‌های نگهداری و برق و خنک کننده و ده‌ها مورد دیگر را نیز پرداخت می‌کرد که همگی دردسر‌های بسیار زیادی را برای صاحب وبسایت به وجود می‌آورد.

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

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

اما با پیشرفت‌های این حوزه و موضوعاتی مانند مجازی‌سازی همه چیز آماده شد تا موضوع Serverless بوجود بیاید.

انقلابی جدید در دنیای میزبانی کدها

پردازش مبتنی بر Serverless یک روش نسبتاً مدرن‌تر نسبت به موارد قبل است و توسعه دهندگان را قادر می‌سازد تا تنها براساس نیازهای مورد نظرشان هزینه بکنند و میزبان این سرویس‌ها نیز براساس میزان استفاده اپلیکیشن از منابع سرور از آن‌ها صورت حساب دریافت می‌کند.

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

بنابراین در نهایت هدف Serverless این است که شما نیازی به نگرانی در ارتباط با مدیریت سرور نداشته و می‌توانید بدون دانش مدیریت سرور اپلیکیشن‌های‌تان را به راحتی دیپلوی بکنید.

فواید استفاده از Serverless

  • هزینه کمتر: بهینه‌ترین تکنولوژی به لحاظ هزینه که تا به حال معرفی شده است مطمئناً Serverless خواهد بود. همانطور که پیشتر گفته شد شما تنها نیاز به پرداخت هزینه براساس میزان مصرف‌تان خواهید داشت.

  • مقیاس‌پذیری: توسعه دهندگانی که از Serverless استفاده می‌کنند نیازی به نگرانی در ارتباط با مقیاس‌پذیری پروژه‌های‌شان نخواهند داشت چرا که منابع مورد نیاز براساس بزرگی اپلیکیشن و مصارف آن بیشتر شده و تمام این کارها نیز به صورت خودکار صورت می‌گیرد.

  • سریع بودن: با استفاده از تکنولوژی‌های جدیدی مانند داکر و دیگر تکنولوژي‌های مبتنی بر DevOps شما برای دیپلوی و آماده کردن پروژه‌های‌تان روی یک سرویس Serverless بسیار راحت‌تر می‌توانید کار کنید. از طرفی دیگر هیچ پیکربندی خاصی برای مدیریت Serverless وجود ندارد و در نتیجه به سرعت پروژه‌تان آماده می‌شود.

شرکت‌های میزبانی سرویس Serverless

در حال حاضر بیشتر شرکت‌های مدرنی که در حوزه‌های میزبانی و پردازش ابری کار می‌کنند سرویس‌های Serverless را به کاربران ارائه می‌دهند. از جمله این شرکت‌های می‌توان به آمازون، گوگل و مایکروسافت اشاره کرد که هر کدام با سرویس‌های AWS، Google Cloud و Azure این امکانات را برای توسعه دهندگان فراهم می‌کنند.

در پایان

مطمئنا درک ویژگی‌های معماری Serverless یکی از مهمترین موضوعاتی خواهد بود که توسعه دهندگان اپلیکیشن‌های مختلف مخصوصا توسعه دهندگان Back-End باید از آن آگاهی پیدا بکنند. یادگیری آن پیچیده نیست و با تست کردن چند سرویس به خوبی می‌توانید با ویژگی‌های آن‌ها آشنایی پیدا بکنید. 

چه امتیازی برای این مقاله میدهید؟

خیلی بد
بد
متوسط
خوب
عالی
5 از 1 رای

2 ماه پیش
/@arastoo
ارسطو عباسی
برنامه‌نویس و توسعه‌دهنده نرم‌افزار - نویسنده و کپی‌رایتر - #پایتون - #جنگو - #لینوکس

برنامه‌نویس تمام وقت پایتون و مدیر بخش تولید محتوا وبسایت راکت - وبلاگ شخصی: https://arastoo.dev

دیدگاه و پرسش

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

ورود یا ثبت‌نام

در حال دریافت نظرات از سرور، لطفا منتظر بمانید

در حال دریافت نظرات از سرور، لطفا منتظر بمانید

ارسطو عباسی

برنامه‌نویس و توسعه‌دهنده نرم‌افزار - نویسنده و کپی‌رایتر - #پایتون - #جنگو - #لینوکس