کاهش هزینه‌ها، تخصیص درست منابع متناسب با نیازها
محاسبات فارغ از سرور چیست و چرا برای کسب‌وکارهای بزرگ اهمیت دارد؟
این روزها مبحث جدیدی با عنوان Serverless Computing یا محاسبات فارغ از سرور سر زبان‎ها افتاده است. برای یک ناظر ناآگاه چنین اصطلاحی ممکن است خیلی عجيب به نظر برسد: چطور ممکن است شما بتوانید بدون در اختیار داشتن یک سرور محاسبات انجام دهید؟ خیلی‎ها معتقدند باید نام بهتری برای آن در نظر گرفته می‌شد؛ اما فارغ از نامی‌ که برای آن در نظر گرفته‌شده این‌یک مبحث مهم در بین متخصصان فناوری است که این روزها توجه زیادی به آن می‌شود. این‌جا نیز این سرورها هستند که در پشت‌صحنه همه کارها را انجام می‌دهند، اما همان‎گونه که در ادامه خواهید دید آن‌ها به‌گونه‌ای خلاصه‌شده‌اند که توسعه‌دهندگان بتوانند بدون نگرانی‎های عملیاتی، بر روی خلاقیت‎های کدنویسی خود تمرکز کنند. در این مقاله سعی بر آن شده تا با بیان ساده توضیح دهیم که محاسبات فارغ از سرور چیست، چگونه کار می‌کند و چه مزایا و معایبی برای سازمان شما دارد.

این مطلب یکی از مقالات پرونده ویژه «رایانش و خدمات ابری» شماره 205 ماهنامه شبکه است. علاقه‌مندان می‌توانند کل این پرونده ویژه را از روی سایت شبکه دانلود کنند.


 محاسبات فارغ از سرور چیست؟

بله باز هم یک عبارت اختصاری دیگر یا Function-as-a-Service، نخستین توضیحی که در مورد آن می‌توان داد این است که سرورها بخشی از این فناوری هستند. دوم، این نوع از خدمات به‌جای استقرار در محل در محیط ابر ارائه می‌شود. دلیلی که ما از اصطلاح فارغ از سرور استفاده می‌کنیم این است که فروشنده ابر تمام برنامه‌ریزی‎های ظرفیتی و مدیریت را پشت پرده انجام می‌دهد. این کار منابع داخلی شما را برای کار روی سایر طرح‎ها آزاد می‌کند.
تامین کننده خدمات ابر به‌طور خودکار منابع سرور شما را بر اساس نوع درخواست شما اضافه، حذف و تنظیم می‌کند، سپس شما می‌توانید کار اصلی خود را انجام دهید. استفاده از این شیوه پرداخت بر اساس نیاز، ضرورت نیاز به‌پیش پرداخت برای منابعی از سرور را که ممکن است تا مدت‎های طولانی حتی از آن استفاده هم نشود، کاهش می‌دهد. صرفه‌جویی در هزینه با استفاده از این شیوه می‌تواند قابل‌توجه باشد.
ورنر وگلس از آمازون می‌گوید: «قبلا، سرورهای شما مثل حیوانات دست‌آموز شما بودند، باید همیشه از آن‌ها مراقبت می‌کردید و اگر مریض می‌شدند مجبور بودید که آن‌ها را مداوا کنید تا دوباره سلامتی خود را به دست بیاورند. بعد با آمدن ابر آن‌ها به شکل گله درآمدند، شما آن‌ها را رها می‌کردید تا خودشان به چراگاه بروند و به این شكل وظیفه شما در نگهداری از آن‌ها کمتر می‌شود. در محاسبات فارغ از سرور دیگر گله‎ای وجود ندارد، تنها کاربرد آن‌ها است که برای شما باقی می‌ماند. دیگر شما نه نگران سلامتی و مراقبت از آن‌ها هستید و نه نیاز دارید به فکر اضافه و کم کردن آن‌ها باشید. تمام مراقبت‎های لازم از قبل انجام‌شده است.»

چنین شیوه‎ای چگونه کار می‌کند؟

