مقالات
Serverless computing

Serverless computing چیست و چه مزایایی دارد؟

محاسبات بدون سرور که به آن serverless computing نیز گفته می شود، یکی از فناوری هایی است که امروزه در حوزه شبکه بسیار مورد استفاده قرار می گیرد. این فرآیند در واقع یک مدل اجرای محاسباتی است که به توسعه دهندگان نرم افزار اجازه می دهد تا بدون نیاز به مدیریت زیر ساخت های بک اند خود، برنامه ها و سرور های مورد نظر خود را بسازند و اجرا کنند. برای آشنایی بیشتر در این مقاله قصد داریم درمورد اینکه serverless computing چیست و چه کاربردی هایی دارد توضیح دهیم.

Serverless computing چیست؟

Serverless computing

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

استفاده از ویژگی محاسبات بدون سرور به مهندسان و توسعه دهندگان این امکان را می دهد تا تمرکز بیشتری روی نوشتن کد برنامه فرانت اند داشته باشند. همچنین به کمک این نوع محاسبات، در مصرف زمان نیز صرفه جویی خواهد شد.

با استفاده از serverless computing تنها کاری که توسعه دهندگان باید انجام دهند این است که برنامه خود را بنویسند و در کانتینر هایی که ارائه دهندگان خدمات ابری ارائه می دهند، مستقر کنند. ارائه دهندگان خدمات ابری تمامی موارد را مدیریت می کنند و در صورت نیاز زیر ساخت ها را برای اجرای کد های شما تنظیم خواهند نمود.

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

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

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

محاسبات بدون سرور به معنای عدم وجود سرور نیست!

محاسبات بدون سرور به معنای عدم وجود سرور نیست!

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

امروزه بسیاری از برند های بزرگ دنیا این خدمات را ارائه می دهند. خدمات وب آمازون، مایکروسافت آزور، گوگل کلود و IBM Cloud برخی از رایج ترین مثال ها برای محاسبات بدون سرور هستند.

مقایسه serverless computing با PaaS، کانتینر ها و ماشین های مجازی

Paas، کانتینر ها و ماشین های مجازی همگی نقش مهمی در توسعه برنامه های ابری و اکوسیستم های محاسباتی دارند. به همین دلیل برای داشتن درک بهتری از serverless computing بهتر است آن را با رقبایش مقایسه کنیم:

  • زمان ارائه: زمان ارائه محاسبات بدون سرور بر حسب میلی ثانیه است. در حالی در دیگر مدل ها ممکن است از دقیقه تا ساعت نیز متغیر باشد.
  • بار اداری: تقریبا بار اداری برای محاسبات بدون سرور در مقایسه با PaaS، کانتینر ها و ماشین های مجازی ناچیز است.
  • تعمیر و نگهداری: از مهم ترین مزایای serverless computing این است که نیاز به تعمیر و نگهداری ندارد؛ زیرا در محاسبات بدون سرور تمامی وظیفه های نگهداری و تعمیر به عهده ارائه دهنده خدمات است. این موضوع برای PaaS نیز صدق می کند؛ اما کانتینر ها و ماشین های مجازی همواره تعمیر و نگهداری نیاز دارند و لازم است که به طور مداوم به روزرسانی شوند.
  • Serverless computing-3
  • مقیاس بندی: مقیاس بندی خودکاری صفر تا صد بخشی از مهم ترین ویژگی های محاسبات بدون سرور است. در دیگر مدل ها مقیاس بندی خودکار است اما سرعت پایینی دارد.
  • برنامه ریزی ظرفیت: serverless computing نیازی به برنامه ریزی ظرفیت ندارد؛ اما دیگر مدل ها به ترکیبی از مقیاس پذیری خودکار و برنامه ریزی ظرفیت نیازمند اند.
  • حالت بی تابعیتی: حالت بی تابعیتی بخشی از محاسبات بدون سرور است. حالت بی تابعیتی بدین معناست که مقیاس پذیری هیچ مشکلی برای محاسبات بدون سرور ایجاد نمی کند؛ اما در دیگر مدل ها باید از HTTP برای اتصال های طولانی مدت استفاده شود تا و وضعیت برای حافظه بین تماس ها پایدار بماند.
  • دسترسی سطح بالا (HA) و بازیابی فاجعه (DR): این دو قابلیت بسیار مهم به صورت پیش فرض و بدون پرداخت هیچ هزینه اضافی در serverless computing در اختیار شما قرار می گیرند؛ اما برای دسترسی به این دو قابلیت در دیگر مدل ها به هزینه و تلاش بیشتری نیاز است.
  • استفاده از منابع: استفاده از منابع در محاسبات بدون سرور در بهینه ترین حالت ممکن است؛ زیرا چیزی به اسم ظرفیت بیکار در آن وجود ندارد. منابع تنها زمانی در اختیار شما قرار خواهند گرفت که بخواهید کد برنامه را اجرا کنید؛ ولی در دیگر مدل ها همیشه مقداری از ظرفیت سرور بدون استفاده باقی می ماند.
  • نحوه محاسبه هزینه ها: در محاسبات بدون سرور هزینه ها معمولا هر 100 میلی ثانیه اندازه گیری می شوند؛ اما هزینه ای که برای PaaS، کانتینر ها و ماشین های مجازی باید پرداخت کنید بر حسب دقیقه یا ساعت محاسبه خواهد شد. در صورتی که نیازی ندارید که همیشه از منابع سرور استفاده کنید، انتخاب مدل محاسبات بدون سرور می تواند در کاهش هزینه ها به شما کمک کند.

جمع بندی

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