۳۰ آذر ۱۴۰۳

Techboy

اخبار و اطلاعات روز تکنولوژی

PaaS (پلتفرم به عنوان یک سرویس) چیست؟ یک راه ساده تر برای ساخت برنامه های نرم افزاری

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

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

PaaS (پلتفرم به‌عنوان سرویس) شکلی از رایانش ابری است که به توسعه‌دهندگان نرم‌افزار امکان می‌دهد تا برنامه‌های نرم‌افزاری را به راحتی بسازند، اجرا کنند و مدیریت کنند، بدون اینکه نگران زیرساخت‌های اساسی باشند. ظهور محاسبات ابری دری را برای فروشندگان باز کرد تا بلوک‌های ساختمانی کلیدی مورد نیاز برای ایجاد یک برنامه کاربردی را با هدف ساده‌سازی یا حتی خودکار کردن بسیاری از کارهای پیچیده‌تر و تکراری‌تر مورد نیاز برای استقرار کد، جمع کنند.

PaaS همه اینها را انجام می‌دهد، اما به استثنای چند استثنا، به‌جای ارائه خدمات ابری جداگانه، به سرویسی تبدیل شده است که در IaaS (زیرساخت به‌عنوان سرویس) در دسترس است و اغلب شامل Kubernetes می‌شود. a> ارکستراسیون ظرف. محاسبات بدون سرور، نوعی از پلتفرم ابری که توسعه انواع خاصی از برنامه‌ها را آسان‌تر می‌کند، تکامل یافته PaaS در نظر گرفته می‌شود.

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

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

PaaS تعریف شده

همانند سایر خدمات ابری مانند زیرساخت به عنوان سرویس (IaaS) و نرم افزار به عنوان سرویس (SaaS)، PaaS معمولاً از طریق اینترنت قابل دسترسی است اما می تواند همچنین در محل یا در حالت ترکیبی مستقر شود. p>

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

بلوک‌های سازنده یک PaaS معمولی عبارتند از:

  • زیرساخت مدیریت شده: ارائه دهنده سرورها، فضای ذخیره سازی، مراکز داده و منابع شبکه مورد نیاز برای اجرای برنامه شما را مدیریت می کند.
  • ابزارهای طراحی، آزمایش و توسعه: یک محیط توسعه یکپارچه، ابزارهای مورد نیاز برای ساختن نرم‌افزار، از جمله ویرایشگر کد منبع، کامپایلر، و اشکال‌زدا را گرد هم می‌آورد. برخی از ارائه‌دهندگان ابزارهای همکاری را نیز شامل می‌شوند که به توسعه‌دهندگان اجازه می‌دهد کارهای یکدیگر را به اشتراک بگذارند و در آن مشارکت کنند.
  • Middleware: PaaS اغلب شامل ابزارهای مورد نیاز برای یکپارچه سازی سیستم عامل های مختلف و برنامه های کاربردی کاربر است.
  • سیستم‌های عامل و پایگاه‌های داده: یک PaaS سیستم‌عامل‌هایی را برای اجرای برنامه‌ها و همچنین انواع گزینه‌های پایگاه داده مدیریت‌شده را فراهم می‌کند.
Clojure با Dart در ClojureDart ملاقات می کند

PaaS در مقابل IaaS

برای بسیاری، بحث PaaS در مقابل IaaS توسط بازار حل شده است، و اکثریت قریب به اتفاق توسعه دهندگان خوشحال هستند که خودشان برنامه ها را با استفاده از بلوک های سازنده IaaS جمع آوری می کنند. با این وجود، توسعه دهندگانی که به دنبال سریع ترین مسیر برای رسیدن به بازار هستند، ممکن است همچنان به دنبال سرعت و سادگی به PaaS روی بیاورند.

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

مزایا و معایب PaaS

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

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

یک PaaS همچنین می‌تواند دروازه‌ای مفید برای تکنیک‌های توسعه بومی ابری و زبان‌های برنامه‌نویسی، بدون سرمایه‌گذاری اولیه برای ایجاد یک محیط جدید باشد.

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

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

