PaaS : بستر به عنوان خدمت

- اهداف کلی
بطور کلی, PaaS باید ابزارهای لازم جهت خودکار کردن کامل برای بدست آوردن فرایند زیرساخت های مجازی برای برنامه داده شده را فراهم آورد.
- PaaS ——> پلتفرم به عنوان سرویس
پلت فرم به عنوان یک سرویس (PaaS) یک محیط محاسباتی یکپارچه مبتنی بر ابر است که از توسعه، اجرا و مدیریت برنامه ها پشتیبانی می کند. اجزای برنامه ممکن است در یک محیط ابر وجود داشته باشد یا با برنامه های مدیریت شده در ابرهای خصوصی یا در مراکز داده ادغام شوند.
زیرساخت به عنوان یک سرویس (IaaS) در سطح پایه ای است و شامل قابلیت هایی نظیر سیستم عامل، شبکه، ماشین مجازی و ذخیره سازی می شود.در وسط پلتفرم به عنوان یک سرویس (PaaS) محیطی است که شامل خدماتی برای توسعه و استقرار برنامه های کاربردی می باشد.نرم افزار به عنوان یک سرویس (SaaS) در بالای هرم نشان دهنده برنامه های کاربردی واقعی ارائه شده برای کاربران است.
فروشندگان PaaS یک محیط مدیریتی را ایجاد می کنند که ترکیبی از اجزایی را که به طور جداگانه در یک محیط توسعه سنتی مدیریت می شوند، فراهم می کنند.خدمات یکپارچه PaaS شامل middleware، سیستم عامل، و خدماتی برای پشتیبانی از برنامه های گسترده است. در توصیف ساده با PaaS، فروشندگان هنوز هم مدیریت زمان اجرا، middleware، سیستم عامل، مجازی سازی، سرور، ذخیره سازی، و شبکه را در دست دارند و کاربران مدیریت برنامه ها و داده ها را انجام می دهند.
اکثر پلتفرم های PaaS با توسعه نرم افزار ارتباط دارند و آنها مزایای متعددی را برای توسعه دهندگان فراهم می کنند. (Windows Azure PaaS یکی از آنهاست. یک پلتفرم قوی ارائه می دهد، به کاربران اجازه می دهد تا با سهولت تست، ساخت و توسعه برنامه های کاربردی را انجام دهند، بنابراین شرکت ها بجای مدیریت منابع محاسباتی پیچیده می توانند بر روی برنامه ها تمرکز کنند.)
هدف از ارائه دهنده PaaS ایجاد یک محیط انتزاعی است که از یک فرآیند کارآمد، مقرون به صرفه و قابل تکرار برای ایجاد و توسعه برنامه های با کیفیت بالا پشتیبانی کند. این برنامه ها طراحی شده اند که در محیط های عمومی یا خصوصی ابر اجرا شوند.
PaaS Responsibility
- نسل هایی از PaaS
به منظور بهبود فن آوری PaaS، بسیاری از مراحل آن از زمانیکه که در بازار عرضه شده است تحول یافته است. در حال حاضر، PaaS تا حد زیادی تکامل یافته است بدین منظور کسب و کار و توسعه دهنده شروع به تکیه به آن و پذیرش آن کرده اند. این تغییرات تکنولوژی را در معماری PaaS به عنوان “نسل PaaS” نامگذاری کرده اند.
- نسل 01: این نسل مبتنی بر نوع پلتفرم ابری خاصی است. AWS، Heroku و Azure سیستم عامل های اولیه ای بودند که این خدمات را آغاز کردند.
- نسل 02: نسل این پلتفرم ها پیرامون راه حل های منبع باز توسعه داده شد. OpenShift و Cloud Foundry به عنوان یکی از بهترین بازیکنان این نسل شناخته شدند. این ارائه دهندگان تکنولوژی مشتریان رابه اجرای PaaS خود (در ابر یا پیش فرض) دعوت می کنند.
در همین راستا، سیستم های PaaS همچنین ایده container را راه اندازی کرده و مدل های مبتنی بر container خود را توسعه دادند. با این حال، در حال حاضر این فروشندگان PaaS در حال تغییر رویکرد خود و حرکت به سوی مدل های پیشرفته تکنولوژی هستند. به عنوان مثال: در حال حاضر Openshift از مدل container خود به مدل container مبتنی بر Docker منتقل شده است و همین تحولات توسط Cloud foundry نیز اجرا شده است.
- نسل 03: در حال حاضر، نسل سوم PaaS صرفا بر مدل های container متمرکز است. سیستم های جدید PaaS مانند Deis، Dawn، Octohost، Flynn و Tsuru کاملا بر اساس مدل container Docker ساخته شده اند. این پلتفرم از ابتدا در پیرامون Docker قرار دارد. علاوه بر این، این مدل PaaS در ابرهای IaaS عمومی یا روی سرورهایش قابل استفاده است.
- تحویل مدل PaaS
مدل تحویل PaaS شبیه به SaaS است، فقط به جای ارائه نرم افزار از طریق اینترنت، PaaS یک بستر برای ایجاد نرم افزار فراهم می کند. این پلتفرم بر روی وب تحویل داده می شود و به توسعه دهندگان اجازه می دهد تمرکز خود را بر روی ساخت نرم افزار داشته باشند در حالی که نگرانی در مورد سیستم عامل ها، به روز رسانی نرم افزار، ذخیره سازی و یا زیرساخت ها نداشته باشند.
PaaS اجازه می دهد تا عمده کار به طراحی و ایجاد برنامه های کاربردی با اجزای نرم افزار ویژه ساخته شده در PaaS باشد . این برنامه ها و یا middleware، مقیاس پذیر و به شدت در دسترس هستند، زیرا آنها بر روی مشخصه های ابری خاصی قرار می گیرند.
- مزایای PaaS
یکی از مزایای عمده پلتفرم به عنوان سرویس PaaS توانایی آن در بهبود بهره وری توسعه دهندگان است .PaaS پشتیبانی مستقیم از کسب و کار را با فراهم کردن امکان توسعه سریعتر و تحویل عملیات بهتر فراهم می کند. این کار را از طریق روش یکپارچگی پیوسته و گسترش خودکار برنامه کاربردی انجام می دهد. PaaS همچنین توسعه دهندگان را قادر می سازد تا مزایای گسترده ای از ابر را درک کنند.
PaaS Model
- به میزان استفاده پرداخت کنید
کاربران فقط برای خدماتی که استفاده می کنند پرداخت می کنند، بنابراین هیچ هزینه اضافی برای منابع پرداخت نمی شود. این روش پرداخت به شما اجازه می دهد فقط از آنچه که استفاده می کنید هزینه دهید. برخی از ارائه دهندگان PaaS برای دسترسی به پلتفرم و برنامه های خود هزینه ماهانه تعیین می کنند. مهم است قبل از مشارکت در خدمات خود درباره قیمت گذاری صحبت کنید.
- سرعت، انعطاف پذیری و چابکی
PaaS انعطاف پذیری، سرعت و چابکی بیشتر را برای فرآیند توسعه و گسترش ارائه می دهد. با ارائه یک زیرساخت برنامه قابل پیش بینی شرکت ها با برنامه های فعال می توانند نیازهای مشتریان را تامین کنند.
- مقیاس پذیری و عملکرد
ابر می تواند به اندازه کافی برای دیدار با نیازهای سیستم اطلاعاتی در حال رشد مقیاس پذیر باشد.با توجه به عملکرد، مسئولیت ارائه دهنده PaaS است که اطمینان حاصل کند که خدمات مشتریان بدون هیچگونه مانعی مواجه می شود و همچنین برای آنها امکان دسترسی به منابع خود را از طریق داشبورد برای عملکرد بهتر فراهم کند.
- بدون سربار اضافی برای بکاپ
فضاهای ذخیره سازی و پشتیبان گیری نیاز به هزینه برای تعمیر و نگهداری، قدرت و خنک کننده دارد که تمام بودجه شرکت را تخلیه می کند. این با راه حل های PaaS مرتفع می شود زیرا PaaS نیاز به پشتیبان گیری و ذخیره سازی را از بین می برد. در نهایت منجر به صرفه جویی قابل توجهی خواهد شد.
- پهنای باند بالا
این امر برای فرایند توسعه یک برنامه وب برای انجام آزمایش بسیار مهم است تا ببینید که چگونه در چارچوب های مختلف اجرا می شود. این اغلب باعث کاهش سرعت شبکه می شود اما با PaaS، تمام فرآیند تست را می توان در سرورهای محاسبات ابری انجام داد.
- ابزار تولید بر اساس وب
نیازی به گواهینامه جدا ، نصب و نگهداری مجموعه ای از ابزارها برای ایجاد برنامه های کاربردی وجود ندارد. خدمات PaaS در حال حاضر محیط لازم را برای شما فراهم می کند. ابزارهای مبتنی بر وب به توسعه دهندگان اجازه می دهد تا از هر مکان با مجموعه وسیعی از دستگاه ها کار کنند.
- عدم نیاز به تعمیر و نگهداری
PaaS در محاسبات ابر مدیریت و ارتقاء هم سخت افزار وهم نرم افزار را فراهم می کند، به طوری که کاربران می توانند تنها بر روی کسب و کار خود تمرکز کنند.پلتفرم PaaS به شما کمک می کند که بر روی کد تمرکز کنید نه مدیریت، بنابراین شما می توانید برنامه های خود را بدون نیاز به نگرانی در مورد کارهای فناوری اطلاعات و یا انتظار چند روزه برای تهیه سرور برای نوشتن کد، هماهنگ سازید.
- ابزارهایی برای همکاری
PaaS تعدادی از ابزارهای قدرتمندی را فراهم می کند که تیم توسعه پراکنده جغرافیایی را قادر می سازد تا تلاش خود را برای ایجاد و ارائه یک قطعه نرم افزاری متمرکز کنند.
- چه زمانی از PaaS استفاده کنیم ؟
دو گروه اصلی وجود دارد که از مزایای ابر در سطح PaaS ( در مقایسه با سطح IaaS) بهره مند میشوند.شرکت هایی با فعالیت های توسعه نرم افزاری و فروشندگان مستقل نرم افزاری که (ISV ها) علاقه مند به فروش خدمات SaaS در بالای یک میزبان PaaS هستند. در همین زمان موقعیت های بسیاری وجود دارد که استفاده از PaaS سودمند یا حتی ضروری است. اگر توسعه دهندگان متعدد بر روی یک پروژه توسعه مشابه کار کنند یا اگر بخواهند توسعه دهندگان دیگر را نیز به مجموعه اضافه کنند ,PaaS می تواند سرعت و انعطاف پذیری زیادی را در کل فرآیند ایجاد کند. همچنین PaaS مفید است اگر شما می خواهید برنامه های سفارشی خود را ایجاد نمایید. این سرویس ابر همچنین می تواند هزینه های زیادی را کاهش دهد و می تواند برخی از چالش هایی را که به سرعت در حال توسعه یا استفاده از یک برنامه بوجود می آید را ساده کند.
- مثال هایی از PaaS
نمونه های متعددی از PaaS وجود دارد که می تواند به چند دسته تقسیم شود که براساس تمرکز و خاصیت روش توزیع آنها استفاده شود. (Heroku) عمومی، (Apprenda OpenShift، Cloud Foundry) خصوصی و راه حل های Hyabrid (IBM Bluemix) PaaS داریم .همچنین راه حل ها PaaS تلفن همراه وجود دارد، به طور خاص برای ارائه قابلیت های توسعه برنامه های تلفن همراه طراحی شده است.
همچنین سیستم های PaaS وجود دارد که برای توسعه سریع امکان پذیر است. معروف ترین آنها عبارتند از Mendix و Sales Force.به غیر از این راه حل های PaaS مبتنی بر منبع باز نیز وجود دارد، طراحی شده است تا برنامه های کاربردی بتوانند در محیط منبع باز اجرا شوند نه برای آنها را میزبانی کنند. یک نمونه معروف از این پلتفرم موتور google App است.
- درباره cloud foundry بیشتر بدانیم
Cloud foundry یک پروژه مدیریت VMware با ارائه اولین PaaS “باز” در جهان است پلتفرمی برای ساخت، توسعه و اجرای برنامه های ابر با استفاده از spring برای توسعه دهندگان جاوا و دیگر زبان ها / چارچوب های JVM شامل Rails، Sinatra، Node.js، Groovy،Grails و Scala است.Cloud Foundry یک پلت فرم نرم افزاری است که شامل یک موتور برای اجرای برنامه کاربردی, یک موتور خودکار برای توسعه برنامه و مدیریت چرخه حیات؛ رابط خط فرمان (CLI) برای ادغام با ابزارهای توسعه برای تسهیل فرایندهای توسعه, معماری باز برای ادغام سریع چارچوب توسعه؛ رابط کاربری خدمات برنامه و رابط ارائه دهندگان ابر می باشد.
یکی از نکات اصلی Cloud Foundry این است که از زیرساخت های زیرین آزاد است. این به کاربران این امکان را می دهد که از زیرساخت موجود خود (دسکتاپ، مرکز داده و ابر خصوصی ) استفاده کنند و در عین حال استفاده از مزایای PaaS را نیز در بر می گیرد.
اگر سوالی در مورد ابر (IaaS و PaaS) دارید و اینکه چگونه برنامه بعدی شما می تواند مفید باشد، لطفا به گروه Pishro مراجعه کنید. تیم محاسبات ابری ما برای ارائه راه حل های مناسب برای چالش های پیچیده ای که کسب و کار شما با آن مواجه است شهرت دارد.
- نتیجه گیری
ما امیدواریم که تعریف و مثال های بالا PaaS را برای شما روشن کرده باشد . با این حال، PaaS محبوبیت خود را حفظ کرده است. ابزارهای گسترده برای همکاری توانایی کاهش هزینه ها در طول زمان را دارد و این واقعیت که نیازی به نگرانی در مورد راه اندازی و مدیریت middleware نیست، چیزی است که توسعه دهندگان را به استفاده از PaaSراغب می کند، همچنین ما متوجه شدیم که PaaS از گسترش خودکار و امکانات افزونه / روش هایی برای رسیدن به سطوح دسترسی بالاتر را نیز پشتیبانی می کند.اگر هنوز در این فکر هستید که حرکت به سمت رایانش ابری ارزشمند است، امیدواریم که اطلاعات ارائه شده در وبلاگ ما به شما کمک کند تا این ذهنیت خود را حفظ کنید و از این مدل محبوب و مناسب استفاده نمایید.
- منابع
- https://atos.net/content/dam/global/ascent-whitepapers/ascent-whitepaper-paas-making-the-most-of-clouds.pdf
- https://www.apriorit.com/white-papers/405-saas-iaas-paas
- http://rndgroup.com/wp-content/uploads/2017/01/IaaS-Paas-Whitepaper.pdf
- https://www.bmc.com/blogs/saas-vs-paas-vs-iaas-whats-the-difference-and-how-to-choose/
- https://www.ibm.com/blogs/cloud-computing/2016/08/22/paas-benefits-characteristics/
- https://www.dummies.com/programming/cloud-computing/hybrid-cloud/what-is-platform-as-a-service-paas-in-cloud-computing/
- https://www.znetlive.com/blog/what-is-paas-in-cloud-computing/
- https://arxiv.org/pdf/1803.07680.pdf