همه چیز درباره رایانش ابری یا Cloud Computing
قبل از معرفی خدماتی تحت عنوان رایانش ابری، شرکتهای مختلف مجبور به خریداری یک سرور و مدیریت کامل آن را داشتند. خرید سرور و مدیریت آن یک بحث بود و تامین امنیت، پایداری، فضای نگهداری و نیروی انسانی نیز مشکلاتی بودند که شرکتها باید برای ان هزینه میکردند. با معرفی مفهوم و خدماتی به نام رایانش ابری، بسیاری از مشکلات مدیریت زیرساخت در دنیا حل شد و هزینههای نهایی شرکتهای مختلف نیز تا حد زیادی کاهش پیدا کرد. رایانش ابری یا Cloud Computing باعث ایجاد یک انقلاب بزرگ در صنعت هاستینگ و مدیریت سرورها و ورود این صنعت به عصر جدیدی شد که امکان توسعه نرم افزارها و خدمات زیادی را در سرتاسر جهان فراهم کرد.
در ادامه این مقاله از وبلاگ سبزلرن، هرچیزی که به عنوان یک توسعه دهنده و حتی یک کاربر عادی درباره رایانش ابری باید بدانید را برای شما توضیح دادهایم؛ مواردی نظیر رایانش ابری چیست؟ چرا به وجود آمد؟ چه انواعی دارد و چطور کار میکند.
رایانش ابری یا Cloud Computing چیست؟
در روشهای سنتی، شرکتها برای تهیه منابع محاسباتی موردنیاز خود، مجبور به خرید سرورها و تجهیزات آن بودند که باید در فضایی مناسب با اتصال دائم به برق و اینترنت و البته سیستم تهویه هوای قدرتمند قرار میگرفت. این کار بسیار هزینه بر و نیازمند استخدام نیروهای متخصص بود و مشکلاتی مانند قطعی برق یا اینترنت، عملکرد شبکه را مختل میکرد. همچنین افزایش منابع محاسباتی مستلزم خرید سرورهای جدید و طی فرآیند پیچیده ای برای افزودن آنها به شبکه یا جایگزینی قطعات معیوب بود.
Cloud Computing یا رایانش ابری، نوعی ارائه سرویسهای محاسباتی است که امکان دسترسی کاربران به منابع محاسباتی مختلف نظیر سرور، فضای ذخیره سازی، دیتابیسها، شبکهها، ابزارهای تجزیه و تحلیل و نرم افزارها را تنها با اتصال به اینترنت امکان پذیر میکند. در این حالت، کاربر تنها با اتصال دستگاه خود به اینترنت و ورود به حساب کاربری خود در شرکت ارائه دهنده خدمات رایانش ابری، میتواند از این خدمات استفاده کند؛ در نتیجه برای دسترسی به این منابع محاسباتی، نیازی به تهیه و مدیریت زیرساختها نیست.
در رایانش ابری، هزاران سرور در سرتاسر جهان و موقعیتهای مکانی مختلف مورداستفاده قرار گرفته و شبکه بزرگی از سرورها را فراهم کردهاند. این کار علاوه بر ارسال و دریافت دادهها در نزدیک ترین سرور به کاربران، باعث ذخیره دادههای شما در چندین سرور و افزایش پایداری آن میشود.
البته استفاده از رایانش ابری مختص شرکتها نیست؛ بلکه میتواند برای کاربران عادی و افرادی که ارتباط خاصی با دنیای IT ندارند نیز مفید باشد. برای مثال، سرویس Google Docs را در نظر بگیرید. این سرویس از نظر عملکرد مشابه نرم افزار Microsoft Word در ویندوز است؛ با این تفاوت که تنها با اتصال به اینترنت میتوانید از آن استفاده کنید و در هر نقطه ای از جهان، فایلهای خود را مدیریت کنید.
رایانش ابری به چه معناست؟
رایانش ابری ترجمه شده عبارت Cloud Computing است. کلمه Computing به تنهایی، به معنای محاسبه کردن است؛ کلمه Cloud باعث میشود افراد مختلف سوالاتی نظیر «منظور از ابر در رایانش ابری چیست؟» یا سوالاتی پیرامون دلایل انتخاب این کلمه و ارتباط آن با دنیای IT را مطرح کنند.
علت انتخاب کلمه Cloud، ناشناخته بودن سرورها و پردازشهای صورت گرفته در آنها برای کاربران است. کاربر دقیقا نمی داند پردازش موردنیاز او در کدام سرور انجام شده و چه فرآیندهایی را طی کرده؛ بلکه تنها خروجی را مشاهده میکند. این مفهوم درباره ابرهای درون آسمان نیز صدق میکند؛ زیرا کسی نمی داند یک ابر دقیقا کجا و چطور تشکیل شده و تنها میتواند ابر را مشاهده کند!
پردازش ابری به چه معناست؟
در بسیاری از موارد، پردازی ابری و رایانش ابری به عنوان دو واژه هم معنی به کار میروند. در واقعیت، این دو رابطه نزدیکی با یکدیگر دارند؛ اما این موضوع دلیلی برای عدم توجه به تفاوتهای آنها نیست.
پردازش ابری یا Cloud Processing، به معنای پردازش اطلاعات در کلود یا همان ابر است. در واقع، این مفهوم به پردازشهای صورت گرفته در رایانش ابری اشاره دارد و میتوان آن را زیرمجموعه رایانش ابری دانست. در بخش خدمات رایانش ابری، این مفهوم با نام زیرساخت به عنوان سرویس یا IaaS معرفی شده است.
انواع Cloud Computing چیست؟
رایانش ابری دارای انواع مختلفی است که هرکدام با توجه به نیازهای مختلفی به وجود آمده اند؛ اما 4 نوع اصلی رایانش ابری که استفاده بیشتری دارند، به این ترتیب است:
- ابر عمومی Public Cloud
- ابر خصوصی Private Cloud
- ابر ترکیبی Hybrid Cloud
- چند ابری Multi-Cloud
در ادامه با هرکدام از این موارد آشنا میشویم؛ البته میتوانید با نگاهی به تصویر زیر، انواع رایانش ابری را مشاهده کنید!
ابر عمومی یا Public Cloud
ابر عمومی یکی از اولین مدلهای رایانش ابری است که میتواند بدون توجه به سرویس موردنظر، قدرت محاسباتی زیادی را به صورت اشتراکی در اختیار کاربران قرار دهد. میتوان این مورد را به یک استخر عمومی تشبیه کرد؛ جایی که افراد زیادی میتوانند از امکانات استخر به صورت همزمان استفاده کنند.
مزیت این نوع از Cloud Computing، مقیاس پذیری بالا، هزینه پایین برای استفاده و تنوع خدمات ارائه شده است.
ابر خصوصی یا Private Cloud
برای سازمانهایی که نیاز به نگهداری اطلاعات حساس و محرمانه دارند، استفاده از ابر عمومی گزینه خوبی نیست. این سازمانها از نوعی رایانش ابری با امنیت بالا و دسترسی محدودتر کاربران با نام ابر خصوصی استفاده میکنند. این ابر، مستقل از ابرهای دیگر اعم از خصوصی و عمومی مدیریت میشود و امکان قرارگیری در دیتاسنتر سازمان یا دیتاسنتر ارائه دهنده خدمات ابری را دارد.
ابر ترکیبی یا Hybrid Cloud
ابر هیبریدی یا ترکیبی، زمانی به وجود آمد که شرکتها نیاز به ابر خصوصی و عمومی به صورت همزمان داشتند. در این روش، دادهها و اطلاعات مهم درون ابر خصوصی ذخیره و پردازش میشوند و پردازشهایی که دارای حساسیت کمتر هستند، به ابر عمومی منتقل میشوند.
برای مثال، یک فروشگاه اینترنتی بزرگ ممکن است اطلاعات حساس کاربران خود را در ابر خصوصی با امنیت بالا نگهداری کند؛ اما پردازشها و مدیریت ترافیک سنگین سایت خود را با استفاده از ابر عمومی انجام دهد!
چندی ابری یا Multi-Cloud
شرکتهای بزرگ دنیا، خدمات مختلف رایانش ابری را به مدلهای مختلف ارائه میدهند. در مواردی، سازمانها نیاز دارند از خدمات چندین ارائه دهنده به صورت همزمان استفاده کنند. در این حالت، مفهوم چند ابری یا Multi-Cloud معنا پیدا میکند. برای مثال، تصور کنید شرکت شما از خدمات محاسبات ابری شرکت آمازون (AWS) برای ذخیره سازی اطلاعات و از خدمات شرکت مایکروسافت (Azure) برای پردازش دادهها استفاده کند.
برای آشنایی بیشتر با خدمات رایانش ابری آمازون، مقاله AWS چیست؟ را بخوانید!
رایانش ابری چطور کار میکند؟
در بخش ابتدایی مطلب درباره روشهای سنتی مدیریت و توسعه زیرساختها صحبت کردیم. در آن زمان شرکتها باید اقدام به خرید سرور و تجهیزات، نصب و پیکربندی نرم افزارها، مدیریت و آماده سازی سرور و تامین امنیت و مایحتاج آن میکردند که هزینههای بالایی نیاز داشت و آماده سازی آن، زمان بر بود.
حالا تصور کنید به جای یک سرور، ما 3 سرور در 3 دیتاسنتر متفاوت در یک منطقه داریم که از طریق ماشین مجازی ساز به یکدیگر متصل شده و با یکدیگر در تعامل هستند. در صورتی که یکی از این سرورها دچار اشکال یا خرابی شود، سیستم عامل پردازشها را به سرور دوم منتقل میکند؛ در نتیجه در کسری از ثانیه، پردازشها از سر گرفته شده و میتوان به سادگی به مشکل سرور معیوب رسیدگی کرد. در نهایت، نرم افزار یا پروژه میزبانی شده در ابر بدون مشکل و قطعی کار میکند.
اگر بخواهیم کمی جزئی تر به رایانش ابری نگاه کنیم، متوجه میشویم تمام چیزی که به عنوان Cloud Computing میشناسیم، در 5 لایه خلاصه میشود که در تصویر زیر، آمده است:
در ادامه، هرکدام را به شکل مختصر معرفی میکنیم.
- سرور: سخت افزار و نرم افزارهای مخصوص ابر که در دیتاسنترهای مختلف قرار گرفتهاند.
- زیرساخت یا Infrastructure: زیرساخت به عنوان سرویس یا IaaS، لایه دوم است که زیرساختهای موردنیاز برای توسعه نرم افزار را در اختیار مشتریها قرار میدهند. از نظر عملکرد، زیرساخت ابری مشابه سرور خصوصی مجازی است و هزینه آن، براساس منابع مصرف شده محاسبه و پرداخت میشود. این مورد، اولین نوع از سرویسهای مبتنی بر ابر محسوب میشود.
- بستر یا Platform: این محیط روی زیرساخت ابری میزبانی شده و دارای همه پیش نیازهای توسعه برنامههای ابری است که با نام پلتفرم به عنوان سرویس یا PaaS شناخته میشود. استفاده از این سرویس، امکان توسعه نرم افزار بدون نیاز به خرید سخت افزار و نرم افزار را بدون پیچیدگی خاصی را فراهم میکند.
- نرم افزار یا Software: مثال Google Docs در بخش ابتدایی این مطلب را به یاد دارید؟ این مورد دقیقا مشابه همان مثال است. نرم افزار استقرار یافته روی پلتفرم ابری که آن هم در زیرساخت ابری میزبانی میشود، به نرم افزارهای ابری مشهورند که بدون نیاز به نصب و از طریق اینترنت، قابل دسترسی هستند.
- مشتری یا Client: کاربر نهایی نظیر من و شما که از نرم افزارهای ابری نظیر Google Docs استفاده میکنیم!
رایجترین خدمات مبتنی بر رایانش ابری چیست؟
در بخش قبل، اشاره کردیم مهمترین خدمات Cloud Computing چیست و هرکدام چه کاربردی دارند. در ادامه با هرکدام به شکل کامل آشنا میشویم.
منظور از IaaS در رایانش ابری چیست؟
در ابتدای این مطلب، درباره تفاوت رایانش ابری و پردازش ابری صحبت کردیم. زیرساخت ابری، پردازش ابری یا همان IaaS (Infrastructure as a Service)، همگی یک مفهوم و سرویس هستند که منابع پردازشی لازم برای پردازشهای مبتنی بر ابر را ارائه میدهند. در این سرویس، زیرساخت ابری به صورت آماده در اختیار شما قرار میگیرد و تنها نیاز است آن را براساس نیاز خود، مدیریت و کانفیگ کنید. در نتیجه با مشکلات نگهداری سخت افزار مواجه نیستید و میتوانید تمرکز خود را به توسعه پروژه اختصاص دهید.
حالا مزایای استفاده از پردازش ابری چیست؟
دسترسی کامل به زیرساخت ابری، امکان شخصی سازی زیرساخت برای کاربردهای خاص و مناسب برای سازمانهای بزرگ و پردازشهای حجیم!
PaaS در Cloud Computing چیست؟
پلتفرم به عنوان سرویس یا Platform as a Service، نوعی دیگر از خدمات Cloud Computing است که روی زیرساخت آماده شده و به عنوان بستری برای شروع توسعه پروژه، مناسب است. با استفاده از سرویس PaaS دیگر نیازی به شخصی سازی زیرساخت و تنظیمات مختلف سرور برای شروع توسعه نیست و بلافاصله میتوان از آن استفاده کرد. خروجی و پروژه نهایی قرار گرفته روی پلتفرم ابری، به عنوان برنامه ابری شناخته میشود.
SaaS در رایانش ابری به چه معناست؟
برنامه یا نرم افزار ابری، نوع دیگری از خدمات مبتنی بر کلود است که بیشتر با کاربران عادی در ارتباط است. PaaS و IaaS توسط توسعه دهندگان استفاده میشوند؛ اما SaaS توسط کاربران عادی نیز قابل استفاده است. در این حالت، یک نرم افزار روی پلتفرم ابری میزبانی میشود و میتوان از طریق اینترنت به آن دسترسی داشت. Google Docs و Gmail از جمله مشهورترین و پراستفاده ترین نرم افزارهای ابری در دنیا هستند؛ البته منظور از Gmail، نسخه ای است که از طریق اینترنت قابل دسترسی است!
رایانش بدون سرور یا Serverless Computing
رایانش بدون سرور، به روشی گفته میشود که شرکت ارائه دهنده خدمات Cloud Computing، تمامی مسئولیتهای مربوط به سرورها و زیرساختها را برعهده میگیرد و شما، تنها کد خود را در آنها مستقر میکنید. در نتیجه، لازم نیست برای شخصی سازی و آماده کردن زیرساخت زمان بگذارید. برای مثال، تصور کنید یک ابزار برای تبدیل فرمتهای تصاویر و ویدیوها نوشته اید. در این حالت تنها کافیست برنامه موردنظرتان را در زیرساخت مجازی دیپلوی کنید! هزینه استفاده از این خدمات نیز براساس ترافیک و پردازشهای انجام شده از شما دریافت میشود.
FaaS چیست؟
فانکشن به عنوان سرویس یا FaaS یکی از زیرشاخههای رایانش بدون سرور است. در این حالت، یک تابع یا تکه کد در زمان نیاز اجرا میشود. همان مثال قبل را درنظر بگیرید. زمانی که یک تصویر با فرمت PNG در این برنامه آپلود کنید و بخواهید آن را به فرمت WebP تبدیل کنید، تابع مربوط به این کار فراخوانی و اجرا میشود. در نتیجه، تفاوت کلی این دو سرویس در مقدار کدها و کاری است که انجام میدهند!
خدمات مبتنی بر رایانش ابری، بسیار بیشتر از این موارد هستند؛ اما آشنایی با آنها چندان مهم نیست و در نهایت، زیرشاخه ای از همین سرویسها محسوب میشوند. در جدول زیر، خلاصه ای از مهمترین سرویسهای ابری را آورده ایم.
ویژگیها | SaaS | FaaS | PaaS | Serverless Computing | IaaS |
کاربرد | نرمافزارهای قابل استفاده | تست و اجرای کدهای کوچک | توسعه و دیپلوی برنامهها | اجرای برنامهها بدون مدیریت سرور | ارائه زیرساخت برای برنامهها و ذخیرهسازی |
کاربران | کاربران نهایی و کسبوکارها | توسعه دهندگان | تیم توسعه محصول، توسعه دهندگان | سازمانها و استارتاپها | معماران سیستم، تیمهای IT و مدیریت زیرساخت |
سطح دسترسی | استفاده از نرمافزار | اجرا و تست کدها و ماژولهای خودکار | استفاده از ابزارها و محیط توسعه | دیپلوی پروژه و اجرای خودکار برنامهها |
مدیریت کل منابع محاسباتی
|
دانش موردنیاز | نحوه کار با برنامه | برنامه نویسی | توسعه نرم افزار | معماری پروژه، توسعه نرم افزار | مدیریت زیرساخت، معماری پروژه و… |
مسئول مدیریت زیرساخت | ارائه دهنده سرویس | ارائه دهنده سرویس | ارائه دهنده سرویس | ارائه دهنده سرویس | سرویس گیرنده |
نمونههای مشهور | Google Docs یا تسکولو | AWS Lambda، Google Cloud Functions | Heroku، Microsoft Azure App Service | AWS Lambda، Azure Functions | Amazon EC2، Google Compute Engine |
جمع بندی
در این مطلب درباره مفهوم رایانش ابری، نحوه کار آن و تفاوتهایی که با پردازش ابری دارد، صحبت کردیم. به طور خلاصه، رایانش ابری یک روش ارائه منابع پردازشی از طریق اینترنت است که خدماتی از جمله زیرساخت ابری، پلتفرم ابری، نرم افزارهای ابری و پردازش بدون سرور را ارائه میدهد. با استفاده از رایانش ابری نیازی به نگهداری و میدیریت سخت ازفرا و نرم افزارهای محاسباتی نیست و میتوان زمان، هزینه و تمرکز بیشتری را به توسعه و یافتن راه حلهای خلاقانهتر اختصاص داد.
به عنوان یک توسعه دهنده، باید مبانی رایانش ابری را درک کرده و ترجیحا با سرویسهای پایه آنها کار کنید. برای مثال، تسلط به Git و Github یکی از مهارتهای مهم برای هر توسعه دهنده در هز زمینهای است. همچنین در صورت امکان، میتوانید اندکی با APiهای رایگان و مبتنی بر ابر نظیر Google Map API کار کرده و تجربه کار با آنها را بدست آورید. در کل، به عنوان یک توسعه دهنده نیازی به درک عمیق از رایانش ابری و نحوه کارکرد هرکدام از سرویسهای آن ندارید؛ بلکه تمرکز اصلی شما باید روی توسعه پروژه و یافتن روشهای بهتر برای انجام این کار باشد.
نظری برای این مقاله ثبت نشده است