Cloud Computing (رایانش ابری) تکنولوژیای است که خواهناخواه در حال استفاده از آن هستیم و جالب است بدانیم که خدمات آنلاین روز به روز بیشتر وابسته به کلود میشوند که با توجه به اهمیت این فناوری، در این پست قصد داریم تا چیستی رایانش ابری را به نحوی توضیح دهیم که هم برای افراد فنی و هم برای کاربران عادی قابلفهم باشد.
رایانش ابری (کلود کامپیوتینگ) چه نیازی را مرتفع ساخته است؟
هر فناوری و سرویسی که با اقبال عمومی مواجه شده باشد مسلماً توانسته به خوبی دست به مرتفع ساختن یکسری نیازهای کلیدی کاربران در دنیای واقعی بزند و کلود هم از این قاعده مستثنی نیست. برای درک بهتر این موضوع، سناریوی فرضی زیر را مد نظر قرار میدهیم تا ببینیم کلود به چه شکل میتواند زندگی متخصصین حوزهٔ انفورماتیک را آسان و البته لذتبخش سازد.
فرض کنیم قرار است یک سرویس E-Learning راهاندازی کنیم که کاربران از آن طریق میتوانند آموزش برنامهنویسی ببینند که از این پس نام این سرویس را سکان آکادمی میگذاریم. همچنین فرض کنیم وظیفهٔ توسعهٔ این سایت بر عهدهٔ شخصی به نام بهزاد گذاشته شده است.
برای شروع کار، وبمستر این سایت اقدام به خرید یک سیستم کامپیوتری کرده تا از آن عنوان به عنوان سرور استفاده کند و در نظر داشته باشیم برای آنکه این سرور زیر بار ریکوئستهای زیاد کم نیاورد، وی اقدام به تهیهٔ بهترین و مدرنترین منابع سختافزاری همچون هارد اساسدی، رَم و سیپییو میکند مضاف بر اینکه با یک شرکت ارائهدهندهٔ خدمات اینترنتی نیز قرارداد میبندد تا برای اینکه سرویساش همواره در دسترس باشد، خدماتی اینترنتی پرسرعت با پهنایباند قابلتوجهی در اختیارش قرار دهند و این در حالی است که هزینهٔ نسبتاً زیادی نیز برای کلیهٔ این خدمات پرداخت کرده است.
قبل از لانچ کردن سایت، نیاز است تا اِستک نرمافزاری LAMP روی این سرور نصب شود و از آنجا که بهزاد تجربهای در این خصوص نداشت، از یک ادمین سیستم درخواست کمک کرد تا نرمافزارهای مورد نیاز را روی سرور نصب کند و از آن پس همه چیز آمادهٔ رونمایی از سایت شد.
این سایت لانچ میشود اما بر خلاف پیشبینیها، تا چند سال اول حتی یکدهم منابع سختافزاری گرانقیمتی که تهیه شده بود + پهنایباند موجود به دلیل نبود مخاطب زیاد بلااستفاده ماند و این مساوی بود با ضرر مالی به علاوه اینکه هر بار مشکلی برای سرور پیش میآمد و یا نیاز به نصب یا آپدیت پکیج خاصی بود، وبمستر این سایت میبایست از یک متخصص این کار برای رفع مشکل کمک میگرفت که این مورد هم هزینهها را بیشتر میکرد.
پس از چند سال که سایت به قول معروف گرفت، نوع دیگری از مشکلات پیش آمد بدین صورت که با ارسال ریکوئستهای زیادی از طرف کاربران، این سایت با کمبود منابع سختافزاری و همچنین پهنایباند روبهرو میشد تا جایی در آنِ واحد نمیتوانست پاسخگوی یک تعداد بیشتر کاربر باشد و الباقی کاربران با ارورهای مختلفی منجمله ارور ۵۰۰ روبهرو میشدند تا اینکه بهزاد تصمیم میگیردد مجدداً هم منابع سختافزاری را ارتقاء دهد و هم پهنایباند بیشتری بخرد. با این ارتقاء مشکل حل شد اما چالش دیگری سر باز کرد و آن هم اینکه وقتی تعداد کاربران فعال سایت به دلایل مختلفی کاهش پیدا میکردند، منابع سختافزاری از یکسو و همچنین پهنایباند خریداریشده از سوی دیگر بیش از پیش بلااستفاده میماند و ضرر به مراتب بیشتری از قبل متوجه این کسبوکار آنلاین میشد.
شرایط این کسبوکار اینترنتی آنقدر وخیم شده بود تا جایی که در مرز ورشکستگی بود تا مشاوری به نام سهند وارد بازی شد که وظیفهاش منتورینگ در حوزهٔ انفورماتیک بود. پس از آنکه بهزاد شرایط نه چندان مطلوب هاستینگ سایت را برای وی ترسیم کرد، مکالمهٔ زیر شکل گرفت:
- سهند: فرض کن یک فناوری درست شده باشه که هر چهقدر از منابع سرور استفاده کنی، همونقدر پول میدی به علاوه اینکه اگر تعداد کاربران به طور ناگهانی به دلیل کمپینهای تبلیغاتی و ... زیاد شد، خودت میتونی بسته به نیاز منابع سختافزاری رو کم و زیاد کنی یا حتی خود اون سرویس هم میتونه به صورت خودکار منابع رو ارتقاء میده به علاوه اینکه آپتایم فوقالعاده بالایی داره، توسط بهترین متخصصین امنیتی ایمن شده و دیگه نگران این نخواهی بود که اگر برق بره یا یوپیاس خراب بشه و ... چه کار باید کنی. از همه مهمتر اینکه دیگه نیازی نیست به یک سیس ادمین پول بدی که کار کانفیگ و مدیریت سرور رو هندل کنه.
- بهزاد: خب اینکه میشه مدینهٔ فاضله. اسمش چیه این فناوری؟
- سهند: کلود کامپیوتینگ که به فارسی بهش میگن رایانش ابری.
چرا از واژهٔ اَبر در نامگذاری این فناوری استفاده شده است؟
معنی لغوی Cloud در زبان فارسی «اَبر» است اما در عین حال معانی دیگری نیز برای این کلمه میتوان در نظر گرفت که از آن جمله میشود به «تودهٔ انبوه» اشاره کرد. برای درک بهتر این موضوع، تصویر زیر را مد نظر قرار میدهیم:
حال در ادامه قصد داریم ببینیم که اگر صدها و یا هزاران پرندهای از این دست در کنار یکدیگر قرار گیرند چگونه به نظر خواهند رسید:
میبینیم وقتی که این پرندگان در کنار یکدیگر قرار میگیرند، از دور شبیه به اَبر هستند و اینجا است که میبینیم معادل «تودهٔ انبوه» که برای واژهٔ انگلیسی Cloud آمده خیلی بیراه نیست. اکنون در ادامه ابتدا تصویر زیر را مد نظر قرار داده سپس دست به مقایسهٔ مابین رایانش ابری و تودهٔ انبوه پرندگان میزنیم:
برای درک بهتر این موضوع، فرض کنیم که هر یک از نقاط سفید رنگ در تصویر فوق یک سرور است که کلیهٔ این سرورها در اقصینقاط دنیا پخش شدهاند و وقتی از نقطهٔ بسیار دوری به مجموعهٔ این سرورها نگاه کنیم، چیزی همچون اَبر در ذهنمان تداعی میشود و این همان دلیل اصلی است که از واژهٔ Cloud برای فناوری مورد بحث در این مقاله استفاده میشود. در همین راستا و در پاسخ به این پرسش که «کلود چیست؟»، با استفاده از یک تعریف کلی میتوان گفت:
رایانش ابری (کلود) نوعی فناوری است که این امکان را به شرکتها، سازمانها، برنامهنویسها و مهمتر از همه کاربران عادی میدهد تا در هر لحظه و از هر جایی که قرار داشته باشند به راحتی به فضایی که دادهها در آن ذخیره شده و یا منابع کامیپوتری مورد نیازشان از جمله سرور، پایگاه داده، نرمافزار، سرویسهای آنالیتیکس و ... به منظور پردازش اطلاعات از طریق اینترنت دسترسی یابند.
همچنین نیاز به توضیح است که این فناوری بسیار انعطافپذیر و مقرونبهصرفه است بدین صورت که فقط و فقط هزینهٔ منابعی که استفاده میکنید را خواهید پرداخت و در برخی مواقع نیز این خدمات به صورت کاملاً رایگان عرضه میشوند.
در تکمیل تعریف مقدماتی فوق، باید گفت که همچون اَبری فرضی که فضای پیرامون ما را احاطه کرده باشد، سرویسهای تحت فناوری کلود دائماً در دسترس ما قرار دارند و مادامی که به اینترنت دسترسی داشته باشیم، دیگر دغدغهای برای دستیابی به اطلاعات خود نخواهم داشت.
آنچه از ماهیت کلود ممکن است برای یک کاربر عادی و غیرفنی گنگ باشد این است که «این چه نوع فناوری است که هم برنامهنویسان و سیس ادمینها میتوانند از آن استفاده کنند و هم کاربران عادی؟» که در جواب به این سؤال باید دست به دو تقسیمبندی کلی در مورد رایانش ابری بزنیم که عبارتند از Deployment Model و Service Model که هر کدام از این دو دستهبندی نیز شامل زیرشاخههایی میشوند که عبارتند از:
- Deployment Model
-- Public Cloud
-- Private Cloud
-- Hybrid Cloud
- Service Model
-- IaaS
-- PaaS
-- SaaS
در ابتدا به بررسی هر یک از سه زیرشاخهٔ Deployment Model میپردازیم که بیشتر با جنبهٔ هاستینگ سروکار دارد.
سرویس کلود عمومی چیست؟
این سرویس که با عنوان Public Cloud شناخته میشود به صورت عمومی در دسترس طیف گستردهای از شرکتها و کاربران قرار دارد که توسط یک به اصطلاح Cloud Service Provider (ارائهدهندهٔ خدمات اَبری) عرضه میشود از جمله شرکتهایی که خدمات کلود عمومی عرضه میکنند میتوان به آمازون، مایکروسافت، گوگل و آیبیام اشاره کرد.
سرویس کلود خصوصی چیست؟
این سرویس که با عنوان Private Cloud شناخته میشود در نقطهٔ مقابل سرویس عمومی قرار دارد بدین شکل که تحت شبکههای اختصاصی و پشت فایرفایلهای شرکتها و سازمان میزبانی میشود و فقط به یک سازمان خاص اختصاص دارد. به عبارتی، وقتی یک سرویس کلود داخل سازمان خود راهاندازی میکنیم که فقط و فقط اعضای سازمان به آن دسترسی دارند و به دلایلی امنیتی و غیره کاملاً محدود شده باشد، ما از یک سرویس کلود خصوصی برخورداریم.
نیاز به توضیح است که سرویس کلود خصوصی هم میتواند شامل قرارگیری سرورها داخل سازمان مذکور باشد و توسط متخصصین همان سازمان مدیریت شود و یا میتواند توسط شرکتهای به اصطلاح Third-party و خارج از سازمان هندل گردد. همچنین لازم به ذکر است که کلود خصوصی به تنهایی هیچوقت نمیتواند آنطور که باید و شاید کاربرد داشته باشد چون به نوعی نسبت به بقیهٔ دنیا ایزوله است و اینجا است که پای سرویس هایبریدی به میان میآید که در ادامه بیشتر در مورد ماهیت این نوع سرویس توضیح خواهیم داد.
سرویس کلود ترکیبی چیست؟
این سرویس که با عنوان Hybrid Cloud شناخته میشود ترکیبی از سرویسهای کلود عمومی و خصوصی است (نیاز به توضیح است که کلمهٔ Hybrid باید به صورت «هایبرید» تلفظ گردد.) به طور مثال، سازمانهای دولتی و امنیتی تمایل دارند تا به دلیل حساسیت دیتایی که دارند از سرویسهای کلود خصوصی استفاده کنند که منحصر به سازمان آنها باشد اما در عین حال از کلود عمومی برای اشتراکگذاری دیتاسِتهای غیرمحرمانه و ... با دیگر سازمانها استفاده میکنند.
برای درک بهتر این موضوع، میتوان سرویسهای سهگانهٔ فوق را به ترتیب به وسائل نقلیهٔ اتوبوس، اتومبیل شخصی و آژانس تشبیه نمود. به عبارتی، اتوبوس (Public Cloud) سرویسی است که در دسترس همگان قرار دارد که به همان میزان خدماتی که میگیرم هم هزینه پرداخت خواهیم کرد. اتومبیل شخصی (Private Cloud) سرویسی است که با هزینهٔ اولیهٔ به نسبت زیادی در اختیار میگیریم اما این در حالی است که کنترل کاملی روی آن داریم. آژانس (Hybrid Cloud) سرویسی است که هم مزیتهای اتوبوس را دارا است و هم مزیتهای منحصربهفرد خودروی شخصی بدین صورت که یک سرویس عمومی است که همه میتوانند از آن استفاده کنند اما مادامی که آن را اجاره میکنیم، کاملاً در اختیار ما خواهد بود.
حال در ادامه به بررسی هر یک از سه زیرشاخهٔ Serivce Model میپردازیم که گاهی تحت عنوان Cloud Computing Stack نیز شناخته میشوند.
زیرساخت به عنوان سرویس چیست؟
Infrastructure as a Service یا به اختصار IaaS پایهایترین نوع از فناوری کلود است که شامل سختافزار، سرور، پایگاه داده، ایمنی و همچنین نگهداری از چنین زیرساختی توسط شرکت ارائهدهندهٔ این سرویس است (سرواژهٔ IaaS باید به صورت «آیاَس» تلفظ شود.) زمانی که سرویس AWS آمازون یا Azure مایکروسافت را خریداری میکنیم که یک IaaS هستند، نیازمند به استخدام نیروی متخصصی هستیم که بتواند سیستم را بسته به نیازهای نرمافزاریمان کانفیگ و مدیریت کند. به عبارتی، در این سرویس ما کنترل کامل روی سرویسی داریم که خریداری کردهایم و قادر خواهیم بود تا هر اِستکی که تمایل داشته باشیم روی آن نصب نماییم که با این تفاسیر میتوان گفت مشتریان IaaS ادمینهای سیستم هستند (برای کسب اطلاعات بیشتر در خصوص این سرویس، به مقالهٔ Infrastructure as a Service یا به اختصار IaaS چیست؟ مراجعه نمایید.)
پلتفرم به عنوان سرویس چیست؟
Platform as a Service یا به اختصار PaaS از بُعد فنی در لایهٔ دوم فناوری کلود قرار میگیرد و عبارت است از سرویسی که این امکان را به کاربر (توسعهدهنده) میدهد تا با کمترین دردسر ممکن بتواند دست به توسعه، اجرا و مدیریت اپلیکیشنهای خود بزند بدون آنکه نگران مباحث زیرساختی همچون آپدیت کردن سرور، نگهداری از اِستکهای نرمافزاری و ... گردد (برای کسب اطلاعات بیشتر در خصوص این سرویس، به مقالهٔ Platform as a Service یا به اختصار PaaS چیست؟ مراجعه نمایید.)
به طور کلی میتوان گفت که مشتریان PaaS برنامهنویسان، طراحان سایت و دولوپرها هستند (البته نیاز به توضیح است که علاوه بر PaaS ،IaaS و SaaS برخی زیرشاخهٔ دیگری به دستهبندی سرویسهای کلود از بُعد Serivce Model اضافه میکنند تحت عنوان Serverless و برخی هم این اِستک چیزی مترادف PaaS در نظر میگیرند که برای کسب اطلاعات بیشتر میتوانید به مقالهٔ Serverless چیست؟ مراجعه نمایید.)
نرمافزار به عنوان سرویس چیست؟
Software as a Service یا به اختصار SaaS تکنولوژیای است که میتوان برچسب رایجترین نوع کلود را روی آن زد به طوری که کاربران صرفاً با استفاده از نرمافزاری همچون مرورگر گوگل کروم یا فایرفاکس میتوانند به نرمافزاری تحت وب (وب اپلیکیشن) دست یافته و نیاز خود را مرتفع سازند. سرویسهایی از این دست اصطلاحاً Ready-to-Use (سهلالاستفاده) هستند و نیاز به توضیح نیست که مشتریان SaaS کاربران معمولی هستند و از جمله سرویسهای کلود این حوزه میتوان به جیمیل، دراپباکس و نتفلیکس اشاره کرد (برای کسب اطلاعات بیشتر در خصوص این سرویس، به مقالهٔ Software as a Service یا به اختصار SaaS چیست؟ مراجعه نمایید.)
روی هم رفته، چنانچه بخواهیم آنچه در مورد Service Model گفتیم را خلاصه کنیم، با جدول زیر مواجه خواهیم شد:
IaaS | PaaS | SaaS |
Application | Application | ✓Application |
Data | Data | ✓Data |
Runtime | ✓Runtime | ✓Runtime |
Middleware | ✓Middleware | ✓Middleware |
OS | ✓OS | ✓OS |
✓Virtualization | ✓Virtualization | ✓Virtualization |
✓Server | ✓Server | ✓Server |
✓Storage | ✓Storage | ✓Storage |
✓Networking | ✓Networking | ✓Networking |
در این جدول آنچه ممکن است کمی گنگ باشد، مفهوم Middleware است که در ادامه سعی میکنیم به طور خلاصه آن را توضیح دهیم. روی سرور یک سیستمعامل همچون لینوکس نصب میشود سپس اپلیکیشن ما روی آن سیستمعامل قرار میگیرد. حال نرمافزاری همچون وبسرور وجود دارد که مابین سیستمعامل و اپلیکیشن قرار دارد که اصطلاحاً به آن Middleware گفته میشود.
در تفسیر جدول فوق میتوان گفت که در بستر IaaS چیزهایی همچون Server ،Storage ،Networking و Virtualization توسط شرکت ارائهدهندهٔ خدمات رایانش ابری هندل میشود و الباقی مسائل همچون مدیریت و پیکربرندی Data ،Runtime ،Middleware ،OS و Application بر عهدهٔ ادمین سیستم است. سرویس PaaS تا حدودی سهلالاستفادهتر است چرا که مباحث مرتبط با Middleware ،OS و Runtime نیز توسط شرکت مذکور حاضر و آماده در اختیار برنامهنویسان قرار میگیرند و همانطور که میبینیم، در لایهٔ SaaS همه چیز از مباحث مرتبط با شبکه گرفته تا آخرین لایه که اپلیکیشن میشود توسط شرکت نرمافزاری مدیریت شده و مخاطبین این سرویس، که کاربران عادی هستند، خواه به صورت رایگان و خواه با پرداخت حق اشتراک، اقدام به استفاده از این سرویسها میکنند.
اگر بخواهیم یک مثال از دنیای واقعی بزنیم و سناریویی که در ابتدای این مقاله تشریح کردیم را بسط دهیم، میتوان گفت که سکان آکادمی خود از خدمات PaaS استفاده میکند و کاربری که در حال مطالعهٔ این مقاله است و یا از دیگر سرویسهای این سایت استفاده مینماید، در حال استفاده از یک سرویس SaaS میباشد.
گرچه بسیاری از سرویسهای رایانش ابری از طریق یک داشبورد کاربرپسند و با استفاده از یک مرورگر در دسترس کاربران از هر قشری قرار میگیرند، اما برخی سرویسهای کلود هم هستند که برای استفاده از آنها باید از کامندلاین یا ایپیآی استفاده نمود که برای کسب اطلاعات بیشتر در این خصوص، توصیه میکنیم به آموزش API چیست؟ مراجعه نمایید.
مزایای کلود چیست؟
همانطور که در مکالمهٔ فرض فوق دیدیم، با عرضهٔ سرویسهای کلود به کسبوکارهای اینترنتی همچون فروشگاههای آنلاین، فورومها، وبلاگها و غیره، تمامی مسائل و مشکلات مرتبط با زیرساخت و هاستیگ به یک باره حل شد تا جایی که دولوپرها، وبمسترها و مدیران سایتها صرفاً تمرکز خود را روی توسعهٔ اپلیکشن گذاشته و کلیهٔ کارهای مدیریت سرور را به شرکتهای ارائهدهندهٔ خدمات کلود واگذار میکنند. چنانچه بخواهیم مزایای کلود را برشمریم، برخی از مهمترین فوایدش عبارتند از:
- راهاندازی سریع زیرساخت
- عدم نیاز به استخدام نیروی متخصص برای مدیریت سرور
- امنیت بالای فضای هاستیگ به دلیل بهرهمندی شرکتهای ارائهدهندهٔ خدمات اَبری از بهترین متخصصین
- پرداخت هزینه به میزان مصرف از منابع سختافزاری همچون هارددیسک، رَم، سیپییو و پهنایباند (Pay-As-You-Go)
- اطمینان حاصل کردن از در دسترس بودن سایت در ٪۹۹/۹ مواقع
- تغییر کانفیگ و ارتقاء سرور صرفاً با چند کلیک!
شرکتهای ارائهدهندهٔ خدمات کلود
بدون اغراق میتوان گفت بازیگران اصلی صنعت رایانش ابری در دنیا به تعداد انگشتان دو دست هم نمیرسد. با تعریف جامعی که از کلود در ابتدای مقاله داشتیم، اگر منظورمان از کلود سرویسی برای ذخیرهسازی دیتای شخصی در فضایی باشد که همواره از طریق اینترنت در دسترس باشد، میتوان به سرویسهای مطرح زیر اشاره کرد (نیاز به توضیح است که ترتیب لیست زیر اصلاً به معنی برتری یک سرویس نسبت به دیگری نیست):
- Dropbox: این سرویس ۲ گیگابایت فضای ذخیرهسازی ابری رایگان در اختیار کاربران قرار میدهد.
- Amazon Drive: این سرویس ۵ گیگابایت فضای ذخیرهسازی ابری رایگان در اختیار کاربران قرار میدهد.
- OneDrive: این سرویس ۵ گیگابایت فضای ذخیرهسازی ابری رایگان در اختیار کاربران قرار میدهد.
- iCloud: این سرویس ۵ گیگابایت فضای ذخیرهسازی ابری رایگان در اختیار کاربران قرار میدهد.
- Box: این سرویس ۱۰ گیگابایت فضای ذخیرهسازی ابری رایگان در اختیار کاربران قرار میدهد.
- Google Drive: این سرویس ۱۵ گیگابایت فضای ذخیرهسازی ابری رایگان در اختیار کاربران قرار میدهد و این در حالی است که اگر یک اکانت جیمیل داشته باشید، به صورت پیشفرض مشتری گوگل درایو هستید.
حال چنانچه منظور از کلود زیرساختی برای توسعهٔ اپلیکیشن باشد (IaaS و PaaS)، میتوان به سرویسهای زیر اشاره کرد (نیاز به توضیح است که ترتیب لیست زیر اصلاً به معنی برتری یک سرویس نسبت به دیگری نیست):
- Microsoft Azure
- Google Cloud Platform
- IBM Cloud
- Amazon Web Services
- DigitalOcean
جمعبندی
به طور کلی، در عصر فناوری هر کاربری که با اینترنت سروکار داشته باشد به نوعی در حال استفاده از خدمات رایانش ابری (کلود کامپیوتینگ) است اما همانطور که پیش از این گفته شد، سرویسهای اَبری مزایای منحصربهفردی برای برنامهنویسان و توسعهدهندگان به ارمغان آوردهاند به طوری علاوه بر کاهش هزینههای زیرساخت، این امکان در اختیار ایشان قرار گرفته تا صرفاً تمرکز خود را روی توسعهٔ نرمافزار معطوف نموده و الباقی عملیات مدیریت سرور را به کارشناسان شرکتهای ارائهدهندهٔ خدمات اَبری واگذار نمایند.