تمرکز بر توسعه نرم‌افزار بدون نگرانی در مورد زیرساخت

فهرست:

مدیریت زیرساخت، چالشی است که باعث می‌شود این روزها، سازمان‌ها کمتر مایل به استفاده از معماری‌های سنتی به‌عنوان زیرساخت محصولات نرم‌افزاری خود باشند. در گذشته توسعه‌دهندگان برای ارائه نرم‌افزارها فشار زیادی را متحمل می‌شدند و به‌جای تمرکز بر توسعه و ایجاد کد، بخش زیادی از وقت خود را صرف مدیریت و مراقبت از زیرساخت می‌کردند. علاوه بر آن، باید نگهداری سیستم‌عامل و فرآیند میزبانی وب سرور مورد نیاز برای برنامه را نیز انجام می‌دادند. از آنجایی‌ که رایانش ابری[1]، اکوسیستم کاملی برای ساخت، توسعه و ارائه خدمات فناوری اطلاعات فراهم می‌کند، به توسعه‌دهندگان این امکان را می‌دهد تا بدون دردسر مدیریت زیرساخت، برنامه‌ها را توسعه دهند. محاسبات بدون سرور[2] یک مفهوم نسبتا جدید در معماری نرم‌افزار است که مرحله بعدی در توسعه رایانش ابری محسوب می‌شود. سازمان‌هایی که مشتاق استفاده از فناوری‌های نوظهور برای دستیابی به پویایی، کارایی بهینه، چابکی و صرفه‌جویی در هزینه هستند، به‌سرعت به‌سوی استفاده از این نوع معماری گام برمی‌دارند. در این مقاله نگاهی مختصر به محاسبات بدون سرور، کاربردها[3]، مزایا و معایب آن خواهیم داشت.

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

محاسبات ناشی از رویداد[12]: در برنامه‌های تجاری پردازش چندرسانه‌ای، اغلب حجم عظیمی از فایل‌ها برای پردازش در خدمات ذخیره‌سازی شئ[13] بارگذاری می‌شوند. نیازمندی‌ها ممکن است مانند کدگذاری، نهان‌نگاری[14] و واکشی داده‌ها باشد. این سناریوی تجاری شامل انواع دستگاه‌ها مانند رایانه‌های رومیزی یا PDA یا تلفن‌های همراه است که به بارگذاری انواع مختلف فایل‌های محتوای چندرسانه‌ای مانند تصاویر، فیلم‌ها و فایل‌های متنی دسترسی دارند. محاسبات ناشی از رویداد، راه‌حلی برای رفع بسیاری از مشکلات فنی این حوزه خواهد بود.

پخش زنده ویدئو: در سناریوهای پخش مستقیم فیلم، گره ترکیب‌کننده پخش[15]، جریان صوتی و تصویری را از میزبان‌ها دریافت می‌کند. داده‌های جمع‌آوری‌شده را می‌توان بر اساس محاسبه عملکرد، ترکیب کرد. سرانجام، جریان ویدئویی ترکیب‌شده باید به شبکه تحویل محتوا[16] تحویل شود.

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

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

سیستم تحویل مشترک[18]: یک گروه جهانی از رستوران‌ها یا یک شرکت مبتنی بر محصول، ممکن است به یک سیستم اطلاع‌رسانی رویداد به پرسنل مسئول تحویل کالا نیاز داشته باشد تا از نزدیک‌ترین فروشنده برای تحویل محصول استفاده کند. اگرچه محاسبات مبتنی بر رویداد در بسیاری از موارد قابل‌استفاده است، اما برای همه راه‌حل مناسبی نیست. اگر درخواست‌ها دارای نوسانات قابل ‌توجهی در مورد 4 نباشند، ممکن است محاسبات عملکردی یک انتخاب نادرست برای طراحی راه‌حل باشد.

محاسبات بدون سرور می‌تواند بهره‌وری توسعه‌دهنده را افزایش و هزینه‌های عملیاتی را کاهش دهد. با بارگیری کارهای معمول تأمین و مدیریت سرورها، توسعه‌دهندگان وقت بیشتری برای تمرکز روی برنامه‌های خود دارند و آنها را قادر می‌سازد از انجام کارهای اجرایی پرهیز کرده و بر منطق اصلی تجارت تمرکز کنند. از دیگر مزایایی که می‌توان به آن اشاره کرد، مسئله مقیاس‌پذیری پویا[19] است. به این معنا که در آن مقیاس، زیرساخت‌ها در عرض چند ثانیه به‌شکل پویا بالا و پایین می‌شوند تا مطابق با خواسته‌های هر بارکاری[20] باشند. از بعد زمانی نیز برنامه‌های بدون سرور، وابستگی عملیات را به چرخه توسعه کاهش می‌دهند و توانایی تیم‌های توسعه را برای ارائه عملکرد بیشتر در زمان کمتر، افزایش می‌دهند. همچنین در بخش مصرف منابع نیز می‌توان به این نکته مثبت اشاره کرد که تغییر به سمت فناوری‌های بدون سرور به سازمان‌ها کمک می‌کند تا استفاده کارآمدتری از منابع داشته باشند.

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

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

بر اساس گزارشی که Cloud Native در 14 آگوست سال 2020 منتشر کرده، سرویس لامبدا[21] مربوط به AWS از پرکاربردترین ارائه‌کنندگان راه‌حل بدون سرور است که 46 درصد از توسعه‌دهندگان از آن استفاده کرده‌اند. سرویس‌های Google Cloud و Azure در این حوزه نیز به ترتیب 38 و 29 درصد توسط توسعه‌دهندگان استفاده شده است [4]. برتری لامبدا از این واقعیت ناشی می‌شود که اولین محصول بدون سرور در بازار بود.

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

شرکت O’Reilly گزارشی در نوامبر سال 2019 منتشر کرده، این گزارش یک نظرسنجی درزمینه پذیرش محاسبات بدون سرور است که بیش از 1500 پاسخ‌دهنده از طیف وسیعی از موقعیت‌های جغرافیایی، شرکت‌ها و صنایع در آن شرکت کرده‌اند. 40 درصد از شرکت‌کنندگان، مطابق شکل 1، محاسبات بدون سرور را پذیرفته‌اند و 60 درصد آنها نپذیرفته‌اند [6].

دستاوردهای کلیدی این نظرسنجی شامل موارد زیر است:

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

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

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

دلایلی که سازمان‌ها، محاسبات بدون سرور را نپذیرفته‌اند در نمودار زیر قابل‌مشاهده است:

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

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

منابع

پی‌نوشت

[1] cloud Computing

[2] serverless Computing

[3] Applications

[4] auto-scaling

[5] Function-as-a-service (FaaS)

[6] service providers

[7] deployment

[8] backend

[9] Back-end-as-a-service (BaaS)

[10] function-driven event

[11] stateless

[12] event-triggered computing

[13] Object Storage Services [OSS]

[14] watermarking

[15] broadcasting synthesizing node

[16] Content Delivery Network [CDN]

[17] IoT

[18] shared delivery system

[19] Dynamic scalability

[20] workload

[21] Lambda

مقالات مشابه

اینترنت اشیاء

دوقلوی دیجیتال؛ بازوی توانمندساز انقلاب صنعتی چهارم

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

شبکه های مخابراتی

قطعه‌بندی شبکه ابری بومی

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

اینترنت اشیاء

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

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

پیمایش به بالا