مفاهیم محاسباتی: IAAS، SAAS، PAAS. اینها چه حیواناتی هستند؟
هنگامی که شروع به یادگیری در مورد ابر می کنیم، با یک سری مفاهیم روبرو می شویم که در ابتدا می تواند بسیار گیج کننده به نظر برسد و اغلب در ذهن ما گره می زند. و بنابراین، با قویتر و قویتر شدن فرهنگ ابری، دانستن و درک این مفاهیم برای برنامهریزی بهترین راه برای استفاده از ابزارهای ابری مختلف در زندگی روزمرهمان، چه برای خدماتی که استفاده میکنیم، چه نحوه دسترسی ما به یک برنامه، اساسی بوده است. یا حتی زمانی که باید یک زیرساخت کامل را از ابتدا ایجاد کنیم.
هنگامی که در مورد رایانش ابری صحبت می کنیم، دیدن کلمات اختصاری IAAS، PAAS، SAAS در چندین مکان کاملاً معمول است. این شرایط برای درک میزان کنترل و سفارشیسازی ما بر روی برنامههای خود در ارائهدهنده ابر ضروری هستند. مخفف ها معانی زیر دارند:
- IAAS: زیرساخت به عنوان یک سرویس
- PAAS: پلتفرم به عنوان یک سرویس
- SAAS: نرم افزار به عنوان یک سرویس
همراه با این مفاهیم محاسباتی، ماتریس مسئولیت مشترک را داریم، که اساساً تعریفی است از اینکه وقتی با یک ارائه دهنده ابری سروکار داریم، چه کسی مسئول چه چیزی است. از طریق آن است که میفهمیم اصطلاحات IAAS، PAAS، SAAS واقعاً چه هستند و وظایف کاربر و ابر هنگام استفاده از هر یک چیست.
توجه: برای نمونههایی از خدمات ابری، ارائهدهنده AWS خواهد بود.
IAAS – زیرساخت به عنوان یک سرویس
در IaaS، ارائهدهنده ابر منابع محاسباتی اولیه را برای ساختن زیرساختهایمان بر اساس تقاضا در اختیار ما قرار میدهد (شما یک سرور «اجاره» میکنید). در این مدل، ما به جای خرید سخت افزار فیزیکی، اساسا سرور، ذخیره سازی یا شبکه ابری می خریم.
یک مثال خوب از IAAS در AWS EC2 است. در این خدمات، مسئولیت ها به شرح زیر تفکیک می شود:
مسئولیت AWS
- حفظ سخت افزار فیزیکی سرویس (سرورها، شبکه، ذخیره سازی)
- مرکز داده را ایمن نگه دارید
- در دسترس بودن و افزونگی سرویس را حفظ کنید (نه برنامه شما)
- سیستم عامل سرویس را ارائه دهید
مسئولیت کاربر
- سیستم عامل را نصب کنید
- چند میان افزار برای برنامه خود نصب کنید
- پشتیبان گیری و DR برنامه خود را مدیریت کنید
- سیستم عامل سرویس را نصب کنید
- نگران وصله ها و به روز رسانی های سیستم عامل خود هستید
- پیکربندی عملکرد نمونه خود را مدیریت کنید
- امنیت برنامه
- مراقبت از داده های تولید شده توسط برنامه
- کانتینرها را پیکربندی کنید
استفاده از IaaS در زندگی روزمره شما میتواند مدیریت بیشتری بر سرویسی که برنامه میزبانی میکند به شما بدهد، اما از طرف دیگر مسئولیتهای شما نیز بیشتر میشود، که میتواند کار بیشتری داشته باشد و پیکربندی زمان بیشتری را صرف کند.
برای درک آسان تر، از قیاس معروف “Pizza as Service” استفاده می کنم.
در این سناریو، مثل این است که یک پیتزای یخ زده از پیتزا فروشی بخریم و آن را در خانه بپزیم. تا لحظه مصرف پیتزا باید نگران چند نکته باشیم، مثلاً باید فر را از قبل گرم کنیم، وسایلی که به ما در خوردن غذا کمک می کنند مانند کارد و چنگال، لیوان، میز، صندلی و همچنین نوشیدنی که می خواهیم بخوریم. با هم داشته باشند . همانطور که ما در اینجا کارهای زیادی برای انجام دادن داریم، کنترل کاملی بر نحوه تهیه پیتزا داریم.
PAAS – پلت فرم به عنوان یک سرویس
برخلاف IaaS، PaaS مدلی است که در آن نیازی به مدیریت هیچ یک از زیرساختهای اساسی نداریم. کاری که ما انجام می دهیم این است که نگران برنامه خود باشیم، پارامترهای آن را تعریف کنیم و از سرویس انتخابی استفاده کنیم زیرا تمام وظایف مدیریتی توسط ارائه دهنده ابر انجام می شود.
در AWS، یک مثال بسیار خوب fargate است که تمام زیرساختهای زیربنایی موجود در کانتینرها را برای شما مدیریت میکند و شما نگران پارامترسازی برنامه خود هستید. مسئولیت ها به شرح زیر تفکیک می شوند:
مسئولیت AWS
- حفظ سخت افزار فیزیکی سرویس (سرورها، شبکه، ذخیره سازی)
- مرکز داده را ایمن نگه دارید
- در دسترس بودن و افزونگی سرویس را حفظ کنید (نه برنامه شما)
- تهیه و نصب سیستم عامل سرویس
- به عنوان میان افزار برای برنامه شما خدمت کنید
- نگرانی در مورد وصله ها و به روز رسانی ها
- ظروف ارکستراسیون
- اطمینان از اجرا و زمان بندی کانتینرها
مسئولیت کاربر
- پشتیبان گیری و DR برنامه خود را مدیریت کنید
- برنامه را نصب کنید
- مراقبت از داده های تولید شده توسط برنامه
- کانتینرها را پیکربندی کنید
- امنیت برنامه
استفاده از PaaS برای برنامههای ما میتواند سودمندتر از IaaS باشد (زمانی که نیازی به کنترل یا مدیریت زیرساختهای خود نداریم)، زیرا نیازی به نگرانی در مورد زیرساختهای زیربنایی، تعمیر و نگهداری سرور نداریم، میتوانیم به راحتی مقیاسهای بسیاری را انجام دهیم. سرویس ها یا پلتفرم های PaaS دارای امنیت داخلی مانند رمزنگاری و مواردی از این دست هستند و بهترین چیز این است که بیشترین زمان ما برای توسعه اپلیکیشن خواهد بود.
در سناریوی پیتزا به عنوان سرویس ما، در مدل PaaS، مانند سفارش تحویل است. پیتزا فروشی (ارائه دهنده ابر) با تمام تهیه پیتزا مانند خمیر، پر کردن و تحویل سروکار دارد، شما فقط باید نگران آماده شدن برای خوردن پیتزا باشید.
SAAS – نرم افزار به عنوان یک سرویس
SaaS مدلی با مسئولیت های کمتر برای کاربر و در نتیجه با بالاترین سطح انتزاع در بین مدل های دیگر ذکر شده در بالا است. در اینجا، ارائهدهنده ابر کل زیرساخت و پلتفرمها را مدیریت میکند و کاربر فقط نگران دسترسی به برنامه از طریق اینترنت است.
یک مثال خوب از SaaS، نتفلیکس است، که به جای رفتن به فروشگاه برای خرید فیلم، به سادگی با داده های خود مشترک می شویم و بدون نگرانی در مورد آن از نظر زیرساخت، توسعه برنامه، در دسترس بودن و غیره از این سرویس استفاده می کنیم. ما فقط می خواهیم به محتوای برنامه دسترسی داشته باشیم.
با استفاده از سناریوی نتفلیکس، مسئولیت ها به صورت زیر است:
مسئولیت نتفلیکس
- تمام زیرساخت ها را حفظ کنید
- برنامه را توسعه دهید
- در دسترس بودن و افزونگی خدمات را حفظ کنید
- نگران امنیت کل سرویس/برنامه باشید
- نگران در دسترس بودن و مقیاس پذیری باشید
مسئولیت کاربر
- از بهترین شیوه ها برای امنیت حساب، مانند رمزهای عبور قوی استفاده کنید
- مطابق با شرایط و مطابقت برنامه
- مراقب مشاهده اطلاعات شخصی در برنامه باشید
برای بستن قیاس Pizza as Service، در مدل PaaS این سناریو زمانی اعمال میشود که ما به پیتزا فروشی میرویم و پیتزای خود را در آنجا میخوریم. اینجا ما نگران چیزی نیستیم، فقط رسیدن به آنجا و مصرف غذا در حالی که پیتزا فروشی همه چیز را برای ما فراهم می کند.
ملاحظات
ایدهها، مفاهیم، مدلها، قیاسهایی که در این پست وبلاگی درباره آنها صحبت میکنیم بسیار مهم هستند و به عنوان نمونههایی به ما نشان میدهند که چگونه مدیریت و مسئولیت مشترک بین افراد/کاربران و ارائهدهندگان ابر/سرویس با هم کار میکنند.
و در پایان، میتوان گفت که رایانش ابری و مدلهای خدمات آن بسیار شبیه به یک پیتزافروشی است، زیرا همیشه انتخابی وجود دارد که در یک موقعیت خاص برای ما کار میکند، چه پختن، چه سفارش پیتزا در یک تحویل. برنامه یا رفتن به پیتزا فروشی و غذا خوردن در آنجا.