خرابی سرور بدون سرور – انجمن DEV 👩💻👨💻

از زمانی که تنها قادر به ذخیره 1.44 مگابایت در فلاپی دیسک است، فناوری راه طولانی را طی کرده است! با این حال، تا زمانی که محاسبات بدون سرور، رویکرد قابلیتهای منابع را متحول کرد، توسعهدهندگان همچنان باید به نحوه نگهداری، مقیاسبندی، نظارت و ظرفیت یک سرور فکر میکردند. اگر توسعهدهندهای نیاز داشت محدودیتهای سروری را که روی آن بود گسترش دهد، این یک ارتقا ساده نبود. سرور برای ارتقا و انتقال دستی محتوا به فضای ذخیره سازی فیزیکی نیاز داشت. EEEK! به احتمالات از دست دادن اطلاعات فکر کنید. نه ممنون!
اکنون که برخی از چالشهای ساختارهای محاسباتی سنتی را درک میکنیم، به آنچه که بدون سرور را بسیار انقلابی میکند، میپردازیم. به گرافیک زیر نگاهی بیندازید. این به تجسم چگونگی تبدیل سرورهای فلزی بدون سرور به بدون سرور کمک خواهد کرد.
Bare Metal
شما مسئول مدیریت فیزیکی سرور و زیرساخت های در حال اجرا آن هستید (مثلاً سیستم عامل ها و غیره).
سرور مجازی
یک ارائه دهنده میزبانی مسئول مدیریت فیزیکی سرور است. شما مسئول زیرساخت های در حال اجرا بر روی سرور هستید (به عنوان مثال، سیستم عامل ها و غیره). می توانید کانتینر را روی هر کامپیوتر یا سروری قرار دهید و به همین ترتیب اجرا می شود. شما مسئول مدیریت کانتینرها و زیرساخت هایی هستید که روی آنها اجرا می شود (به عنوان مثال، سرورها، سیستم عامل ها و غیره).
بدون سرور
لازم نیست نگران زیرساخت ها باشید. ارائهدهنده ابر کد شما را در صورت نیاز اجرا میکند و بر اساس تعداد منابعی که استفاده میکنید از شما هزینه دریافت میکند. شما لازم نیست نگران افزایش مقیاس یا نگهداری سرور باشید. شما فقط مسئول نوشتن کد و آپلود آن در فضای ابری هستید.” loading=”lazy” width=”880″ height=”495″/>
محاسبات بدون سرور چیست؟
“بررسی اجمالی. سرور بدون سرور یک مدل توسعه بومی ابری است که به توسعه دهندگان اجازه می دهد بدون نیاز به مدیریت سرورها برنامه های کاربردی بسازند و اجرا کنند. هنوز سرورهای بدون سرور وجود دارد، اما آنها از توسعه برنامه جدا هستند. با تشکر RedHat
ما حتی با سرورهایی که “Bare Metal” نامیده می شوند، فاصله زیادی داریم. به این معنی که شخصی از نظر فیزیکی باید سرور را مدیریت کند و زیرساخت را در حال اجرا نگه دارد. اینجاست که اصطلاح مدیر سرور وارد می شود. مدیر سرور نه تنها به مدیریت سخت افزار نیاز دارد، بلکه ممکن است نیاز به مدیریت پایگاه داده ها، سیستم عامل ها، ذخیره سازی و سایر منابع نیز داشته باشد. بسیاری از اوقات، اگر نیاز به منابع بیشتری وجود داشته باشد، ادمین سرور باید به صورت فیزیکی تغییراتی در سخت افزار ایجاد کند. سخت افزاری که قرار است ذخیره شود، سرورها به صورت عمودی روی یکدیگر چیده می شوند و ردیف به ردیف دارند که اتاق سرور را می سازد. از آنجایی که سخت افزار روی یک قفسه فلزی قرار داشت، اصطلاح فلز لخت از آنجا نیز به وجود آمد.
در مرحله بعد، سرورهای مجازی بهترین های بعدی شدند. یک ارائه دهنده میزبانی مسئول مدیریت فیزیکی سرور است، اما مدیر سرور فقط باید جنبه نرم افزاری مواردی مانند مدیریت پایگاه داده ها، سیستم عامل ها، ذخیره سازی و سایر منابع را مدیریت کند.
امروزه کانتینرها مانند Docker یا Kubernetes هنوز بسیار مورد استفاده قرار می گیرند. کانتینرها مانند جعبه هایی هستند که تمام کدها، کتابخانه ها و وابستگی های مورد نیاز برای اجرای یک برنامه را در خود جای می دهند. کانتینر را می توان روی هر کامپیوتر یا سروری قرار داد و به همین ترتیب اجرا می شود. هنوز هم کسی میخواهد کانتینرها و زیرساختهایی را که روی آنها اجرا میشود (مثلاً سرورها، سیستمهای عامل و غیره) مدیریت کند.
سرانجام، جادویی که اکنون داریم، بدون سرور. لازم نیست نگران زیرساخت ها باشید. ارائهدهنده ابر کد شما را در صورت نیاز اجرا میکند و بر اساس تعداد منابعی که استفاده میکنید از شما هزینه دریافت میکند. شما لازم نیست نگران افزایش مقیاس یا نگهداری سرور باشید. شما فقط مسئول نوشتن کد و آپلود آن در فضای ابری هستید. 🎉
عملکردهای بدون سرور و پرداخت به ازای استفاده
قبل از پرداختن به ساختار پرداخت به ازای استفاده از محاسبات بدون سرور، باید در مورد عملکردهای بدون سرور صحبت کنیم. برای تصویر کردن عملکردهای بدون سرور، تصور کنید هر بار که یک اقدام کاربر اجرا می شود یا در وضعیت سیستم تغییر می کند، بدون سرور منابع مورد نیاز را تجزیه و تحلیل می کند و آن منابع را برای پیاده سازی اختصاص می دهد. نمونه هایی از یک اقدام کاربر یا تغییر در وضعیت یک تابع می تواند از کلیک روی یک دکمه تا ایجاد یک فایل جدید باشد.
یکی دیگر از مواردی که بدون سرور را کاملاً متفاوت می کند، این است که از پرداخت به ازای استفاده بر اساس توابع بدون سرور استفاده شده به جای مقدار تعیین شده ای استفاده می کند که برای استفاده باید از پیش پرداخت شود. پرداخت به ازای استفاده به یک توسعهدهنده این امکان را میدهد که فقط نگران ایجاد برنامه و کد باشد که نگرانیهای مربوط به زمان اجرای پروژهها و خرابیهای ناشی از کار بر روی سرور را متحول میکند.
مهم است بدانید که انواع مختلفی از محاسبات بدون سرور و همچنین ارائه دهندگان ابری محبوب وجود دارد که پلتفرم های محاسباتی بدون سرور را ارائه می دهند.
تعدادی از انواع محاسبات بدون سرور عبارتند از:
- توابع به عنوان یک سرویس (FaaS)
- Backend-as-a-service (BaaS)
- کانتینرها به عنوان یک سرویس (CaaS)
- محاسبات رویداد محور
- پایگاه داده به عنوان یک سرویس (DBaaS)
برخی از ارائه دهندگان ابری که پلتفرم های بدون سرور ارائه می دهند عبارتند از:
خدمات وب آمازون (AWS) با سرویس AWS Lambda خود
Microsoft Azure با سرویس Azure Functions خود
Google Cloud با سرویس Cloud Functions خود
Cloudflare با CF Workers که شامل توابع لبه بدون سرور است
نتیجه
محاسبات بدون سرور، یک مدل توسعه مبتنی بر ابر، در نحوه نوشتن و استقرار برنامهها انقلابی ایجاد کرده است. تکامل محاسبات سنتی به محاسبات بدون سرور نشان می دهد که چگونه استفاده از محاسبات بدون سرور به توسعه دهندگان اجازه می دهد در زمان، پول و منابع صرفه جویی کنند. توابع بدون سرور امکان پرداخت به ازای استفاده را فراهم میکنند، زیرا نیازی به گسترش فیزیکی سرور برای پیشبینی نیازهایشان نیست.
باز هم، محاسبات بدون سرور میتواند مقرونبهصرفهتر و کارآمدتر از مدلهای محاسباتی سنتی باشد، اما دارای معایب بالقوهای مانند قفل شدن فروشنده و نیاز به مهارتهای تخصصی است که در مقاله دیگری به آن پرداخته خواهد شد.