نشریه دانشکده کامپیوتر دانشگاه صنعتی اصفهان
رایانش ابری
رادیو فرامتن - شماره دو - این قسمت: رایانش ابری
مقدمه
همینطور که از اسم این پادکست پیداست توی این قسمت از رادیو فرامتن میخوایم در مورد Cloud Computing یا همون رایانش ابری صحبت کنیم. اول بیاین با یه مثال بررسی کنیم چه نیازی به استفاده از این تکنولوژی هست؛ فرض کنین که تصمیم گرفتین تناسب رو به اندام خودتون بیارین و "از شنبه" شروع به ورزش کردن کنین! خب برای این کار به یک سری تجهیزات و وسایل مثل تردمیل، دمبل، کش و اینجور چیزها نیاز دارین. یکی از راههای انجام این کار اینه که تمامی وسایل مورد نیازتون رو بخرین. طبیعتا یک سری از اونها مثل تردمیل نیاز به راهاندازی اولیه و مصرف برق داره، علاوه بر این اگر وسیلهای خراب بشه یا نیاز به روغن کاری و تعمیر داشته باشه خودتون باید آستین بالا بزنین و مشکل رو حل کنین. با انجام این کار رسماً تموم چیزهایی که نیاز دارین رو دو قدمی خودتون توی منزل دارین و خب دسترسی بهش راحته، از طرفی میتونین وسایلی که بهشون نیازی ندارین رو نخرین و پول اضافه خرج نکنین.
راه دیگه برای ورزش کردن که اکثر مردم اون رو انتخاب میکنن ثبتنام در یک باشگاه ورزشیه. در این حالت شما میتونین با پرداخت هزینه ناچیزی به عنوان شهریه، از تمامی امکانات و تجهیزات مختلف باشگاه استفاده کنین. غیر از صرفهجویی که توی هزینههاتون میشه، مزیت دیگش اینه که دیگه نیازی نیست نگران نگهداری و روغنکاری وسیلهها باشین، شما قراره صرفا از اونها استفاده کنین و وظیفه سالم نگه داشتن این دستگاهها به عهده باشگاهه! علاوه بر این میتونین توی باشگاه با پرداخت هزینه اضافه از مربی استفاده کنین که تجربه و تخصص داره و میتونه بهتون توی بهتر و درستتر ورزش کردن کمک کنه.
رایانش ابری به این مثال باشگاه خیلی نزدیکه، وقتی که شما یک سرویس یا یک اپلیکیشن رو آماده دارین و میخواین اون رو از طریق اینترنت برای کاربران قابل استفاده کنین، راه اول اینه که یک سرور با هزینه نسبتاً زیاد تهیه کنین و روی اون یک سیستمعامل نصب کنین، تنظیمات اولیهی اون رو انجام بدین و در نهایت با نصب یک سری ابزار مثل وبسرور، برنامه خودتون رو روی اون قرار بدین؛ این راه دقیقاً مثل خریدن وسیلههای باشگاه و تمرین کردن توی خونه میمونه، شما باید همیشه نگران خراب شدن سرورتون یا حتی حمله به اون باشین و تمامی مسئولیت نگهداری سرویس به عهده خودتونه.
توی این حالت، سرور و تمام امکاناتش برای شماست و میتونین ازش هر زمان تا سقف ظرفیت منابعی که خریداری کردین استفاده کنین، اما خیلی وقتها، ما به این اندازه از شخصیسازی و داشتن سرور یا سیستم کاملاً شخصی احتیاجی نداریم؛ اینجاست که رایانش ابری وارد میشه و کار رو برای ما آسون میکنه. شما کافیه فقط از یک سرویس ارائهدهنده رایانش ابری، خدمات مورد نیاز خودتون رو تهیه کنین و برای اون پول بدین. دیگه لازم نیست نگران نگهداری و مشکلاتی که ممکنه برای سرور پیش بیاد باشین. میتونین با خیال راحت روی اپلیکیشن خودتون و کاری که قراره اون رو به درستی انجام بده تمرکز کنین.
این راه از نظر هزینه خیلی به صرفست، خصوصاً با قابلیتی که به عنوان PayAsYouGo ارائه میشه که شما کافیه فقط به مقدار منابعی که مصرف میکنین پول پرداخت کنین! این قابلیت خیلی جذابه یعنی عملاً منابع ابر شما به صورت پویا قابل تغییر هستن. اگر دیدید منابعی که در نظر گرفتین پاسخگوی تعداد کاربر شما نیست، میتونین خیلی راحت با چند تا کلیک اونها رو زیاد کنین!
نگاهی علمی به منابع ابری
خب حالا بیایم یکم علمیتر به منابع ابریمون یا همون کلودها نگاه کنیم. کلود، سرورهاییه که از طریق اینترنت به اونا وصل میشیم و روی این سرورها اپلیکیشن و خدماتی در حال اجراست. افراد و شرکتها با استفاده از کلود بدون اینکه مجبور به نگهداری و مدیریت فیزیکی سرورها باشن یا نرمافزارهاشونو روی کامپیوترهای خودشون به اجرا در بیارن، میتونن با اجاره این سرورها و استفاده از اونا کار خودشون رو راحتتر کنن. خدمات رایانش ابری، طیف گستردهای از گزینهها از ابتدای ذخیرهسازی، شبکهسازی و قدرت پردازش گرفته تا NLP، هوشمصنوعی، و همچنین برنامههای کاربردی اداری رو در برمیگیره. تقریباً هر سرویسی که نیازی به نزدیک بودن فیزیکی شما به سختافزار رایانهای که از آن استفاده میکنین نداشته باشه، همین حالا میتونه از طریق کلود ارائه بشه. به کمک کلود کاربرا میتونن تقریباً از هر دستگاهی به پروندهها و برنامههای مشابه دسترسی داشته باشن، چون به جای این که محاسبات و ذخیرهسازی در سیستم کاربر انجام بشه در سرورهای مرکز داده یا همون دیتاسنترها انجام میشه؛ به خاطر همینه که یک کاربر میتونه بعد از خراب شدن تلفن قدیمیش، از طریق یه تلفن دیگه به حساب اینستاگرامش وارد بشه و هنوز حساب قدیمی خودشو با تمام عکسها ، فیلمها و سابقه مکالمات پیدا کنه. ارائهدهندگان ایمیل ابری مثل Gmail یا ارائهدهندگان فضای ذخیرهسازی ابری مانند Dropbox یا Google Drive به همین روش کار میکنن.
رایانش ابری چطوری کار میکنه؟!
رایانش ابری یا کلود کامپیوتینگ به کمک فناوریای به نام Virtualization به معنای مجازیسازی انجام میشه. با این فناوری میتونیم یه کامپیوتر شبیهسازیشده رو درست کنیم که مثل کامپیوتر فیزیکی با سختافزار خاص خودش عمل میکنه. به چنین کامپیوتری به اصطلاح ماشینِ مجازی میگن. ماشینهای مجازی روی همون کامپیوتر میزبان ساخته میشن اما توی محیطهای ایزوله قرار دارن و پروندهها و برنامههای یک ماشین مجازی برای ماشینهای دیگه در دسترس نیستن.
حالا ما میتونیم با راهاندازی همزمان چند ماشین مجازی، یک سرور رو به تعداد زیادی سرور تبدیل کنیم که میتونن به شرکتهای متعددی سرویسدهی کنن. بنابراین، ارائهدهندگان خدمات ابری میتونن سرورهای خودشونو با هزینه کمتری به تعداد مشتریان بیشتری ارائه کنن.
قابلیت دیگه رایانش ابری اینه که حتی اگه سرورهای منفرد از کار بیفتن، سرویسهای اونها باید همیشه در دسترس باشن. فروشندگان ابر معمولاً از خدمات خودشون در چندین دستگاه و در چندین منطقه backup میگیرن.
انواع سرویسهای رایانشابری
در ادامه، سه سطح متداول ارائه خدمات رایانش ابری رو با هم بررسی میکنیم:
- در اولین سطح نرمافزار به عنوان سرویس ارائه میشه که به اون Software as a service یا اختصاراً SaaS میگن. یعنی به جای اینکه کاربران برنامهای را روی دستگاه خودشون نصب کنن، برنامههای SaaS روی سرورهای ابری میزبانی میشن و کاربران از طریق اینترنت به آنها دسترسی دارن. مثلا Google Docs یکی از نرمافزارهای پیادهسازیشده روی کلوده و شما میتونین به جای نصب Microsoft Word، هر زمان که خواستین مرورگر رو باز کنین و از این خدمت شرکت گوگل استفاده کنین.
- در سطح بعدی خدمات، دیگه اپلیکیشنها و نرمافزارها اجاره داده نمیشه و به جاش سیستمعاملها و همه ابزارهای توسعهای که شرکتها نیاز دارن ارائه میشن که به اون Platform As A Service یا PaaS میگن. PaaS رو میتونیم به جای اجاره خود خانه، با اجاره کلیه ابزارها و تجهیزات لازم برای ساخت خانه مقایسه کنیم. در این مدل، شرکتها به جای پرداخت هزینه برای برنامههای میزبانی شده، برای چیزایی که برای ساخت برنامههای شخصیشون نیاز دارن هزینه میکنن.
- تو روش سوم ارائه خدمات، شرکتها حتی هزینه اجاره بسترها رو هم پرداخت نمیکنن و اونا فقط به دنبال یک فضای ذخیرهسازی هستن تا برنامههای خودشونو از پایه بسازن. به این نوع کرایه Infrastructure as a service یا IaaS میگن و به معنی زیرساخت به عنوان سرویسه؛ توی این مدل، یک شرکت سرورها و فضای ذخیرهسازی مورد نیاز خودشو از یک ارائهدهنده اَبر اجاره میکنه و از اون زیرساخت برای ساخت برنامههاش استفاده میکنه. این مورد، برای سازمانهایی جذابه که به دنبال ساخت برنامههای کاربردی از پایه هستن و میخوان تقریبا هر عنصری از زیرساخت رو خودشون کنترل کنن.
پژوهشهای انجام شده توسط شرکت اوراکل (Oracle) نشون میده بیشتر کاربران اشاره کردن استفاده از زیرساختهای آنلاین، نوآوری داشتن رو براشون سادهتر کرده. همچنین تو زمانشون برای استقرار برنامههای کاربردی و سرویسهای جدید صرفهجویی کرده و به طور قابل توجهی، هزینههای جاری نگهداری را براشون کاهش داده.
انواع ابرها
شرکتهای ارائهدهنده خدمات کلود کامپیوتینگ این سطوح از اجاره رو تو سه قالب عمومی و تخصصی و چندگانه ارائه میکنن.
ابر عمومی یک مدل رایانش ابری کلاسیکه که توی اون کاربران میتونن از طریق اینترنت به حجم زیادی از قدرت محاسباتی دسترسی پیدا کنن. به همین خاطر تأمینکنندگان رایانش ابری باید منابع محاسباتی قدرتمندی در اختیار داشته باشن تا اون رو بین تعداد زیادی از مشتریان به اشتراک بگذارن. ظرفیت بالا به این معنیه که منابع کافی برای پاسخگویی به نیاز مشتریانی که درخواست منابع بیشتر میکنن وجود داره اما رایانش ابری معمولاً برای کاربردهای کمحساسیتتر مورد استفاده قرار میگیره. براساس پژوهشهای انجام شده، بخش عمده هزینههای ابر عمومی به SaaS اختصاص پیدا میکنه. در قالب بعدی خدمات کلود کامپیوتینگ به ابر خصوصی برمیخوریم. ابر خصوصی، یک سرور یا مرکز داده است که کاملاً به یک سازمان اختصاص داره. هزینه اجاره ابر خصوصی بیشتر از ابر عمومیه اما محرمانه بودن اطلاعات ویژگی مهمیه که ممکنه مد نظر برخی از شرکتها باشه.
در قالب سوم خدمتدهی، به ابرهای چندگانه یا Hybrid Cloud میرسیم. شرکتها ابرهای عمومی و خصوصی را با هم ترکیب میکنن به طوریکه یک سازمان میتونه از ابر خصوصی برای برخی سرویسها و از ابر عمومی برای برخی دیگه استفاده کنه، یا ممکنه از ابرعمومی به عنوان پشتیبان برای ابر خصوصی استفاده کنه.
با وجود تمام مزایایی که گفتیم، رایانش ابری هم مثل تمام تکنولوژیهای دیگه، بیعیب نیست. اولین و شاید مهم ترین مشکل اون، مشکل امنیته. با استفاده از سیستمهای رایانش ابری، شما عملاً امنیت اطلاعاتتون رو به شرکتهای ارائهدهنده کلود میسپارین. علاوه بر اون مشکل هک شدن اطلاعات هم وجود داره و به خاطر آنلاین بودن سیستم کار رایانش ابری، اطلاعات شما میتونه در معرض طیف گستردهای از حملهها قرار بگیره.
برگردیم به مثال باشگاه. فرض کنین شنبهست و تمام کائنات تحت امر شماست تا برید باشگاه. اما متوجه میشید باشگاه استثناً امروز تعطیله. مشابه همین مشکل در دسترسی به دادهها در رایانش ابری وجود داره. ممکنه شما در همین حین گوش دادن به همین پادکست، با قطع و وصل شدن اینترنتتون مواجه شده باشین. حالا همین کیفیت عالی اینترنت را در کنار سیستم رایانش ابری قرار بدین که به طور کامل بر پایه اینترنت کار میکنه. مشخصه که در کشورهای در حال توسعه مثل ایران، و نواحی دورافتاده که دسترسی مناسبی به اینترنت ندارن، استفاده از رایانش ابری با چالشهای زیادی مواجه میشه. در زمینه دسترسی به اطلاعات، مشکلات دیگهای هم وجود داره مثل انتقال اطلاعات بین سیستمهای رایانش ابری و هم چنین بازیابی اطلاعات بعد از اتمام خدمات رایانش ابری.
حالا فرض کنین رفتین باشگاه و حین ورزش متوجه میشین یکی از دستگاهها ایراد فنی داره. اینجاست که احتمالاً میرید و قضیه رو به یکی از مربیها یا مسئولین اونجا اطلاع میدین. همین اتفاق توی رایانش ابری هم میفته. از اونجایی که سرورها در دسترس شما نیستن، اگر با مشکلی مواجه بشین، احتمالا خودتون نمیتونین حلش کنین و ناگزیر باید با پشتیبانی تماس بگیرین که اونها هم شبانه روز در دسترس نیستن. علاوه بر این برای بعضی از پشتیبانیها لازمه که پول پرداخت کنین.
از نظر اقتصادی هم نگرانیهایی در این زمینه وجود داره. با اینکه مهمترین مزیت رایانش ابری صرفهجویی در هزینههای سختافزاریه و انعطاف بیشتری هم ایجاد میکنه، اما ممکنه برای برخی از پروژههای کوچیک برآورد نهایی هزینهها بالاتر از حد انتظار شما باشه.
این قسمت شامل اطلاعاتی اضافهتر برای علاقهمندان است. =)
شرکتهای پیشرو سرویسدهنده و سرویسهای آنها
حالا بیاید یکم کاربردیتر به قضیه نگاه کنیم. وقتی بحث رایانش ابری وسط میاد، نام سه غول بزرگ تکنولوژی دنیا یعنی گوگل، آمازون و مایکروسافت بیشتر از همه میدرخشه! هرکدوم از این شرکتها سرویسهای ابری خودشون رو دارن که رویهمرفته بیش از نصف محاسبات ابری رو تصاحب کردن! مایکروسافت با Azure، گوگل با Google Cloud و آمازون با AWS یا همون Amazon Web Services! در ادامه به معرفی برخی از معروفترین سرویسهای AWS میریم و اونها رو با هم بررسی میکنیم.
اولین و معروفترین سرویسی که آمازون ارائه میده EC2 هست. EC2 مخفف کلمه Elastic Computing Cloud هست که در واقع با هدف راحت کردن دسترسی توسعه دهندهها به منابع محاسباتی و همچنین مقیاسپذیری به بازار اومده. با استفاده از این سرویس به راحتی میتونیم سرور مجازی خودمون با کانفیگ دلخواه رو اجرا کنیم و تمامی پیشنیازها رو نصب و در نهایت اپلیکیشن خودمون رو روی اون اجرا کنیم.
حالا میریم سراغ یه سرویس با کاربرد نسبتاً تخصصیتر به اسم RDS .RDS یا همون Relational Database Services تمامی تنظیمات مربوط به دیتابیس، مدیریت اون و مقیاس کردنش رو به ما ارائه میده. این سرویس از موتورهای معروف دیتابیس مثل Postgre و MySQL پشتیبانی میکنه و با استفاده از اون میتونیم راحت و بدون دردسر دیتاهای برناممون رو نگهداری کنیم!
وقتی اسم دیتا میاد، سرویس S3 آمازون که مخفف خلاقانه Simple Storage Service هست، یکی از پیشتازای این عرصه محسوب میشه. با استفاده از این سرویس میتونیم دادههای خودمون رو با دسترسیپذیری و اطمینان خیلی خوبی ذخیره کنیم!
اینها چند نمونه از معروفترین سرویسهای AWS بودن، اما سرویسهای آمازون به همینها ختم نمیشه و اگر سری به سایت aws.amazon.com بزنید میبینید که به تعداد آدمهای روی کره زمین سرویس ابری آمازون موجوده!
در آخر خوبه بررسی کنیم که رایانش ابری در آینده چه مسیری رو پیش میگیره. مسلماً هیچکس نمیدونه اما پیشبینیهای زیادی در این مورد انجام شده.
نگرشی به آینده
یکی از چالشهای اصلی که در این روزگار باهاش مواجهیم مدیریت دادههاست. در نظر بگیرین که روزانه حدود ۲ تریلیون گیگابایت داده به وجود میاد و اینو اگر درمقیاس ماه و سال در نظر بگیریم، عدد ترسناکی میشه. واضحه که ذخیرهسازی ، مدیریت و پردازش این دادهها یه چالش اساسیه. اینجاست که رایانش ابری میتونه به کمکمون بیاد. توی رایانش ابری، دادهها به دادههای کوچکتر تقسیم میشن و مثل دادههای مجازی مدیریت میشن. از اونجایی که ابر متمرکزه، مدیریت دادهها آسونترمیشه و مدیریت بهتر یعنی امنیت بیشتر. علاوه بر این، پردازش دادهها با سرعت خیلی بیشتری انجام میشه و تحلیل دقیقتری هم میده.
بیاید بریم به سی سال آینده! تا سال ۲۰۵۰ جمعیت جهان به بیش از ۱۰ میلیارد نفر میرسه و این یعنی نیاز به یه فناوری قوی برای مدیریت جمعیت. پیشبینی میشه که رایانش ابری بتونه زیرساختهای دیجیتال رو برای شهرهای هوشمند به خوبی فراهم کنه. پس احتمالاً به زودی در شهرهای پرجمعیت شاهد سیستم عظیمی از وسایل نقلیه خودکار، پارکینگها و آسانسورهای هوشمند، مزارع و نیروگاههای بهتر و خیلی چیزای دیگه خواهیم بود. همش به لطف قابلیت بالای ابر توی ذخیره و تجزیه تحلیل دادهها ممکن میشه.
یکی دیگه از پیشبینیهای جذاب، در حوزه هوشمصنوعیه. با ادامه روند تکامل رایانش ابری، هوشمصنوعی و اینترنت اشیا به طرز چشمگیری پیشرفت میکنن و میتونن با هر سیستمعامل و دستگاهی سازگار بشن. به عنوان نمونه، در آینده نزدیک، هوشمصنوعی و کلود به شکلی در کنار هم قرار میگیرن که گوشیهای هوشمند به طور مداوم از این تکنولوژی استفاده میکنن. این هوشمصنوعی میتونه عکسهاتون رو بر اساس محتوا دستهبندی کنه، به دستورات صوتی جواب بده، دوربین گوشیتون رو تنظیم کنه و خیلی چیزای دیگه.
امیدواریم بعد از گوش کردن به این پادکست، دیگه هروقت اسم اَبر میاد، علاوه بر اینکه یاد ابرهای توی آسمون بیفتید، یاد این تکنولوژی قدرتمند و محبوب بیفتین و به این فکر کنین که سرورهای سرتاسر جهان چطوری این حجم از داده و پردازش رو مدیریت میکنن!
به پایان دومین شماره از رادیو فرامتن رسیدیم؛ من فاطمه قدم زاده هستم و این پادکست توسط بچههای دانشکده کامپیوتر دانشگاه صنعتی اصفهان آمادهسازی و تدوین شده. تشکر میکنم از دانیال خراسانی زاده، محمدرضا میردامادیان، محمد مهدی برقی، سپهر شیرانی و مرصاد حسنجانی که زحمت جمعآوری دیتاهای این پادکست رو کشیدن. همچنین از شیرین بهنامی نیا، محمد حسن نساج پور و سپهر گنجی که به عنوان نویسنده کنارمون بودن. در نهایت ممنونیم از سنا محراببیگی و رسول بوسعیدی که به بهتر شدن متن و هماهنگیهای تیم کمک کردن.
رادیو فرامتن رو میتونید از کانالهای ما در تلگرام و کست باکس دنبال کنید. اگه این پادکست براتون مفید بود با معرفی ما به دوستاتون برای ادامه راه به ما انرژی بدید.
منتظر شمارههای بعدی رادیو فرامتن باشید :)
اگه به کلود کامپیوتینگ علاقهمند شدید و دوستدارید اطلاعات بیشتری در مورد علمهای مرتبط با اون پیدا کنید، میتونید در پست ابر و باد و مِه(!) و خورشید و فلک... در مورد پردازش مبتنی بر مِه مطالعه کنید.
مطلبی دیگر از این انتشارات
بازی تقلید
مطلبی دیگر از این انتشارات
گشت و گذار در دنیای ناشناختهها (مقدمهای بر یادگیری تقویتی)
مطلبی دیگر از این انتشارات
دنیای موازی: جهانی پر از پردازشهای موازی!