کورلس دو مورد استفاده اصلی در این معماری را اینگونه میبیند:
- توسعه اپلیکیشن برای ساخت اپلیکیشنهای مدرن مبتنی بر خدمات است. دو سرویس مبتنی بر ابر FaaS (سرنام function-as-a-service) و BaaS (سرنام backend-as-a-service) میتوانند با کوچک نگه داشتن گروه تحویل نرمافزار به میزان فراوانی راندمان کار این گروه را ارتقا دهد.
- استفاده توسط مدیران سیستم است. کورلس میگوید: «حداکثر میزان اتوماسیونی را که آنها به دنبال آن هستند میتوان خیلی راحت و به سرعت با فناوریهای فارغ از سرور پیادهسازی کرد.» برای مثال، در تجارت Cloud Managed Services شرکت Deloitte بهطور گستردهای از محاسبات فارغ از سرور برای خودکارسازی خدمات استفاده میشود.
اما مثل خدمات ابری، موقعیتهایی وجود دارد که در آن محاسبات فارغ از سرور میتواند هزینه بیشتری از ماشينهای مجازی در پی داشته باشد. کورلس میگوید: «اپلیکیشنی که بهطور مداوم روی ماشینهای مجازی در حال اجرا است، در یک محیط فارغ از سرور هزینه بیشتری در پی خواهد داشت.»
او در ادامه اضافه میکند: «با وجود اینکه وعده واقعی محاسبات فارغ از سرور به کارگیری نیروی انسانی کمتر برای انجام وظایف پیش پا افتاده فناوری اطلاعات مانند اصلاحات نرمافزاری و پشتیبانگیری است، چنین انگیزهای دو مزیت در پی دارد: اول افرادی که این وظایف پیش پا افتاده را انجام میدهند میتوانند زمان خود را صرف کارهای باارزشتری در جای دیگری در سازمان کنند. هیچ فردی علاقهای ندارد شغلش اعمال تغییرات در DNS [domain name system] باشد. این افراد را میتوان برای توسعه تواناییهای جدید به کار گرفت. به نظر من اتوماسیون بیشتر اولین چیزی است که اتفاق خواهد افتاد.»
کورلس ادامه میدهد: «دومین مزيت برای گروههای کوچکتر (حتی در سازمانهای بزرگ) امکان خودمختاری بیشتر است. با خودکار شدن مدیریت زیرساخت، گروهها میتوانند با امنیت بیشتری خودشان وظایف را انجام دهند. اما معمولا برای رسیدن به چنین هدفی به سرمایهگذاری نیاز است تا استانداردها خودکارسازی شده و به مسائل امنیتی رسیدگی شود، زیرا آن چیزی که ما در خدمات محاسبات فارغ از سرور شاهد آن هستیم، اغلب از امنیت کافی برخوردار نیستند.»
لری کاروالو مدیر تحقيقات پلتفرم بهعنوان سرویس در شرکت IDC میگوید: «هر زمان که یک برنامه بتواند از مزایای محاسبات مبتنی بر رویداد با خدمات جداسازی شده استفاده کند، برای پلتفرم فارغ از سرور ایدهآل خواهد بود.»
بهترین تجربهها و الگوهای محاسبات فارغ از سرور
دنیل اسمیت، معمار پلتفرم اینترنت اشیا در Cordial Inc میگوید: «گروههای مهندسی منتقل شده به پلتفرم فارغ از سرور اغلب فراموش میکنند که محدودیتهای شدیدی حتی در انعطافپذیرترین محصولات وجود دارد.» اسمیت میگوید: «فراموش نکنید که فارغ از سرور به معنای سرور یا کانتینر شخص دیگری است که محدودیتهای خاص خود را دارد. در زمان طراحی و پیادهسازی این نوع از سرورها باید محدودیتهایی مانند کل زمان اجرا، مدت زمانی که پردازنده مرکزی صرف میکند یا کل حافظه مصرف شده در نظر گرفته شود.»
شرکت Cordial از سال ۲۰۱۵ و با هدف در اختیار داشتن یک مدل هزینه قابل پیشبینی در زمان استفاده از منابع غیرقابل پیشبینی استفاده از فناوریهای فارغ از سرور را آغاز کرد. اسمیت میگوید: «برای ما بهعنوان یک استارتآپ، در اختیار داشتن یک ساختار هزینه قابل پیشبینی، مبتنی بر تقاضا، بسیار جذاب بود.» در ماه می ۲۰۱۸ این شرکت استفاده از فناوری Workers شرکت Cloudflare را بهعنوان جایگزین برخی از سیستمهای خود آغاز کرد. Cordial بهعنوان یک شرکت مدل بنگاه به بنگاه که به نمایندگی از مشتریان خود به مصرفکنندگان خدماترسانی میکند، نیاز دارد تا هر چه سریعتر با مصرفکنندگان در تعامل باشد.
اسمیت میگوید: «چنین نیازی اغلب ایجاب میکند تا بار کاری تا جایی که امکان دارد به منطقه جغرافيایی مصرفکننده نزدیک باشد.»
از آنجا که Cordial قادر بود تا اندازه میکروسرویسها را کوچکتر کند، امیدوار بود تا بتواند زبانهای برنامهنویسی را تجربه کند که به شکل دیگری قادر به پیادهسازی آنها نبود و به این شرکت اجازه میداد تا محصولات کارآمدتری را با سرعت و اعتماد بیشتری ارائه کند.
اسمیت معتقد است، سازمانها باید به معماری محاسبات فارغ از سرور بهعنوان یک موتور اجرایی برای یک متد یا تابع واحد نگاه کنند. او میگوید: «در ورودی و خروجی این تابع باید تا جایی که میشود از داده کمتری استفاده کرد. به جای استفاده از یک ساختار فارغ از سرور برای پردازش یک فایل داده، باید هر ردیف از داده به یک مسیر اجرایی جداگانه ارسال شود.» متغیرهای گلوبال در اپلیکیشنهای یکپارچه با معماری محاسبات فارغ از سرور کار نخواهد کرد، زیرا وضعیت گلوبال بین فراخوانیها ماندگار نخواهد ماند. دنیل دایلا مهندس نرمافزار Dynatrace، میگوید: «برای رویارویی با این مشکل، فانکشنهای فارغ از سرور باید هر زمان که امکان بود stateless طراحی شوند. اگر به تعیین وضعیت نیاز بود، بهتر است یک فانکشن تعریف شود که وضعیت (state) را از خارج (پایگاه داده) جمع آوری کرده و یک فانکشن stateless دیگر را فراخوانی کند که پردازش واقعی داده را انجام میدهد.»
دایلا میگوید: «شرکت Dynatrace دو سال است که از فناوری محاسبات فارغ از سرور استفاده کرده و از مزایای هزینه کمتر، امکان گسترشپذیری و توابع رویداد محور آن بهره میبرد. اين شرکت از محاسبات فارغ از سرور برای سیستمهای سرکشی که برای پردازش دستهای به کار مداوم نیاز دارند، استفاده میکند.» یکی دیگر از مزایای فناوری محاسبات فارغ از سرور پیادهسازی خودکار سیستمها است. با وجودی که ابزارهايی وجود دارد که پیادهسازی دستی محاسبات فارغ از سرور را راحت میکند، اما پیادهسازی بهصورت خودکار به شما امکان میدهد تا پیادهسازی پیوسته را بدون هیچگونه خطای انسانی انجام دهید. هریستو پاپازوف مهندس ارشد نرمافزار شرکت Relativity، میگوید: «همچنین اتوماسیون به سایر گروههای موجود در سازمان اجازه میدهد تا به سادگی با اینگونه فناوریها سازگار شوند.»
با افزایش پیچیدگی اپلیکیشنهای فارغ از سرور، تست و بررسی به یک بخش حیاتی از چرخه توسعه تبدیل شده و اتوماسیون در این زمینه کارگشا است. مدیران باید اپلیکیشنها را در بخشهای کوچکتر و خدمات مستقل و جداسازیشده اجرا کنند. برای مثال، یک سرور اپلیکیشن وب که بهطور مداوم در حال اجرا است تا تبادلات را پردازش کند باید مطابق با شرایط و سیاستگذاریهای تجاری به بخشهای کوچکتر تقسیم و بهعنوان میکروسرویسهایی در یک چهارچوب فارغ از سرور اجرا شوند. کاروالو میگوید: «چنین کاری هزینه اجرای مداوم این سرور را حذف کرده و پیچیدگیهای مرتبط با تست بخشهای مختلف را کم میکند.»