کجا و چطور از محاسبات فارغ از سرور استفاده کنیم
محاسبات فارغ از سرور نوعی معماری نرمافزاری است که در آن یک فراهمکننده خدمات ابری وظیفه اجرای سرور را برای مشتری انجام میدهد و بهطور پویا تخصیص منابع محاسباتی را مدیریت میکند.
هزینه این نوع از خدمات با مقدار واقعی منابعی که مشتریان استفاده میکنند، محاسبه میشود، نه بر اساس کل ظرفیت سرورهای از پیش خریداری شده. بر اساس گزارش شرکت Markets and Markets تخمین زده میشد: «بازار معماری فارغ از سرور در سال ۲۰۱۸ به بیشتر از ۴.۲۵ میلیارد دلار برسد و انتظار میرود این رقم تا سال ۲۰۲۳ به ۱۴.۹۳ میلیارد دلار برسد که نرخ رشد مرکب سالانه (CAGR) 29 درصدی را در طول این دوره پیشبینی نشان میدهد و به دلیل فراهم بودن شرایط پذیرش اولیه خدمات ابری، انتظار میرود در طول دوره پیشبینی شده آمریکای شمالی بیشترین سهم از این بازار را داشته باشد.»
عمدهترین عوامل برای رشد این بازار حذف نیاز به مدیریت سرور است که هزینههای زیرساخت را کاهش میدهد و پیادهسازی را ساده میکند. کما اینکه ترویج معماریهای میکروسرویس نیز به این رشد کمک میکند. طبق اعلام شرکت Markets and Markets، اتوماسیون و یکپارچهسازی خدمات نقش عمدهای در توسعه معماری فارغ از سرور ایفا میکند. اتوماسیون خدمات به مدیریت مؤثرتر میکروسرویسها (مستقر در پلتفرمهای فناوری اطلاعات دوگانه) برای ارائه پاسخ سریعتر همراه با استفاده بهینه از منابع محاسباتی کمک میکند.
شرکت تحقیقاتی گارتنر وضعیت بازار محاسبات فارغ از سرور را صعودی پیشبینی کرده و آن را در فهرست ۱۰ روند برتر تاثیرگذار در زیرساخت و عملیات در سال ۲۰۱۹ قرار داده و میگوید: شاید این مدل از معماری نرمافزاری نوظهور نیاز به تهیه و مدیریت زیرساختها را برطرف کند.
مزایای محاسبات فارغ از سرور برای مدیران فناوری اطلاعات
کن کورلس، مدیر بخش کلاود Deloitte Consulting معتقد است: «محاسبات فارغ از سرور نه تنها برای توسعه دهندگان اپلیکیشن، بلکه برای پرسنل عملیات سیستمها نیز جذابیت دارد.» او میگوید: «محاسبات فارغ از سرور چه از طریق ارائهکنندگان خدمات ابری صورت بگیرد یا در محل سازمان از طریق راهکارهای گوناگون موجود در بازار پیادهسازی شود، یک هدف یکسان را دنبال میکند، آن هم اتوماسیون و خدمات خودکار برای سرعت بخشیدن به چرخه عمر توسعه نرمافزار است.»
برای مدیران فناوری اطلاعات، محاسبات فارغ از سرور چرخه «درخواست ـپاسخ» بارکاری را کاهش داده و به مدیران اجازه میدهد روی وظایف سطح بالاتری از قبیل طراحی زیر ساخت یا ساخت اتوماسیون بیشتر تمرکز کنند.
کورلس دو مورد استفاده اصلی در این معماری را اینگونه میبیند:
- توسعه اپلیکیشن برای ساخت اپلیکیشنهای مدرن مبتنی بر خدمات است. دو سرویس مبتنی بر ابر 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، میگوید: «همچنین اتوماسیون به سایر گروههای موجود در سازمان اجازه میدهد تا به سادگی با اینگونه فناوریها سازگار شوند.»
با افزایش پیچیدگی اپلیکیشنهای فارغ از سرور، تست و بررسی به یک بخش حیاتی از چرخه توسعه تبدیل شده و اتوماسیون در این زمینه کارگشا است. مدیران باید اپلیکیشنها را در بخشهای کوچکتر و خدمات مستقل و جداسازیشده اجرا کنند. برای مثال، یک سرور اپلیکیشن وب که بهطور مداوم در حال اجرا است تا تبادلات را پردازش کند باید مطابق با شرایط و سیاستگذاریهای تجاری به بخشهای کوچکتر تقسیم و بهعنوان میکروسرویسهایی در یک چهارچوب فارغ از سرور اجرا شوند. کاروالو میگوید: «چنین کاری هزینه اجرای مداوم این سرور را حذف کرده و پیچیدگیهای مرتبط با تست بخشهای مختلف را کم میکند.»