a>رشد از PaaS خود و ساخت پلت فرم توسعه دهنده داخلی خود.

ویدئوی مرتبط: رویکرد بومی ابری چیست؟

در این ویدیوی ۶۰ ثانیه‌ای، از کریگ مک‌لاکی، بنیان‌گذار و مدیر عامل Heptio، و یکی از مخترعان سیستم منبع باز Kubernetes، بیاموزید که چگونه رویکرد بومی ابری در حال تغییر روش ساختار شرکت‌ها در فناوری‌هایشان است.

پیشنهادات برتر توسعه دهندگان از AWS re:Invent 2021

نمونه‌های PaaS

در میان ارائه‌دهندگان پیشرو PaaS می‌توان به AWS (سرویس‌های وب آمازون)، Google Cloud Platform، Microsoft Azure، Red Hat OpenShift و Salesforce اشاره کرد. هروکو.

سه ارائه‌دهنده بزرگ ابر -AWS، Microsoft Azure و Google Cloud- همگی در دهه گذشته سرمایه‌گذاری‌های عمده‌ای را برای جذب توسعه‌دهندگان به خدمات خود انجام داده‌اند و اجزای ابری خود را در یک PaaS مورد نظر برای پذیرش آسان‌تر گرد هم آورده‌اند.

برخی از گزینه‌های پیشرو PaaS که امروزه هنوز در بازار وجود دارد، موارد زیر است.

AWS Elastic Beanstalk

یکی از اولین گزینه‌های PaaS، AWS Elastic Beanstalk، استقرار و مدیریت سریع برنامه‌های ابری را بدون نیاز به یادگیری در مورد زیرساخت‌های زیربنایی امکان‌پذیر می‌سازد. Elastic Beanstalk به طور خودکار جزئیات تامین ظرفیت، تعادل بار، مقیاس‌بندی و نظارت بر سلامت برنامه را کنترل می‌کند.

Cloud Foundry

Cloud Foundry یک PaaS منبع باز است که توسط بنیاد Cloud Foundry (CFF) اداره می شود. ابتدا توسط VMware توسعه داده شد و سپس به Pivotal Software، سرمایه گذاری مشترک EMC، VMware، و جنرال الکتریک، قبل از انتقال به CFF در سال ۲۰۱۵ منتقل شد. Cloud Foundry برای ساخت و اجرای برنامه های کاربردی مبتنی بر کانتینر، با استفاده از Kubernetes برای ارکستراسیون طراحی شده است. .

Google App Engine

Google App Engine یکی دیگر از ورودی های اولیه PaaS بود. این برای پشتیبانی از توسعه و میزبانی برنامه های کاربردی وب در مراکز داده تحت مدیریت گوگل طراحی شده است. برنامه‌ها به صورت خودکار در چندین سرور ذخیره می‌شوند، اجرا می‌شوند و مقیاس‌بندی می‌شوند.

سرویس برنامه Microsoft Azure

Microsoft Azure App Service یک PaaS کاملاً مدیریت شده است که خدمات مختلف Azure را در یک پلتفرم واحد ترکیب می‌کند.

Red Hat OpenShift

Red Hat OpenShift خانواده‌ای از پیشنهادات PaaS است که می‌توانند در فضای ابری میزبانی شوند یا در محل مستقر شوند، برای ساخت و استقرار برنامه‌های کانتینری. محصول شاخص OpenShift Container Platform است، یک PaaS در محل و مبتنی بر Kubernetes برای ساخت برنامه‌های کانتینری بر اساس لینوکس Red Hat Enterprise.

Salesforce Heroku

یک PaaS اولیه و بسیار محبوب، Heroku ممکن است راه خود را گم کرده باشد از زمانی که توسط غول SaaS Salesforce در سال ۲۰۱۰ خریداری شد، اما همچنان یک گزینه محبوب برای توسعه دهندگان است.

