Serverless Architecture کد بنویسید، باقی را به ابر بسپارید!

محمدرضا باباخانی محاسبات بدون سرور-Serverless چیست؟

در این مدل، ارائه‌دهنده ابری مسئولیت میزبانی و مدیریت دیتا استورها را بر اساس مدل “پرداخت به‌اندازه استفاده” بر عهده دارد. این ویژگی به ویژه برای استارت‌آپ‌ها و شرکت‌های کوچک که به دنبال راه‌حل‌های مقرون‌به‌صرفه هستند، بسیار جذاب است. در این مدل، توسعه‌دهندگان می‌توانند با استفاده از توابع بدون سرور (مانند AWS Lambda) یک API بدون سرور ایجاد کنند که قادر به دریافت درخواست‌های HTTP و بازیابی یا ذخیره داده‌ها از طریق پایگاه‌های داده بدون سرور (مانند( DynamoDB) باشد. این قابلیت به ویژه برای ساخت و نگهداری APIهای مقیاس‌پذیر و مدیریت درخواست‌های ورودی و خروجی بسیار مفید است. برای مدت طولانی، وظایف توسعه دهندگان وب نوشتن کد برای حل مشکلات مشتری، راه اندازی محیط اجرای برنامه، مدیریت سرورها و میزبانی فرآیند بود. بیشتر زمان توسعه‌دهنده صرف نصب سیستم‌عامل‌ها و کتابخانه‌های مورد نیاز و رفع وابستگی‌ها برای تست و اجرای برنامه‌های وب می‌شد.

روند مقیاس‌پذیری در معماری Serverless به صورت خودکار صورت گرفته و از این بابت مشکلی نخواهد بود. از طرفی دیگر معماری سنتی به صورت دستی مقیاس جدید را کنترل می‌کرد که این موضوع خود نیاز به کارهای تکنیکی بود اما از طرفی دیگر مشکل نداشتن کنترل کامل را حل می‌کرد. دو ویژگی کلیدی این تکنولوژی زیرساخت های نامرئی با پیاده سازی Image های ماشین مجازی و صرف هزینه به ازای مصرف است ( بجای پرداخت های معمول به صورت ماهانه ). میکروسرویس‌ها به نحوه سازماندهی اپلیکیشن شما در مقیاس بزرگ اشاره دارد، در حالی که serverless، به ساختار داخلی آن اشاره می کند. یک برنامه serverless می‌تواند از اصول میکروسرویس‌ها پیروی نموده (غالبا رویکرد توصیه‌شده همین است) یا اینکه از آنها استفاده نکند.

تحت یک مدل بدون سرور، یک ارائه دهنده ابر سرورهای فیزیکی را اجرا می‌کند و به صورت پویا منابع آن‌ها را از طرف کاربرانی که می‌توانند کد را مستقیما در تولید مستقر کنند، تخصیص می‌دهد. ارائه‌های محاسباتی بدون سرور معمولا به دو گروه تقسیم می‌شوند، Backend-as-a-Service (BaaS) و Function-as-a-A-Service (FaaS). سرویس AWS Lambda از زمان اجرا Node.js پشتیبانی می کند که اجرای کد جاوا اسکریپت را در ابر AWS امکان پذیر می کند. این کتاب به شما آموزش می دهد که چگونه این کار را به درستی انجام دهید، از اصول اولیه نحوه عملکرد سرویس Lambda از طریق گزینه های پیکربندی و نحوه برنامه نویسی برای بدون سرور متفاوت است، همه تا ابزارهای خاص برای کمک به شما. در پایان این کتاب، جنبه‌های خاص استفاده از جاوا اسکریپت در AWS Lambda، بهترین شیوه‌ها و مشکلات رایج را می‌شناسید. ابتدا محیط Lambda و سپس نحوه پیکربندی توابع جاوا اسکریپت را یاد خواهید گرفت.

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

در این مدل، شرکت‌ها دیگر نیازی به خرید، نصب، میزبانی و مدیریت سرورها ندارند؛ تمامی این وظایف به عهده مدیر ابری است. بر اساس بررسی‌های بازار در حوزه محاسبات بدون سرور، نرخ رشد مرکب سالانه (CAGR) این فناوری برای دوره پیش‌بینی 2019 تا 2027 حدود 23.17٪ تخمین زده شده است. معماری serverless، رویکردی نوین در توسعه نرم‌افزار است که با حذف نیاز به مدیریت زیرساخت، مزایای متعددی را به ارمغان می‌آورد. این مزایا شامل کاهش هزینه‌ها، افزایش سرعت توسعه، قابلیت مقیاس‌پذیری بالا و افزایش پایداری است. معماری بدون سرور برای طیف وسیعی از سناریوها مناسب است و می‌تواند به شما کمک کند تا برنامه‌های مدرن، مقیاس‌پذیر و قابل اعتماد بسازید. با توجه به مزایای متعدد و رشد روزافزون این فناوری، معماری بدون سرور در سال‌های آینده جایگاه ویژه‌ای در دنیای توسعه نرم‌افزار پیدا خواهد کرد.

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

آیا تیم توسعه دهنده شما نیاز به استقرار ویژگی های جدیدی دارد که از خدمات تخصصی AWS استفاده می کند؟ آن ها می توانند بدون نیاز به منتظر ماندن برای راه اندازی و پیکربندی همه چیز، ادامه دهند و این کار را انجام دهند. در معماری سرورلس، برنامه از مجموعه‌ای از توابع تشکیل شده است که وظیفه پاسخ‌گویی به درخواست‌ها را بر عهده دارند. تامین سرور و منابع لازم برای اجرای این توابع به هر تعدادی که فراخوانی شوند، برعهده تامین کننده زیرساخت است و هزینه به ازای هر فراخوانی تابع، منظور می‌شود. فناوری رایانش ابری بدون سرور، در تجهیزات و زمینه‌هایی مانند میکروسرویس‌ها، بک‌اندهای API، پردازش داده‌ها و هوش مصنوعی بهترین اثربخشی و بیشترین کاربرد را دارد. در تکنولوژی Serverless Computing، مالکان محصول یا AI کنترل سرور را به شرکت ارائه‌دهنده خدمات ابری واگذار می‌کنند. بنابراین مدیریت سخت‌افزار و محیط‌های اجرا از کنترل و دسترس آن‌ها خارج می‌شوند.

اوایل سال ۹۸ و هنگام کار با پروژه‌ای که از طریق بهرنگ جباری عزیز به عنوان توسعه‌دهنده به آن دعوت شدم، با معماری سرورلس (Serverless) و بستر ابری آژور مایکروسافت آشنا شدم. هر چند به دلیل قبولی در مقطع دکتری و فشار درس‌ها، این همکاری چندان ادامه‌دار نبود اما برای بنده تجربه‌ای بس مغتنم بود. به‌همین‌علت فرآیندهای طولانی‌مدت می‌توانند هزینه بیشتری را نسبت‌به سرورهای فیزیکی یا محیط‌های VM داشته باشند. هر ارائه‌دهنده خدمات، قابلیت‌ها و ویژگی‌های سرویس‌های خود را به‌شکل منحصربه‌فردی ارائه می‌دهد. به‌همین‌دلیل نمی‌توان زیرساخت‌ها را با سرویس‌های دیگر ارائه‌دهندگان سازگار کرد. تغییر به‌سمت فناوری‌های Serverless به سازمان‌ها کمک می‌کند تا هزینه‌های مربوط‌به زیرساخت را کاهش و منابع را برای سرعت بخشیدن به کارها و نوآوری‌ها تخصیص دهند.

بنابراین اگر می‌خواهیم هزینه‌های کسب‌وکار خود را کاهش دهیم و برنامه خود را به سرعت از ایده به بازار منتقل کنیم، این بهترین زمان برای استفاده از محاسبات بدون سرور است. در این سرویس ها، دیگر اپلیکیشن ها از منطق های سمت سرور استفاده نکرده و این امور را بر عهده ارائه دهنده قرار می دهند. از دهه 1960 تا کنون، رایانش ابری به ما کمک کرده تا از قایلیت مدیریتی و اتعطاف پذیری بی نظیرش در کسب و کار خود بهره مند شویم. این تکنولوژی درب های جدیدی را برای استفاده از سرورها، پلتفرم های خدماتی از جمله API gateway، اعتبار سنجی ها و غیره برای ما باز کرد. معماری serverless یک روش جدید نوشتن و راه اندازی اپلیکیشن های وب بوده و به توسعه دهنده کمک می کند بر توسعه اپلیکیشن خود بیشتر تمرکز داشته باشد.

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

Containerها محیط کمتری را برای اجرا فراهم می‌کنند، سریع‌تر هستند و بیشتر از سخت افزار استفاده می‌کنند. مشکل هر معماری Serverful این است که شما باید چیزی را به صورت 24 ساعته در حال اجرا داشته باشید که در هر دقیقه صورت‌حساب شما را محاسبه کند، حتی اگر اصلاً به هیچ کاربری خدمات ندهید. اما چرا زحمت؟ آیا روش Serverful به اندازه کافی خوب نیست؟ اجازه دهید نگاهی به مزایایی که توسعه Serverless به شما می دهد بیاندازیم. اهورا اولین اپراتور هوش مصنوعی راهبردی ایران در حوزه ارائه خدمات و سرویس های زیر ساخت هوش مصنوعی برای انقلاب صنعتی 4 و هوشمندسازی صنایع می‌باشد. هدف اهورا، پاسخگویی جامع به نیازهای مشتریان در زمینه هوش مصنوعی و همراهی با آنها در مسیر تحول دیجیتال و انقلاب صنعتی چهارم است. به همین دلیل و از آنجایی که این تکنولوژی در حال گسترش پیدا کردن است در این مطلب از وبسایت راکت تصمیم گرفتیم تا شما را با این معماری و مزایا و معایب آن به خوبی آشنا کنیم.

محاسبات بدون سرور معماری است که در آن یک فروشنده خدمات پشتیبان را در صورت نیاز ارائه می دهد. همانطور که بیشتر و بیشتر معایب استفاده از بدون سرور برطرف می شود و محبوبیت محاسبات لبه افزایش می یابد، می توان انتظار داشت که معماری بدون سرور گسترده تر شود. چند فناوری که اغلب با محاسبات بدون سرور ترکیب می شوند عبارتند از Backend-as-a-a-Service و Platform-as-a-a-Service. اگرچه این مدل‌ها شباهت‌های مشترکی دارند، اما این مدل‌ها الزاماً الزامات بدون سرور را برآورده نمی‌کنند. برای کسب اطلاعات بیشتر درباره هاست و مدیریت سرورها، می‌توانید به سایت ما درباره هاست مراجعه کنید. خدمات وب آمازون، مایکروسافت آزور، گوگل کلود و IBM Cloud برخی از رایج ترین مثال ها برای محاسبات بدون سرور هستند.

چیزی که PaaS را از Serverless متمایز می کند این است که ارائه دهندگان سرویس های Paas قابلیت مقایس پذیری خودکار را ارائه نمی دهند. پس باید قبل از هر چیز ابتدا میزان منابعی که اپلیکیشن تان لازم خواهد داشت را پیش بینی کنید. نکته جالب این است که شما در لحظه و به صورت نامرئی انعطاف خواهید یافت؛ صرف نظر از اینکه یک بار و یا در روز میلیون ها بار فراخوانده شوید. سرویس شما به همین سادگی ارتقا و تنزل خواهد یافت و در صورت بی کاری، خاموش شده و منابع به توسعه دهنده دیگری اختصاص می یابند. پس با توجه به اینکه کد شما به خوبی کار می کند، دیگر نیازی نیست که نگران سرور باشید. و مهم تر از همه این است که به ازای فانکشن های مصرفی هزینه پرداخت خواهید کرد، که در اصل میزان مموری و CPU درگیر شده در فانکشن ها را محاسبه می کند.

Gateway یک رابط یکپارچه برای نرم افزار کاربر فراهم می کند تا با توابع شما تعامل داشته باشند و به آنها امکان اجرای این توابع را می‌دهد. حوزه محاسبات بدون سرور (Serverless Computing) به سرعت در حال پیشرفت است و سازمان‌ها بیش از پیش از این معماری جهت تسهیل فرایند توسعه برنامه و کاهش هزینه‌های عملیاتی استفاده می کنند. با توجه به رشد معماری بدون سرور، نیاز است کسب‌وکارها با مزایا و چالش‌های امنیتی منحصربه‌فرد آن آشنا باشند. توسعه دهندگانی که می خواهند زمان ورود خود به بازار را کاهش دهند و برنامه های کاربردی سبک وزن و انعطاف پذیری بسازند که می توانند به سرعت گسترش یابند یا به روز شوند، ممکن است از محاسبات بدون سرور بهره زیادی ببرند. این امر منجر به کاهش سرمایه‌گذاری در DevOps می‌گردد که علاوه بر کاهش هزینه‌ها، به ارائه دهندگان خدمات این امکان را می‌دهد که برنامه‌های خود را بدون محدودیت در ظرفیت سرور، ایجاد نموده و گسترش دهند. از آنجایی که معماری‌های Serverless به مدیریت زیرساخت شما متکی نیستند، این مشکلات وجود ندارند.

اما در مدل محاسبات بدون سرور، تیم‌های توسعه‌دهنده می‌توانند به طور کامل بر کدنویسی، تست و تکرار تمرکز کنند، بدون نگرانی از هزینه‌ها و مدیریت سرورها. این امکان به توسعه‌دهندگان کمک می‌کند تا ایده‌ها را سریع‌تر به بازار عرضه کرده و ویژگی‌های جدید را بدون دغدغه زیرساخت‌ها پیاده‌سازی کنند. محاسبات بدون سرور که با نام “Function-as-a-Service” (FaaS) نیز شناخته می‌شود، تضمین می‌کند که کدهایی که توسعه‌دهندگان با آن‌ها کار می‌کنند از توابع ساده و مبتنی بر رFlویداد تشکیل شده باشد. این رویکرد به توسعه‌دهندگان اجازه می‌دهد تا به طور کامل بر نوشتن کد و ارائه راه‌حل‌های نوآورانه تمرکز کنند، بدون اینکه نیاز به نگرانی در مورد ایجاد محیط‌های آزمایشی، مدیریت زیرساخت‌ها و سرورها داشته باشند. محاسبات بدون سرور یک مدل رایانش ابری است که در آن مدیریت و نگهداری زیرساخت‌های سرورهای شرکت شما توسط ارائه‌دهنده ابر یا یک فروشنده شخص ثالث انجام می‌شود.

اما در رویکرد serverless ارائه دهنده پلتفرم مسئول تمام فرآیندها از پردازش ها گرفته تا سیستم عامل های سرورها خواهد بود. Gateway همچنین ویژگی هایی مانند اعتبار سنجی درخواست، احراز هویت، مسیریابی و امکان تهیه لاگ کلی را ارائه می دهد که می تواند به بهبود عملکرد و امنیت برنامه های بدون سرور شما کمک کند. برنامه‌های بدون سرور نیز برای مواردی که شامل جریان‌های داده‌های ورودی، ربات‌های چت، کارهای زمان‌بندی‌شده یا منطق تجاری هستند، مناسب هستند. برخی دیگر از موارد استفاده متداول بدون سرور عبارتند از APIهای Back-end و برنامه‌های وب، اتوماسیون فرآیندهای تجاری، وب سایت‌های بدون سرور و ادغام در چندین سیستم. سرورلس همچنین یکی از نقاط کلیدی در آزمون‌های AWS، چه در سطح مقدماتی و چه در سطح حرفه‌ای است.

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

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

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

توجه به این نکته مهم است که پردازش بدون سرور به‌معنای نبود سرور نیست؛ بلکه سرورها به‌عنوان بازیگران اصلی فرآیند پردازش عملیات، همچنان در اجرای کدها نقش‌آفرینی می‌کنند. این عبارت «بدون سرور» درواقع به نامرئی بودن وظایف مرتبط‌با تهیه و مدیریت زیرساخت برای توسعه‌دهندگان اشاره دارد. «روی اپلیکیشن تمرکز کن نه روی زیرساخت‌» این شعاری است که معماری Serverless با آن از طرف سرویس‌دهندگان مختلف از جمله AWS تبلیغ می‌شود. به نظر جمله بسیار تسکین‌دهنده و آرامش‌بخشی می‌رسد چرا که شما دیگر نیازی به پیاده‌سازی، مراقبت و مانیتورینگ و دیباگینگ سرورها نخواهید داشت و بجای آن تمام تمرکزتان را روی کارکرد اپلیکیشن می‌گذارید. با وجود آنکه به نظر حالتی بسیار انتزاعی می‌آید اما در حال حاضر Serverless توسط شرکت‌های بزرگی مانند نتفلیکس، AOL، Telenor و Reuters نیز استفاده می‌شود.

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

در ضمن قیمت گذاری آن بر اساس تعداد آیتم‌هایی است که اجرا می‌شود نه ظرفیت از پیش خریداری شده. از آنجا که FaaS توابع بیکار به مصرف CPU / حافظه بسیار پایین تر است، استفاده از منابع خوشه ای با استفاده واقعی نسبت به مقدار استقرار سازگارتر می شود. وقتی که توابع بیکار هستند، منابع سرور نمونه اکتیو نمیشوند، بنابراین هزینه کاهش مییابد. با این حال، به یاد داشته باشید که مزایای استفاده از صورت حساب ها، کاملا حساس هستند، بر الگوهای استفاده واقعی بستگی دارد. یک تابع که هر ۱۰ ثانیه یک ثانیه اجرا می شود در Lambda ارزان تر است، اما اگر هر ۱۰ ثانیه آن را برای ۲ ثانیه اجرا کند، در EC2 ارزان تر است. شما باید مدل خود را با دقت بررسی کنید و ارزیابی کنید که آیا serverless در واقع پول شما را صرفه جویی خواهد کرد.

این پایه و اساس انتقال توابع به یک پشته بدون سرور است زیرا Lambda در چندین جنبه مهم متفاوت از برنامه های روی سرور عمل می کند. در این فصل با این تفاوت‌ها آشنا می‌شوید، مانند نحوه شروع نمونه‌های تابع، معنی آن برای زمان پاسخ و ذخیره‌سازی و نحوه تخصیص منابع. سپس فصل Setup نحوه پیکربندی یک تابع جاوا اسکریپت Lambda است، مانند نحوه تعریف کد آن، و نحوه ارسال پارامترها به آن. نحوه عملکرد مدل مجوز Lambda و خط مشی پشتیبانی AWS برای هر نسخه Node.js را خواهید آموخت. شما یاد خواهید گرفت که چگونه برای Lambda کد بنویسید، چگونه ورودی/خروجی را مدیریت کنید، با دیگر منابع AWS و موضوعات دیگر ارتباط برقرار کنید.

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

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

و این دوره به شما کمک می‌کند تا همه اجزای مختلف معماری سرورلس را به طور کامل یاد بگیرید. کد بدون سرور (Serverless code) می‌تواند همراه با کدهای مستقر در سبک‌های سنتی، مانند میکروسرویس‌ها استفاده شود. به همین ترتیب می‌توان برنامه‌ها را کاملا بدون سرور نوشت و به هیچ عنوان از سرورهای تهیه شده استفاده نکرد. رایانش ابری (Cloud Computing)، تغییرات عظیمی را در دنیای برنامه‌ها ایجاد کرده است. این امر باعث می‌شود محدودیت‌های طولانی مدت در توسعه‌ی برنامه‌ها از بین برود. برای کسب اطلاعات بیشتر در مورد کاربردهای محاسبات بدون سرور در زمینه‌های مالی و ترید، می‌توانید به سایت ما درباره ترید مراجعه کنید.

اخیرا، یک فناوری جدید مبتنی بر ابر با نام رایانش ابری بدون سرور (Serverless Computing) ظهور کرده که توانایی تغییر اکوسیستم فناوری موجود را دارد. در این رویکرد، برنامه به توابع کسب و کار آزاد متصل می شود، که هر کدام به یک یا چند سرویس microservice متصل می شوند. هر میکرو سرویس برای یک تابع کسب وکار خاص طراحی شده و می تواند توسط یک توسعه دهنده یا تیم مستقل کار کند. همان طور که برنامه های serverless بیشتر مورد استفاده قرار می گیرند (با لمبدا که محبوب ترین سرویس ابری توسط AWS است)، ما به طور فزاینده ای شرکت هایی را می خواهیم که تجربه ای غیرمستقیم برای مهندسانشان در زیرساخت های محل را فعال کنند . با این حال، این بدان معناست که حتی در ساعت 2 بامداد، زمانی که بار در کمترین حد خود است، زیرساخت ‌های پر هزینه ‌ای را در اختیار دارید که به صورت موردی کار می کنند اما ساعتی از شما صورتحساب می ‌گیرند.

در حالی که سرور مجازی و سرور اختصاصی بدون نیاز به سرعت توسعه، نیاز به یک خوشه Kubernetas دارد تا اجرا شود، و Kubernetes به سختی دشوار است برای راه اندازی و مدیریت. علاوه بر این، این فناوری های جدید، پیچیدگی، گستردگی و گسترش فناوری اطلاعات، ابزار و برنامه های کاربردی را افزایش می دهد که شرکت های امروزی نیاز به پشتیبانی دارند. سرورهای جدید را به محیط های مخلوط که قبلا وجود دارند اضافه کنید – از منابع Cloud، VM های سنتی و حتی فلز خفیف – و چیزهایی که حتی برای IT پیچیده تر می شوند. محاسبات بدون سرور که به آن serverless computing نیز گفته می شود، یکی از فناوری هایی است که امروزه در حوزه شبکه بسیار مورد استفاده قرار می گیرد. این فرآیند در واقع یک مدل اجرای محاسباتی است که به توسعه دهندگان نرم افزار اجازه می دهد تا بدون نیاز به مدیریت زیر ساخت های بک اند خود، برنامه ها و سرور های مورد نظر خود را بسازند و اجرا کنند.

به عبارت دیگر، معماری serverless بار مدیریت و مسئولیت های اجرای محیط زیرساختی را از دوش توسعه دهندگان برداشته و بر عهده ارائه دهندگان خدمات و پلتفرم های ابری قرار داده است. اکثر ارائه دهندگان Serverless  خدمات پایگاه داده و ذخیره سازی را به مشتریان خود ارائه می دهند و بسیاری نیز دارای پلتفرم های Function-as-a-Service (FaaS) مانند Cloudflare Workers هستند. FaaS به توسعه دهندگان اجازه می دهد تا قطعات کوچکی از کد را در لبه شبکه اجرا کنند. با FaaS، توسعه‌دهندگان می‌توانند یک معماری ماژولار بسازند، و یک پایگاه کدی بسازند که مقیاس‌پذیرتر باشد، بدون اینکه نیازی به صرف منابع برای نگهداری بک‌اند اصلی باشد. معمولا وقتی توسعه‌دهندگان به کد نویسی بدون سرور اشاره می‌کنند، در مورد مدل FaaS صحبت می‌کنند. تحت FaaS، توسعه دهندگان هنوز منطق سمت سرور سفارشی می‌نویسند، اما در کانتینرهایی اجرا می‌شود که به طور کامل توسط یک ارائه دهنده خدمات ابری مدیریت می‌شود.


برنامه نویسی چیست pdf