آموزش شبکه: معرفی پردازش ابری یا Cloud Computing و SaaS و PaaS و IaaS چیست؟
رایانش ابری یا Cloud Computing چیست؟ با توجه به گسترش روزافزون استفاده از سرویس های ابری، لازم دانستیم در این مقاله به صورت مفصل به بحث رایانش ابری یا Cloud Computing بپردازیم ، همراه ما باشید.
بر اساس آماری که IDC منتشر کرده است، در سال 2017 بیش از یک سوم هزینههای IT که در دنیا انجام میشود، برای ساخت زیرساختی است که از رایانش ابری Cloud Computing پشتیبانی میکند. این درحالیست که همچنان زیرساخت سنتی و In-House IT، به سمت کلود پیش میروند. هم اکنون نیمی از کل انترپرایزها از کلود استفاده میکنند که بر اساس پیشبینی Analyst Gartner تا سال 2021، همگی آنها از کلود استفاده خواهند کرد.
«رایانش ابری» از ترکیب دو کلمه رایانش و ابر ایجاد شدهاست. ابر در اینجا استعاره از شبکه یا شبکهای از شبکههای وسیع مانند اینترنت است که کاربر معمولی از پشت صحنه و آنچه در پی آن اتفاق میافتد اطلاع دقیقی ندارد (مانند داخل ابر) در نمودارهای شبکههای رایانهای نیز از شکل ابر برای نشان دادن شبکهٔ اینترنت استفاده میشود.
دلیل تشبیه اینترنت به ابر در این است که اینترنت همچون ابر جزئیات فنیاش را از دید کاربران پنهان میسازد و لایهای از انتزاع را بین این جزئیات فنی و کاربران به وجود میآورد. به عنوان مثال آنچه یک ارائهدهندهٔ خدمات نرمافزاری رایانش ابری ارائه میکند، برنامههای کاربردی تجاری آنلاین است که از طریق مرورگر وب یا نرمافزارهای دیگر به کاربران ارائه میشود.
نرمافزارهای کاربردی و اطلاعات، روی سرورها ذخیره میگردند و براساس تقاضا در اختیار کاربران قرار میگیرد. جزئیات از دید کاربر مخفی میمانند و کاربران نیازی به آشنایی یا کنترل در مورد فناوری زیرساخت ابری که از آن استفاده میکنند ندارند.
رایانش ترجمه کلمه ”Computing” است که در بعضی متون به جای رایانش از محاسبات و پردازش استفاده شده است. البته محاسبات و پردازش معادل کاملی از این کلمه نیست.
زیرا بر اساس تعریف واژهنامههای معتبر مانند آکسفورد، لانگمن این واژه به معنای استفاده از رایانه و عملیات رایانهها یا اموری است که یک رایانه انجام میدهد و محاسبه و پردازش تنها یکی از این امور است. بهطور نمونه یک رایانه همانطور که برای اجرای فرامین به محاسبه و پردازش میپردازد، به همین ترتیب مدارک و فایلها را در هارد دیسک یا صفحه سخت خود ذخیره میکند، امکان ایجاد ارتباط میان افراد را فراهم میآورد که این امور چیزی بیش از یک محاسبه و پردازش صرف است.
به علاوه در معنای علوم رایانه معادلهای دیگری برای کلمات «محاسبه» و «پردازش» وجود دارند، مانند” calculation” و” processing ”، که عدم تمایز این کلمات با یکدیگر میتواند منشأ اشتباه در درک این مفاهیم شود.
رایانش ابری راهکارهایی برای ارائهٔ خدمات فناوری اطلاعات به شیوههای مشابه با صنایع همگانی (آب، برق، تلفن و …) پیشنهاد میکند. این بدین معنی است که دسترسی به منابع فناوری اطلاعات در زمان تقاضا و بر اساس میزان تقاضای کاربر به گونهای انعطافپذیر و مقیاسپذیر از راه اینترنت به کاربر تحویل داده میشود. همانطور که کاربر تنها هزینه برق یا آب مصرفی خود را میپردازد. در صورت استفاده از رایانش ابری Cloud Computing نیز کاربر تنها هزینه خدمات رایانشی مورد استفاده خود (اگر هزینه از کاربر دریافت شود) را پرداخت خواهد کرد که در اصطلاح به این مدل محاسبه هزینه، pay as you go گفته می شود.
تاریخچه پیدایش رایانش ابری Cloud Computing
رایانش ابری در سال 1960 مفهوم پیدا کرد. یکی از اعضای بنیانگذاران هوش مصنوعی به نام پروفسور جان مک کارتی در پیش بینی خود در مورد رایانش ابری Cloud Computing چنین بیان کرد “رایانش ابری روزی به عنوان یک صنت همگانی سازماندهی خواهد شد.”
در سال نیز 1966 پارک هیل داگلاس در کتابی با عنوان “مشکل صنعت همگانی رایانه” به مواردی مانند توهم دسترسی نامحدود ،تدارک الاستیک، ارائه امکانات به صورت صنعت همگانی به مراکز خصوصی و دولتی و انجمنی اشاره کرد.
اما واژه هایی که در دهه ی 1960 استفاده شد هیچ کدام مفهوم امروزی ابر را نداشت و به صورت لفظی از آن به عنوان صنعت همگانی استفاده می شد.
در سال 1969 ایده شبکه کهکشانی یا شبکه بین کهکشانی که امروزه آن را اینترنت می نامیم توسط J.C.R.Licklider مطرح شد و مدتی بعد موسسه تحقیقات امریکا شبکه ARPANET را توسعه بخشید و فعال کرد تا هر شخصی بتواند به برنامه ها و اطلاعات از سراسر این شبکه دسترسی داشته باشد.
در دهه 1970 نرم افزار های مجازی سازی مانند VMware معرفی شدند و توانستد چندین سیستم عامل را در یک سیستم عامل میزبان قرار بدهند و هریک را به صورت جداگانه سرویس دهی کنند.
اولین تعریف شناخته شده از رایانش ابری در سال 1997 توسط پروفسور رامناث چلاپا (Ramnath Chellappa) در دالاس شکل گرفت. او در سخنرانی خود چنین بیان کرد :”یک نمونه محاسباتی در جایی که حداکثر توان محاسباتی قرار دارند به زودی از مرز های اقتصادی گذشته و به تنهایی قادر به محاسبات نخواهد بود و باید از محدودیت های فنی گذر کرد.”
به بیان ساده تر می توان گفت منظور از صحبت وی پردازش هایی است که امروزه در برخی از نرم افزار ها و سرویس ها از عهده ی یک سرور خارج بوده و چون مرز توانایی پردازنده ها بیشتر نیست باید چندین سرور در کنار هم سرویس هارا پردازش کنند.
در اواخر دهه 1990 شرکت Salesforce.com فعالیت خود را در حوزه ی تبدیل اپلیکیشن های جامع و کاربردی سازمان ها به صورت وب آغاز کرد. فعالیت این شرکت شروعی بود تا سازمان ها بتوانند محوریت فعالیت خود را با یک نرم افزار و به صورت یکپارچه روی یک بستر (اینترنت) انجام دهند.
می توان گفت دهه 2000 اوج شکوفایی تکنولوژی Cloud Computing بود. در سال 2003 شرکت Xen نرم افزار Virtual Machine Manitor را توسعه بخشید. این سیستم اجازه می داد تا تعداد زیادی سیستم عامل مهمان روی چندین سرور قرار بگیرند و از منابع سرور ها به صورت اشتراکی استفاده نمایند.
به این ترتیب بود که ایده cloud computing ایجاد شد و به دنبال آن تکنولوژی cloud computing نیز شکل گرفت.
SaaS و PaaS و IaaS چه تفاوتی باهم دارد؟
IaaS یا زیرساخت به عنوان سرویس چیست؟
Infrastructure as a Service به صورت مخفف IaaS به معنای لغوی زیرساخت به عنوان سرویس شناخته می شود. زیر ساخت به عنوان یک سرویس (IaaS) یک زیرساخت ضروری رایانش است که در محیط مجازی اینترنت ارائه و مدیریت شده است. مقیاس انعطاف پذیری دارد و به سرعت برای نیازهای زیاد و کم انطباقپذیر است همچنین پرداخت به اندازه آنچه استفاده میشود صورت میگیرد.
IaaS به شما کمک میکند از هزینه و پیچیدگی خرید و مدیریت سرورهای فیزیکی خود و دیگر زیرساختهای مرکز داده (دیتا سنتر) جلوگیری کنید. هر منبع به عنوان یک جزء خدمت جداگانه ارائه میشود و فقط لازم است شما تا زمانی که به آن نیاز دارید، یک منبع خاص را اجاره کنید. ارائه دهنده سرویس رایانش ابری ( Cloud Computing ) در حین اینکه شما نرم افزارهای خود (سیستم عاملها و برنامههای کاربری) خریداری، نصب، پیکربندی و مدیریت میکنید، زیرساخت را ساماندهی و مدیریت میکند.
به عنوان یک مدلی از سرویس زیرساخت های رایانه ای برای حمایت از عملیات سازمانی و به عنوان مبنایی برای سیاستهای خدمات سازمانی ارائه می شود و در این مدل به طور معمول (IaaS) ، به ارائه سیاست های سخت افزاری ، فضاهای ذخیره سازی (storage ) ، سرور ها servers و فضاهای مراکز داده (data center) تحت شبکه های کامپیوتری پرداخته می شود که مرتبط با عملکرد و مدیریت تجهیزات مورد ارائه به یک کلاینت است و هزینه های مرتبط با این نگرش برای کلاینتها معمولا بر اساس استفاده آنها از ابزار هایی که شبکه در اختیارشان گذاشته است محاسبه می شود.
البته در بعضی موارد شامل نرم افزار ها نیز میشود، از عبارت IaaS به عنوان (HaaS) که مخفف کلمات Hardware as a Service می باشد نیز یاد میشود که باز به همان مفهوم است و در اصل فرقی نمی کند. IaaS شامل ویژگی های دیگری همانند : مدیریت خودکار وضایف پلتفورم های مجازی سازی مرتبط با اینترنت و همچنین به عنوان یکی از سه دسته اصلی خدمات Cloud Computing شرح داده شده است که در این زمینه به تشریح مفاهیم ( Software as a Service ( SaaS و همچنین (PaaS) مخفف کلمات Platform as a Service می پردازد.
مزایای IaaS
سرعت بالا در نوآوری: به محض اینکه تصمیم بگیرید یک محصول یا ابتکار جدید را راه اندازی کنید، زیرساخت رایانشی لازم را می توانید در چند دقیقه یا چند ساعت، به جای روزها یا هفتهها و گاهی چند ماه، آماده کنید.
تداوم کسب و کار و از بروز خطر جلوگیری میکند: رسیدن به قابلیت دسترسی بالا، تداوم کسب و کار و جلوگیری از بروز خطر هزینه زیادی را به دنبال دارد زیرا نیازمند تکنولوژی و کارکنان زیادی است. اما IaaS میتواند با بکاربردن سطحی مناسبی از سرویسها در موقعیت درست (SLA)، این هزینه ها را کاهش دهد و به برنامهها و دادهها در حین بروز مشکل یا قطع شدن دسترسی پیدا کند.
هزینه سرمایه گذاری از را بین میبرد و هزینههای فعلی را کاهش میدهد: IaaS هزینههای پیشرو برای راهاندازی و مدیریت یک مرکز داده سایت را از بین میبرد، و این یک گزینه مقرون به صرفه برای استارتآپها، کسب و کار و تست ایدههای جدید است.
بر روی کسب و کار خود تمرکز کنید: IaaS باعث میشود که اعضای تیم به جای تمرکز بر زیرساختهای IT بر کسب و کار اصلی سازمان تمرکز کنند.
ثبات، قابلیت اطمینان و پشتیبانی را افزایش میدهد: با IaaS نیازی به تعمیر و نگهداری، ارتقاء نرم افزار و سخت افزار و یا رفع مشکلات تجهیزات نیست. با بهکار بردن منابع مناسب در زمان مناسب، ارائهدهنده خدمات اطمینان میدهد که زیرساخت شما قابل اعتماد است.
سریعتر به تغییر شرایط کسب و کار پاسخ میدهد: IaaS شما را قادر میسازد به سرعت منابع خود را افزایش دهید تا هنگام افزایش نیاز برای برنامههای کاربردی خود (مثلاً در تعطیلات و همزمان با بالا رفتن تقاضا) آماده باشید سپس مجدداً زمانی که نیازها کاهش مییابد، مقیاس منابع به منظور صرفهجویی در هزینهها کاهش می یابد.
امنیت بیشتری را ایجاد میکند: ارائه دهنده خدمات Cloud میتواند امنیت برنامهها و دادههای شما را فراهم کند
برنامههای جدید سریعتر در اختیار کاربران قرار میگیرد: از آنجا که لازم نیست ابتدا زیرساخت را قبل از اینکه بتوانید برنامه ها را توسعه و ارائه دهید، تنظیم و راهاندازی کنید، میتوانید آنها را سریعتر با IaaS دریافت کنید.
PaaS یا پلتفرم به عنوان سرویس چیست؟
PaaS به معنی پلتفرم به عنوان سرویس مختصر شده Platform as a service است. برنامه نویسان نرم افزار، برنامه نویسان وب و توسعه دهندگان کسب و کار می تواند از PaaS یا Platform as a service بهره مند شوند. توسعه دهندگان نرم افزار در هر حال از سرویس PaaS بهره مند خواهند شد، ممکن است این بهره وری در ایجاد نرم افزاری باشد که قصد دارد آن را از طریق اینترنت ارائه دهد و یا ممکن است فروش یک نرم افزار خاص باشد. برای مثال توسعه دهندگان وب می توانند از محیط PaaS یا Platform as a service به صورت انفرادی و در هر مرحله از فرآیند توسعه ، تست و در نهایت میزبانی وب سایت خود استفاده کنند. با این حال ، کسب و کار هایی که در حال توسعه نرم افزار داخلی خود هستند نیز می تواند از PaaS بهره مند شوند.
پلتفرم به عنوان یک سرویس (PaaS) یک محیط رشد و توسعه کامل در رایانش ابری است با منابعی که شما را قادر میسازد همه چیز را از برنامههای کاربردی ساده Cloud به برنامههای کاربردی سازمانی که پیچده تر هستند، تحویل دهید. شما منابع مورد نیاز از یک سرویس ارائه دهنده Cloud را بر اساس پرداختی که انجام میدهید خریداری میکنید و از طریق یک اتصال ایمن اینترنت به آنها دسترسی دارید.
مانند IaaS، PaaS شامل زیرساختهایی مانند: سرورها، ذخایر و شبکه میشود که علاوه بر آن شامل نرمافزارهای ارتباطی، ابزارهای توسعه، خدمات هوش تجاری (BI)، سیستمهای مدیریت پایگاه داده و… نیز میشود. PaaS برای پشتیبانی از یک چرخه حیات کامل برنامههای کاربردی وب طراحی شده است این چرخه عبارت سات از: ساخت، آزمایش، رشد و توسعه، مدیریت و بهروزرسانی.
PaaS به شما این امکان را میدهد که هزینه و پیچیدگی خرید و مدیریت لایسنس نرمافزارها، زیرساخت برنامههای کاربردی بنیادی، نرمافزارهای ارتباطی، ابزارهای توسعه و سایر منابع را از بین ببرید. شما برنامههای کاربردی و خدماتی را که توسعه میدهید، مدیریت می نید و ارائه دهنده سرویس Cloud به طور معمول سایر چیزها را مدیریت می کند.
سرویسهای PaaS چه کاربردهایی دارند؟
همانطور که تصویر فوق ملاحظه میکنید، پس از IaaS، سرویسهای کلود PaaS در لایهٔ دوم سرویسهای کلود قرار میگیرند که شامل زیرساخت شبکه، سرور، سیستمعامل، دیتابیس، میدلوِر (وبسرور) و سایر ابزارهای مرتبط با توسعهٔ نرمافزار است که به نوعی میتوان گفت مشتری «پلتفرم به عنوان سرویس» برنامهنویسان و دولوپرهای وب اپلیکیشن هستند که این امکان برای ایشان فراهم شده تا بدون درگیر کردن خود با مباحث مربوط به زیرساخت، تمرکز خود را روی توسعهٔ اپلیکیشن بگذارند و الباقی کارها را به شرکت ارائهدهندهٔ خدمات ابری واگذار نمایند. علاوه بر این، PaaS مزایای دیگری هم دارا است که در ادامه برخی از مهمترین آنها را مرور خواهیم کرد.
محیط توسعهٔ آماده: همانطور که پیش از این گفتیم، «پلتفرم به عنوان سرویس» همه چیز را به صورت حاضر و آماده در اختیار کاربر میگذارد تا بدون نیاز به آمادهسازی محیط توسعهٔ نرمافزار، صرفاً روی کدنویسی اپلیکیشن و دیپلوی آن روی سرور تمرکز کند.
آنالیتیکس: علاوه بر آنکه PaaS یک محیط توسعه در اختیار دولوپرها میگذارد، بسته به شرکتی که خدمات ابری از آن خریداری میکنیم، یکسری ابزارهای تکمیلی همچون ابزارهای آنالیز داده، هوش تجاری (BI)، ابزارهای داده کاوی و … در اختیار کاربران قرار میگیرد.
مزایای PaaS چیست؟
سرویس PaaS تمامی مزایای IaaS را دارا است مضاف بر اینکه یکسری ابزارهای تکمیلی نیز در اختیار برنامهنویسها میگذارد تا کار ایشان را تسهیل کند که در ادامه به برخی از مهمترین مزایای «پلتفرم به عنوان سرویس» اشاره خواهیم کرد.
عدم نیاز به مدیریت سرور: با توجه به اینکه PaaS در لایهٔ دوم سرویسهای ابری عرضه میشود و به نوعی روی سرویس IaaS پیادهسازی شده است، این امکان را در اختیار دولوپرها میگذارد تا هیچگونه دغدغهای برای مدیریت سرور نداشته باشند و تمام تمرکز خود را روی کدنویسی بگذارند.
عدم نیاز به استخدام متخصص هاستینگ: با توجه به اینکه بخش اعظمی از کار توسط متخصصین شرکتهای ارائهدهندهٔ خدمات رایانش ابری انجام میشود، کسبوکارهایی که از PaaS استفاده میکنند دیگر نیازی به استخدام نیروی فنی (سیس ادمین) برای مدیریت سرور و کارهایی از این دست نخواهند داشت.
صرفهجویی در هزینهها: با توجه به ماهیت سرویسهای ابری، کسبوکارهای نوپا یا استارتاپهایی که توان خرید سرورهای فیزیکی ندارند، به سادگی از عهدهٔ اجازهٔ سرورهای تحت کلود بر خواهند آمد چرا مدل پرداختی در این سرویسها اصطلاحاً Pay-As-You-Go است بدان معنا که به هر میزان که از منابع سرور استفاده کنند، به همان میزان پول پرداخت خواهند کرد.
SaaS یا نرم افزار به عنوان سرویس چیست؟
SaaS یکی از آشناترین واژه ها در مفهوم Cloud است که خود SaaS مخفف Software as a Service به معنای لغوی یعنی نرم افزار به عنوان سرویس است. SaaS راهکاری است که شیوه ذخیره و دسترسی به نرم افزارها را تغییر می دهد. به طور سنتی نرم افزارهای مورد استفاده روی همان کامپیوتری نصب و اجرا می شوند که قرار است در آنجا مورد استفاده قرار گیرند. در حالی که SaaS این شیوه را با میزبانی نرم افزارها روی یک سرور از راه دور تغییر می دهد. در نتیجه این نرم افزارهای کاربردی و خدمات بوسیله یک کاربر از راه دور و با استفاده از اینترنت قابل دسترسی خواهند بود.
یک مثال ساده از خدمت نرم افزاری: افراد بیشتر از آنکه فکر کنند از SaaS استفاده کرده اند. یکی از بیشترین کاربری های SaaS ارائه خدمات ایمیل بر پایه وب است مانند مایکروسافت، هات میل، جی میل، یاهو و بسیاری دیگر. این خدمات دهنده های بر پایه وب مثال خوبی از حقیقت SaaS هستند. ارائه دهندگان سرویس های تحت وب ایمیل وظیفه میزبانی تمام نرم افزارها، اطلاعات و داده هایی که با خدماتشان مرتبط هستند را به عهده دارند به عنوان مثال دسترسی به صندوق ایمیل ذخیره شده در پایگاه داده ایی کیلومترها دورتر از کاربر. در نتیجه مصرف کننده می تواند از راه دور به این خدمات ایمیل و داده های مرتبط با آن با استفاده از اینترنت و یک مرورگر عادی دسترسی داشته باشد.
برای جمع بندی آنچه گفته شد در ذیل چند نکته اولیه و عمومی برای تمام انواع استفاده از SaaS ذکر می شود:
- نرم افزارها یا خدمات در نقطه ایی غیر از نقطه کاربری ذخیره شده اند.
- کاربر می تواند به این خدمات یا نرم افزارها از هر جایی با استفاده از اینترنت دسترسی پیدا کند.
- در بسیاری از موارد کاربر مجبور نیست که هیچ چیزی روی سیستم خود نصب کند و تمام آنچه که لازم دارد یک مرورگر وب است تا از طریق آن به این خدمات دسترسی پیدا کند. ( اگرچه در برخی موارد خود مرورگر وب ممکن است یک پلاگین اضافه برای سرویس های خاص لازم داشته باشد).
این سه مفهوم ساده برای تمام مصارف SaaS چه تجاری و چه شخصی عمومی هستند.
مزایای اصلی SaaS برای تولید کنندگان نرم افزار
درآمد پیوسته و سود بیشتر: SaaS به تولید کنندگان نرم افزار اجازه داده است تا بیشتر از هر شرایط دیگری سود داشته باشند. به طور سنتی یک مشتری نرم افزار را به همراه تعدادی لایسنس که مورد نیاز وی است خریداری می کند و پس از آن این هیچ سود دیگری برای شرکت تولید کننده وجود ندارد. ممکن است تولید کننده نرم افزار بتواند پس از خرید اولیه مبالغ بسیار ناچیز دیگری را از طریق فروش اضافات دیگری روی همان نرم افزار کسب کند. SaaS به تولید کنندگان نرم افزار اجازه می دهد تا به یک جریان پیوسته از درآمد تحت عنوان اشتراک دستیابی پیدا کنند. در نگاه دراز مدت به این معنی است که تولید کنندۀ نرم افزار قادر خواهد بود تا بسیار بیشتر از آن چیزی که در گذشته برای آنها امکان پذیر بود درآمد کسب کند.
کاهش در سرقت نرم افزار و نرم افزارهای لایسنس نشده: با حفظ کردن مالکیت یک نرم افزار در اختیار خود تولید کنندگان نرم افزار میتوانند از کاهش سرقت نرم افزار و یا کپی های لایسنس نشده آن سود ببرند.
مزایای اصلی SaaS برای استفاده کنندگان از نرم افزار
هزینه های پایین تر: اگر کاربری تنها نیاز داشته باشد که از یک نرم افزار برای مدت یک ماه استفاده کند برای وی پول دور ریختن محسوب خواهد شد که آن نرم افزار را به صورت سنتی خریداری کند. (خصوصاً برای نرم افزارهای گران قیمت مانند ویرایشگران ویدیو یا گرافیک و از این دست). با استفاده از راهکارهای نرم افزاری SaaS ، مصرف کننده میتواند مبلغ زیادی را از همین طریق صرفه جویی کند. تمام آنچه باید انجام دهد این است که یک حق اشتراک برای یک ماه یا برای زمانی که قرار است از آن نرم افزار استفاده کند را به شرکت ارائه دهنده آن بپردازد. این یک راهکار بسیار موثر برای کاهش هزینه کاربرانی است که ممکن است از یک نرم افزار مشخص در مواردی نادر استفاده کنند.
کاهش نیاز به تجهیزات ذخیره سازی: برخی نرم افزار ها ممکن است حجم زیادی از فضای هارد درایو را اشغال کنند یا به خود اختصاص دهند. با استفاده از راهکار نرم افزاری SaaS مشتریان می توانند میزان زیادی از فضای هارد درایو خود را ذخیره کنند و در یک دیدگاه بلند مدت عملاً این هزینه را صرفه جوئی نمایند. همچنین کاربران لازم نیست که دربارۀ پشتیبان گیری دائمی از اطلاعات نرم افزار نگران باشند چرا که این کار توسط تولید کنندگان SaaS به شکل روتین و دائمی در حال انجام است.