آنچه در این مقاله میخوانید
سرویس پلتفرم ابری یا همان سرویس PaaS یکی از سرویسهای مهم در دنیای ابری بهحساب میآید. سرویسی که میتواند کمک بسیاری در بلوغ یک کسبوکار داشته باشد. در این مطلب سعی شده است، این سرویس پلتفرم ابری را بیشتر بشناسیم و بیشتر بتوانیم با کاربرد آن آشنا شویم. این مطلب سرویس پلتفرم ابری را از زوایای مختلف موردبررسی قرار داده و سعی میکند برخی از مهمترین تکنولوژیهای موردنیاز در این حوزه را نام ببرد. مخاطبین این مطلب را میتوان توسعهدهندگان نرمافزار، متخصصین devops و متخصصینی نام برد که تصمیم به آشنایی با مفاهیم پایه PaaS و اکوسیستم آن دارند.
سرویس پلتفرم ابری چیست؟
اجرایی کردن یک محصول نرمافزاری تحت وب در اکثر مواقع فرآیندی زمانبر است. فرآیندی که طی آن چندین تیم مختلف همچون تیم سختافزار، تیم توسعه نرمافزار، تیم کنترل کیفی محصول، در آمادهسازی آن سهیم هستند. این تیمها درک متقابلی از نیازمندیها و محدودیتهای یکدیگر داشته و هماهنگی زیادی بین آنها نیاز است. در پارهای موارد آمادهسازی درخواستهای تیمها در این بخش تا هفتهها ممکن است به طول بی انجامد. نکتهای دراینبین مطرح میگردد بحث زمان است. از دست رفت زمان در پیچوخمهای آمادهسازی زیرساخت و یا بخشهای مرتبط با آمادهسازی زیرساختهای موردنیاز یک سرویس، آسیبهای متعددی به کسبوکارهای اینترنتی وارد کرده و باعث کندی در بازار رقابت شرکتهای حوزه فناوری اطلاعات شده است.
یکی از راهحلهای بسیار مؤثر و حیاتی در بلوغ فنی کسبوکارهای اینترنتی، استفاده از زیرساختهای ابری است و یکی از مهمترین سرویسهای این حوزه سرویس PaaS محسوب میشود. سرویس PaaS در کنار IaaS و SaaS طیف گستردهای از نیازمندیهای کاربران مختلف را برطرف میکند. درخواستکنندگان این سه نوع سرویس را میتوان این گروهها نام برد.
مخاطبین سرویسهای دنیای رایانش ابری
طی تقسیمبندی که گارتنر ارائه داد، مخاطبین سرویس PaaS معمولاً در موارد زیر از این سرویس ابری بهره میبرند.
- توسعه و مدیریت API
- اپلیکیشن های تحلیل کسبوکار
- اپلیکیشن های مدیریت فرآیند کسبوکار Business process management) BPMX)
- اپلیکیشن های ارتباط تصویری، صدا و …
- اپلیکیشن های پایگاه داده
- IoT
- سرویسهای Master data management) MDM)
چابکی که سرویس PaaS (پلتفرم) به تیمهای نرمافزاری ارائه میدهد، تأثیر بسیار در کیفیت نهایی محصول داشته و رقابت را برای کسبوکارها سادهتر میکند. سرویس پلتفرم را میتوان یکی از مفاهیم بالقوه در اکوسیستم ابری برشمرد که طی سالیان اخیر توجه ویژهای به آن شده است. طی سالهای اخیر و با ظهور تکنولوژیهای قدرتمندی همچون داکر و کوبرنتیس مفهوم پلتفرم رنگی تازه به خود بخشید. پیشبینی درآمد دو برابری برای سرویسدهندههای PaaS طی 4 سال، نشان از گرایش تیمهای فنی به این مفهوم بسیار جذاب دارد.
سرویس PaaS در تعریفی ساده، اکوسیستمی است از تکنولوژی مختلف که در کنار یکدیگر، سرویسی را در اختیار برنامه نویسان قرار میدهد تا بتوانند اپلیکیشن های خود را اجرائی نمایند. سرویس پلتفرم همچون زیرساخت ابری، بهطور گستردهای از مفهوم مجازیسازی بهره میبرد. با این تفاوت که در مفهوم زیرساخت ابری، از مجازیسازی سختافزار همچون CPU، Memory و دیسک صحبت میشود، اما در سرویس PaaS از مجازی در سطح سیستمعامل و استفاده از مفاهیم Namespace و cgroup بر روی Process ID، Network، Filesystem، ipc، User و UTS صحبت میشود.
مقایسه معماری مبتنی بر کانتینر و زیرساخت مبتنی بر مجازیسازی سختافزار
در این ساختار سرویس PaaS میتواند بر روی بستر مجازیسازی سطح سختافزار قرار گیرد و یا میتوان بهطور مستقل بر روی یک سختافزاری فیزیکی (bare metal) اجرائی شود. البته انتخاب هر یک از روشهای فوق بهصورت چشمگیری در کارایی اپلیکیشن هایی که بر روی سرویس PaaS قرار دارند، تأثیرگذار است.
نباید فراموش کرد که نمیتوان مفهوم پیچیدهای همچون سرویس PaaS را تنها به مجازیسازی سطح سیستمعامل گره زد. همانطور که در قسمتهای قبل شرح داده شد، این مفهوم اکوسیستمی بوده که مجموعهای از تکنولوژیها، مفاهیم و ابزارهای مختلفی را در کنار خود داشته تا بتواند کارایی لازم را برای مخاطبین داشته باشد. در ادامه نیمنگاهی به این اکوسیستم ابری خواهیم داشت.
اکوسیستم سرویس پلتفرم
سرویس PaaS بستری را برای توسعهدهندگان نرمافزار فراهم میآورد که بتوانند مراحل ایجاد، توسعه، تست و نگهداری یک نرمافزار را به انجام برساند؛ اما این مسئله همه ماجرا نیست. سرویس PaaS متشکل از بازیگران مختلفی است که در کنار یکدیگر یک اکوسیستم کامل مبتنی بر نیازمندی کاربران را ایجاد میکند. هر یک از بازیگران فوق خدماتی را ارائه میدهند و یا نیازمندی را طلب میکنند. در ادامه هر یک از این بازیگران این اکوسیستم معرفیشده و نیازمندی و یا سرویسهای قابلارائه توسط آنها شرح داده میشود.
- زیرساخت پلتفرم
- توسعهدهندگان/Devops
- تیم فنی ارائهدهنده سرویس PaaS
- زیرساخت فیزیکی/IaaS
اکوسیستم ابری
- زیرساخت پلتفرم
مهمترین عنصر یک اکوسیستم پلتفرم ابری را میتوان محصول پلتفرم برشمرد. زیرساختی که بر روی آن کدهای کاربران پردازششده، گسترشپذیری انجام میپذیرد، منابع ذخیرهسازی مدیریت میشود و … بهطورقطع هر سرویس PaaS بایستی ویژگیهای فوق را در اختیار داشته باشد.
- قابلیت Load Balancing
- Service discovery
- ابزار Registry
- منابع ذخیرهساز مانا/موقت
- مدلهای گوناگون Deployment
- دسترسی به لاگ های اپلیکیشن ها
- ابزار مانیتور کردن سرویس
- ایجاد شبکههای ایزوله شده
- سیاستهای امنیتی
هر یک از موارد فوق بخشی از چرخه حیات سرویس و عملکرد آن را معنا میبخشد. بهعنوانمثال فرآیند Deployment وظیفه تبدیل یک کد منبع را به یک برنامه تحت وب دارد؛ و یا قابلیت Load balancing که گسترشپذیری اپلیکشین ها را به همراه دارد.
2. توسعهدهندگان/Devops
سرویس PaaS خانه توسعهدهندگان نرمافزار است. کاربرانی که با استفاده از سرویس پلتفرم و مهاجرت بر روی آن، دستاوردهای زیادی را در بعد فنی کسبوکار خود میتوانند به ارمغان آورند. البته نبایستی فراموش کرد که مهاجرت به بستر فوق در برخی موارد فرآیند سادهای نخواهد بود و تغییر نگرش و همچنین تغییر معماری را به همراه خواهد داشت. توسعهدهندگان و بهطور خاص، متخصصین حوزه Devops برای محقق کردن اصلیترین هدفشان یعنی انتشار سرویسهایشان نیازمند تکنولوژیها و ابزارهایی هستند که داشتن برخی از آنها برای یک سرویسدهنده PaaS الزامی است.
- روشهای متنوع نشر سرویس همچون Git، Dockerfile و docker image
- ابزارهای CI/CD جهت خودکار سازی فرایند انتشار سرویس
- ابزارهای CLI
- پنل مانیتور کردن سرویسها
- مدیریت Storage
- ابزارهای Registry
- دسترسی به لاگ های تولیدشده توسط اپلیکیشن ها
همانطور که ذکر شد، سرویس پلتفرم حکم خانه توسعهدهندگان را دارد. خانهای که بایستی امن و آرام باشد و درعینحال امکاناتی را در اختیار ساکن آن قرار دهد تا دغدغههایش کمتر شده و بتواند تمرکز خود را بر روی ایدههای کسبوکار خود بگذارد و نگران زیرساختهای فنی نباشد.
3. تیم فنی ارائهدهنده سرویس PaaS
همانطور که در ابتدا بیان شد، اغلب نیازمندیهای مطرحشده در اکوسیستم پلتفرم توسط ارائهدهنده سرویسهای ابری در اختیار کاربران قرار میگیرد. ارائهدهنده سرویس پلتفرم، نیاز به ایجاد بستری امن و پایدار برای کاربران خود دارد. در این بخش ارائهدهنده این نوع سرویس وظایفی را بر عهده دارد.
- مدیریت کلاسترها
- پایش و مانیتور کردن سرویسها
- سیستم billing
- مدیریت شبکه
- مدیریت منابع ذخیرهسازی
- مدیریت سطوح دسترسی Role-based access control) RBAC )
- مستندسازی و آموزش
ارائهدهنده این نوع از خدمات خود را وارد دنیای مشتریان خود نمیکند، اما بهطور دقیق زیرساختهای آن را مدیریت و پایش میکند. با توجه به نوظهور بودن بسیاری از تکنولوژیها و پیچیدگی مهاجرت اپلیکیشن های مشتریان بر روی سرویس PaaS، بهطورقطع ارائه سرویسی کاربرپسند و مدیریتشده به همراه آموزش مناسب میتواند به مشتریان کمکرسانی نماید.
4. زیرساخت فیزیکی/IaaS
کلیه تکنولوژیهای سرویس PaaS بر روی بستر زیرساختی قرار میگیرد که متشکل از منابع پردازشی، شبکه و منابع ذخیرهسازی است. این بستر ممکن است بر روی منابع فیزیکی، منابع مجازی ساز و یا سرویس ابری IaaS قرارگرفته باشد. سرویسدهندگان ابری میتوانند با همبندی مطلوب بین لایه پلتفرم و زیرساختهای فیزیکی و یا مجازی، سرویسی یکپارچه را ارائه دهند و خدمات ارزشافزوده جذابی را برای کاربران به همراه داشته باشند. ازجمله این خدمات:
- همبندی در بخش شبکه بین لایه زیرساخت و لایه پلتفرم
- همبندی در بخش منابع ذخیرهسازی بین لایه زیرساخت و لایه پلتفرم
- همبندی در بخش Authentication بین اکوسیستم پلتفرم و لایه زیرساخت ابری
- همبندی در بخش منابع پردازشی و مدیریت آن بین اکوسیستم پلتفرم و لایه زیرساخت ابری
ویژگیهای این سرویس پلتفرم ابری
اجازه بدهید در ابتدا به این مسئله بپردازیم که سرویس PaaS برای چه کسانی میتواند مورداستفاده قرار گیرد. همانطور که در بخشهای قبل ذکر شد، مخاطبین اصلی این سرویسها توسعهدهندگان نرمافزار هستند. توسعهدهندگانی که میتوان آنها را دریکی از گروهیهای زیر دستهبندی کرد.
- توسعهدهندگان مستقل
- دانشجویان حوزه فناوری اطلاعات
- متخصصین Devops
- شرکتهای استارتآپ حوزه فناوری اطلاعات
- شرکتهای کوچک، متوسط و بزرگ حوزه فناوری اطلاعات با محوریت توسعه نرمافزار
- متخصصین پایگاه داده
- و …
همانطور که در بخش اکوسیستم سرویس پلتفرم شرح داده شد، مجموعهای از سرویسهای مختلف در این حوزه ارائه میشود. هر یک از سرویسهای فوق بخش خاصی از متخصصین را هدف قرار داده است. با توجه به نیازمندیهای هر یک از مخاطبین سرویس PaaS میتوان نگاشتی کلی بین محصولات ارائهشده در پلتفرمهای ابری و متخصصین این حوزه را مشاهده نمایید. البته شکل فوق به معنی این نیست که هر یک از مخاطبین نمیتوانند از سرویسهای بخشهای مختلف PaaS استفاده نمایند.
نگاشت بین برخی سرویسهای ارائهشده در PaaS و مخاطبین
اما به بحث اصلی بازگردیم و به این مورد بپردازیم که یک اکوسیستم پلتفرم ابری چه وِیژگی مثبتی را ارائه میدهد.
- کاهش زمان چرخه تولید محصول: بیشک یکی از مهمترین دلایل استفاده از پلتفرمهای ابری میتوان این مسئله باشد. فرآیندهای چندین ساعته و حتی چندین روزه جهت آمادهسازی یک وب سرور و اجرائی کردن اپلیکیشن، بر روی آن تبدیل به فرآیندی چنددقیقهای و حتی چندثانیهای شده است. سرویس PaaS دغدغه اجرائی کردن نسخههای مختلف اپلیکیشن ها را از بین میرود و چابکی در این فرآیند نمود پیدا میکند.
- گسترشپذیری سرویس: درگذشته و با رشد یک کسبوکار و افزایش بار ترافیکی بر روی آن، تصمیمگیری در خصوص گسترشپذیری اپلیکیشن بسیار هزینهبر بود. نیاز به تجهیزاتی همچون Load Balancer و یافتن متخصصین آن حوزه به همراه آمادهسازی سرورهای جدید فرآیندی زمانبر و هزینهبر بود که گاه آمادهسازی آن هفتهها به طول میانجامید؛ اما معماری ذاتاً گسترشپذیر سرویس PaaS این اجازه را به کسبوکارها میدهد که بتوانند در کمتر چند ثانیه سرویسهای خود را گسترش دهند.
- مصرف بهینه منابع و کاهش هزینه: با توجه به اینکه اپلیکیشن ها از بستری اشتراکی بهره میبرند و منابع بر روی سیستمعامل بهصورت اشتراکی مورداستفاده قرار میگیرد، مخاطبین برای اجرائی کردن اپلیکیشن های خود تنها نیاز به پرداخت هزینه پردازش خوددارند و هزینههای تکراری در بخشهایی همچون سیستمعامل از سبد هزینه حذف میشود.
- افزایش امنیت: ذات تکنولوژیهای بکار رفته در زیرساخت سرویس PaaS مبتنی بر ایزوله سازی و ایجاد دسترسیهای بسیار محدود به منابع خاص بوده که درصورتیکه ملاحظات از سوی توسعهدهندگان و ارائهدهندگان سرویس پلتفرم رعایت گردد، بستری بسیار امن را به همراه خواهد داشت.
- تداوم کسبوکار: با توجه به اینکه گسترشپذیری جزو قابلیتهای کلیدی است که سرویس PaaS در اختیار مشتریان قرار میدهند، همچنین ویژگیهایی همچون Rolling update، این اطمینان را به صاحبان کسبوکار میدهد که اپلیکیشن های آنها کمترین میزان قطعی را داشته باشند، حتی در زمان تغییرات بزرگ.
- تمرکز بر کسبوکار: شرکتها میتوانند تمرکز خود را بر روی کسبوکار خود قرار داده و پیچیدگی فنی/زیرساختی را به ارائهدهندگان سرویسهای PaaS بسپارند.
تابهحال در خصوص مزایای پلتفرم ابری صحبت شد؛ اما اجازه دهید در خصوص چالشها و دغدغهها همصحبت شود.
- مهاجرت به سرویس PaaS: مهاجرت همواره فرآیندی چالشبرانگیز است. انطباق با تکنولوژیهای ارائهشده توسط سرویسدهنده PaaS و در برخی اوقات بازطراحی اپلیکیشن و Cloud-native کردن آن فرآیندی زمانبر است.
- Containerize کردن اپلیکیشن: قطعاً گامی مهم برای مهاجرت به سرویس PaaS، تبدیل اپلیکیشن ها به ساختار مبتنی بر Container خواهد بود که فرآیندی پر چالش و در برخی اوقات نشدنی بوده که نیاز به بازطراحی اپلیکیشن دارد.
- تغییر فرهنگسازمانی: طی مقاله گارتنر در خصوص چالشهای استفاده از PaaS، بیشترین نگرانی مدیران، تغییر فرهنگسازمانی و تزریق دانش جدید است.
- چالشهای امنیت: سرویس PaaS همچون دیگر سرویسهای ابری نیز، دغدغههای مربوط به امنیت داده را به همراه خود دارد.
منابع :
The Art of CPU-Pinning: Evaluating and Improving the Performance of Virtualization and Containerization Platforms- Davood Ghatreh Samani; Chavit Denninnart; Josef Bacik; Mohsen Amini Salehi- 2020
این مقاله را به اشتراک بگذارید