امروزه، Heroku بخشی از پلتفرم گسترده‌تر Salesforce ابزارهای توسعه‌دهنده است که از طیف وسیعی از زبان‌ها و هزاران برنامه‌نویسی که برنامه‌های کاربردی را روی آن اجرا می‌کنند، پشتیبانی می‌کند. در عمل، استفاده از Heroku مستلزم ایجاد یک زمان اجرا مشترک است که در کانتینرهای لینوکس مجازی (یا dynos، همانطور که Heroku آنها را می نامد) مستقر شده است که در یک شبکه dyno از سرورهای AWS گسترده شده است.

ظهور PaaS بدون سرور

آنها ممکن است لزوماً خود را با اصطلاح PaaS مرتبط نکنند، اما پلتفرم‌های توسعه نرم‌افزار مدرن مثل Vercel و Netlify در سال‌های اخیر با ارائه تجربه‌ای زیبا و مسیری ساده به توسعه‌دهندگان، موفقیت‌های زیادی کسب کرده‌اند. میزبانی برنامه های آنها.

در قلب آنها، این ارائه دهندگان قول می دهند که وظیفه توسعه وب جلویی (با استفاده از چارچوب های وب محبوب مانند React) را از کار اجرای واقعی آن کد در تولید جدا کنند.

راب انسلین، مدیر فروش Google Cloud به UiPath می رود

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

فروشندگان عمده ابر همچنین در تلاش هستند تا با انتزاع وظایف عملیاتی مانند مقیاس‌بندی، اصلاح و مدیریت سرورها از طریق AWS Fargate، نمونه‌های کانتینر Azure و محصولات Google Cloud Run، به مشتریان کمک کنند تا کد خود را سریع‌تر از ظرف به تولید منتقل کنند.

در همان زمان، ابرهای اصلی گزینه‌های محاسباتی بدون سرور خود را نیز ارائه می‌دهند – از جمله AWS Lambda، Google Cloud Functions، و توابع Microsoft Azure الف>. اساساً، این پلتفرم‌های شبه PaaS به توسعه‌دهندگان این امکان را می‌دهند تا توابع را از یک کتابخانه برای ساختن ریزسرویس‌های تشکیل‌دهنده‌ای که برنامه‌های کاربردی مدرن را در بر می‌گیرند، بدون نیاز به در نظر گرفتن زیرساخت‌های سرور زیربنایی هنگام کدگذاری، بسازند. برنامه‌های بدون سرور این مزیت را دارند که چرخه‌های ابری صفر را مصرف می‌کنند تا زمانی که درخواست کاربر آن‌ها را آماده کند.

Kubernetes در مقابل PaaS

علی‌رغم وعده‌اش، PaaS هرگز به یک روش اصلی برای ساخت برنامه‌های کاربردی در سطح سازمانی تبدیل نشد، زیرا توسعه‌دهندگان عموماً به دنبال کنترل و مقیاس‌پذیری بیشتر بر اساس شرایط خود بودند. این ما را در عوض به عصر کانتینرها و Kubernetes نرم افزار سوق داد.

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

PaaS ممکن است مدتها پیش به طور گسترده تحت ایده مدیریت کانتینر و اتوماسیون قرار گرفته باشد، با فروشندگان اصلی پلتفرم مانند Red Hat، VMware، و ارائه دهندگان ابر عمومی که به درستی در جهت تسهیل پذیرش کانتینرها و Kubernetes در سال های اخیر حرکت می کنند. این منجر به تعداد زیادی Kubernetes مدیریت شده، containers-as-a-a-service (CaaS)، محاسبات بدون سرور، و function شده است. گزینه‌های -as-a-service (FaaS)، همگی با هدف کاهش بار مدیریت دسته‌های کانتینر و صاف کردن آن منحنی یادگیری، در حالی که همچنان انعطاف‌پذیری و قابلیت حمل مورد نیاز را به توسعه‌دهندگان می‌دهند.

هیچکدام از اینها به این معنی نیست که PaaS لزوماً مرده است، اما PaaS مطمئناً در حال تکامل است زیرا صنعت به طور گسترده به سمت برنامه های کاربردی کانتینری که توسط Kubernetes تنظیم شده اند تغییر می کند. همیشه بازاری برای ساده سازی توسعه نرم افزار وجود خواهد داشت، اما پلت فرم زیربنایی برای انجام این کار با گذشت زمان تغییر کرده است.