اگرچه محاسبات فارغ از سرور هنوز مراحل ابتدایی خود را پشت سر می‌گذارد، به‌وضوح می‌توان مشاهده کرد کارهایی از جمله پردازش داده‎ها، اینترنت اشیا، روبات‎ها‎ی شناختی، زیرساخت‎های موبایل و API های REST به این شیوه انجام می‌شود.
به‌عنوان نمونه و در موارد کاربرد اینترنت اشیا موضوع تنها مصرف داده نیست، بلکه باید به روش بهره‌برداری درست از آن نیز توجه شود. این به آن معنا است که شما باید بتوانيد در نحوه پیاده‌سازی مصارف خود انعطاف‌پذیر بوده و اطمینان حاصل کنید که اگر یک ویژگی جدید معرفی شد، برنامه شما را با اختلال مواجه نمی‌کند. اینجا همان جایی است که محاسبات فارغ از سرور می‌تواند راهگشا باشد.
فرض کنید، یخچالی دارید که به‌طور مرتب شما را از وضعیت قطعات خودآگاه می‌سازد. زمانی که فیلتر آب این یخچال در حال خراب شدن است (مثلا 20 درصد از چرخه کاری آن باقی‌مانده است) یک پیغام به شما ارسال می‌شود و این امکان در اختیار شما قرار می‌گیرد که از طریق تلفن هوشمند خود یک فیلتر جدید سفارش دهید. چنین عملکردی نیازمند جمع آوری داده‎های مختلفی از جمله اطلاعات مربوط به مصرف‌کننده و خدمات دهنده است. محاسبات فارغ از سرور می‌تواند در زمینه ترکیب و تجربه و تحلیل سریع این اطلاعات و پاسخ به آن مفید باشد.
ما یک رویداد (در اینجا فیلتر خراب) داریم که به سطح زیرین محاسبات که در اینجا سرورهای ابر هستند، ارسال می‌شود. می‌توانیم با دریافت این رویداد و فراخوانی یک تابع محاسبات فارغ از سرور یک جست‌وجوی ساده انجام دهيم. آیا این مشتری مشمول خدمات پس از فروش می‌شود؟ آیا این نوع فیلتر آب در فهرست خدمات پس از فروش قرار دارد؟ با استفاده از زیرساخت‎های محاسبات فارغ از سرور می‌توانید این نوع از رویدادهای اینترنت اشیا را به‌سرعت مدیریت کنید.
کار در یک محیط فارغ از سرور به کمی‌ تغییرات نیاز دارد تا شما بتوانید برنامه‎های خود را روی این پلتفرم خدمت‌رسانی جدید پیاده‌سازی کنید؛ بنابراین بهترین مکان برای استقرار اولیه این فناوری استفاده از آن برای کاربردهای جدید است. برای این‌که بتوانید از اپلیکیشن‎های سازمانی فعلی خود استفاده کنید باید آن‌ها را اصلاح کنید. مثل هر فناوری جدید دیگری باید کار را کوچک و ساده آغاز کنید تا به‌مرور از تمام مزایا برخوردار شوید.
بزرگ‌ترین فعالان این حوزه آمازون، گوگل و مایکروسافت هستند. خدمات وب AWS Lambda آمازون و Azure Functions مایکروسافت از بهترین نمونه‎ها در زمینه به‌کارگیری خدمات محاسبات فارغ از سرور هستند و هر دو نیز چند سالی است که مشغول فعالیت هستند. وقتی قرارداد خود را با یکی از این خدمات‌دهندگان منعقد کردید، به‌محض این‌که به یکی از کاربردهای محاسبات بدون سرور نیاز پیدا کردید، این کار به‌طور خودکار و معمولا ظرف چند ثانیه انجام می‌شود.

مزایا

مدیر امور مالی شما از این فناوری خرسند خواهد شد. محاسبات فارغ از سرور می‌تواند به میزان قابل‌ملاحظه‌ای هزینه‎های اجرایی شما را پایین بیاورد. با استفاده از فناوری موجود در محل، شما نیاز دارید که منابع عظیمی‌ را برای سخت‌افزار، نرم‌افزار، پشتیبانی و منابع انسانی صرف کنید. در یک محیط ابری (زیرساخت به‌عنوان یک سرویس یا IAAS) این نوع از هزینه‎ها تا حد زیادی کاهش می‎یابد زیرا شما اساسا زیرساخت خود را از خدمات‌دهنده ابر اجاره می‌کنید. شما همچنان باید مشخص کنید، به چه منابعی و چه مقدار از آن نیاز دارید. این قابلیت گسترش‌پذیری یکی از مزایای اصلی استفاده از محیط فارغ از سرور است. برای یک کاربرد خاص دیگر فرقی نمی‌کند که شما 1000 کاربر داشته باشید یا 10 میلیون کاربر، این توانایی گسترش‌پذیری به شما آزادی عمل می‌دهد تا بر اساس نیازهای سازمان خود سطح دریافت خدمات را تعیین کنید. 
محاسبات فارغ از سرور با فراهم کردن مزایای استفاده از منابع و پلتفرم کلاود سطح بعدی از این مدل خدمات را در اختیار شما می‌گذارند، آن هم به شیوه پرداخت در ازای چیزی که استفاده می‌کنید. با این مدل شما دیگر با خطر کمبود یا بیشتر از حد موردنیاز منابع ابر در آغاز راه مواجه نخواهید شد. یکی دیگر از جنبه‎های آن صرفه‌جویی در زمینه عملیات فردی است. وقتی وظیفه نصب، پیکربندی و تقویت توان عملیاتی سرور را خدمات‌دهنده ابر بر عهده می‌گیرد، شما می‌توانید منابع داخلی خود را به سمت فعالیت‎های
ارزش افزوده سوق دهید. گروه توسعه شما نیز از مزایا و صرفه‌جویی منابع بهره‌مند خواهند شد. توسعه‌دهندگان شما به‌جای نگرانی در مورد منابع سخت‌افزاری می‌توانند روی قابلیت‎های کدنویسی خود تمرکز کنند. به این شکل می‌توان طی مدت‌زمان کمتر به محصولات باکیفیت‎تری دست یافت، با سرعت بیشتری وارد بازار شد و در نهایت راندمان کار را افزایش داد.

معایب

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

نتیجه‌گیری

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

برچسب: