آشنایی با رایانش ابری (قسمت دوم)

معماری رایانش ابری

وقتی از رایانش ابری به صورت یک ابر حرف می زنـیم بهتـر اسـت کـه  “ابـر” کـامپیوتری را در دو قسمت فرض کنیم: بخش ابتدایی و انتهایی. این دو قسمت توسط یک شبکه به هم متصل می شوند این شبکه معمولا اینترنت است .

بخش ابتدای همان قسمتی است که کاربران مشاهده می کند و اطلاعـات و شـکل ظـاهری نـرم افزارهاست بخش انتهایی همان ابر کامپیتری است که پردازش ها را در بر می گیرد. نـرم افـزاری کـه برای ارتباط با بخش انتهای مورد استفاده قرار می گیرد نیز جزء بخش ابتدایی است. بخش انتهای یا همان ابر از چندین کامپیوتر و سرور واحد های ذخیره تشکیل شده اسـت. از نظـر نرم افزاری ابر دارای هرگونه نرم افزاری می­تواند باشد و در این میان نیز کامپیتر وظیفه مدیریت ابـر و نظارت بر ترافیک و تبادلات اطلاعات را دارد.

زیر ساخت های رایانش ابری

رایانش ابری درای یک سری زیر ساخت های است که در زیر بر می شماریم.

  • مجازی سازی
  • پردازش شبکه ای
  • وب

مجازی سازی

فناوری مجازی سازی (Virtualization) بر خلاف تصور افرادی که آن را یک فناوری نوین به حساب می­آورند، مربوط به دهه 70 میلادی یعنی نزدیک به 40 سال پیش است. زمانی که شرکت
آی بی ام (IBM) یکه تاز عرصه محاسبات دیجیتالی و رایانه ها بود. در واقع سیستم عامل­های موجود
دهه 60 و 70 میلادی اساساٌ بر پایه اشتراک منابع سخت افزاری یا همان مجازی سازی کار می کردند و اصولاً بدلیل گرانی منابعی نظیر حافظه، دیسک، پردازنده مرکزی و سایر ملحقات آن امکان بهره برداری غیر اشتراکی بسیار پر هزینه بود. بعد از ظهور نسل جدید رایانه ها و سرویس دهنده های غیر Mainframe که دارای توان کارکرد بالا و قیمت پایین بودند، رویکرد قبلی سیستم عاملها در استفاده اشتراکی منابع به تدریج کمرنگ شد و استفاده از سرویس دهنده های کوچک و متوسط بدون دغدغه از صرف هزینه های گزاف سخت افزاری فراگیر شد.

همچنین با رشد سرویسهای نرم افزاری جدید در شبکه‌ها، و بر آورده شدن نیاز هرکدام از این سرویسها با استفاده از سخت‌افزار و منابع سیستم‌عامل اختصاصی، راهبرد جدیدی به شکل “یک سرویس دهنده برای هر سرویس شبکه” به وجود آمد که این رویکرد کماکان در بسیاری از شبکه ها مورد استفاده قرار دارد اما این راهبرد جدید یک اشکال دارد و آن هم این است که بر طبق آمار در تعداد کثیری از سرویس دهنده ها، میزان استفاده از منابع به کمتر از 20% محدود است. این رویه باعث بالا رفتن هزینه و مصرف انرژی و در عین حال کاهش بهره‌وری سخت افزار می‌گردد.

در نتیجه دوباره مسئله صرفه جویی و مدیریت منابع در راهبرد جدید مورد توجه قرار گرفت. منتهی این بار تنها IBM جلودار نبود و شرکتها و موسسات تحقیقاتی بسیاری وارد میدان شده بودند.

کاهش هزینه ها، بالابردن بهره‌وری سخت افزار و مدیریت آسانتر و کارآمدتر سرویس دهنده ها اهدافی هستند که مدیران و متخصصان شبکه را به سمت قرار دادن سرویسهای مختلف بر روی یک سخت‌افزار قدرتمند سوق داد. در راهبرد جدید، هدف، قراردادن سرویس‌های متنوع بر روی یک سخت افزار به صورت متمرکز و با هزینه کمتر بود تا از این طریق مدیریتی آسانتر، کم هزینه‌تر ، فرایندهای نگهداری و پشتیبان‌گیری راحت­تر، دسترسی و قابلیت اعتماد بالاتر فراهم گردد.

تعریف ما از کاربرد مجازی‌سازی در حیطه سیستم عامل عبارت است از راهکاری که اجازه می­دهد چندین سیستم عامل میهمان بطور همزمان بر روی یک میزبان سخت افزاری به اجرا در آیند. اشتراک منابع سخت افزاری موجود بر روی یک رایانه بین خادمان نرم افزاری یکی از، فناوریهای مورد توجه کارشناسان در چند سال اخیر بوده و سرمایه گذاری های اقتصادی و تحقیقاتی زیادی از سوی شرکت های بزرگ روی آن صورت گرفته است.

ماشین مجازی یا VM(Virtual Machine) به سیستمی اطلاق می گردد که اجرای سیستم مجازی را
برعهده گرفته است. هر ماشین مجازی می تواند شامل سیستم عامل، سخت افزار و نرم افزار اختصاصی خود باشد. ماشین های مجازی، مستقل از سکوی سخت افزاری یا سیستم عامل اولیه به فعالیت خود ادامه می­دهند. زیرا دراغلب سیستم های مجازی ساز، یک لایه جدا کننده به نام فوق ناظر Hypervisor میان سیستم عامل میهمان (مجازی) و سخت افزار یا منابع فیزیکی موجود حائل می گردد.

کار Hypervisor ایجاد یک دید مستقل مجازی از سخت افزار یا منابع است. Hypervisor  باعث می­شود ماشین های مجازی از دید یکدیگر پنهان بمانند و هر ماشین مجازی تصور کتد تمام سخت افزار یا منابع لازم را در اختیار گرفته است.

پردازش شبکه ای

پردازش شبکه ای یک زیر ساخت نرم افزاری و سخت افزاری است که قابلیت استفاده از تجهیزات محاسباتی را با قابلیت اطمینان، به صورت کم خرج، فراگیر و سازگار فراهم می آورد.

بنا به مقاله “The anatomy of the grid”  که در سال 2000 به چاپ رسید پردازش شبکه ای به آن صورت تعریف شده است:

“به اشتراک گذاری  متوازن منابع برای حل مسئله در یک محیط پویا، شامل یک سازمان مجازی تشکیل شده از چند صنعت ” در واقع  به اشتراک گذاری منابع که از آن صحبت می شود ،مبادله فایل نیست بلکه منظور دسترسی مستقیم به کامپیوتر ها، نرم افزار ها، داده ها و دیگر منابع است. این به اشتراک گذاری تحت کنترل کامل صاحب منبع است.مجموعه ای از افراد و یا شرکت ها که این نوع اشتراک گذاری را داشته باشند، سازمان مجازی خوانده می شود. و باید سه ویژگی اساسی داشته باشد.

  • مجموعه ای از منابع هماهنگ باشند که دارای یک مدیریت مرزی نیستند
  • از Interface ها و پروتکل های استاندارد، باز و عام بهره گیرند
  • کیفیت سرویسی که کل سیستم ارائه میدهد بزرگ تر از کیفیت سرویس هر کدام از منابع است.

به زبانی ساده تر میتوان پردازش شبکه ای را چیزی شبیه شبکه برق (Power Grid)  دانست که کاربران (استفاده کنندگاه از انرژی الکتریکی) بدون توجه به اینکه این برق از کجا تامین می شود، الکتریسیته را از پریز می گیرند.

Grid Coputing

تفاوت های عمده رایانش ابری و پردارش شبکه ای :

در پردازش شبکه ای یک پروژه عظیم میان چندین کامپیوتر تقسیم می شود، تا منابع آن هـا را به کار گیرد. اما در رایانش ابری به چندین برنامه کامپیوتری کوچک اجازه اده می شود که به طـور هم زمان روی چندین کامپیوتر اجرا شوند .پردازش شبکه ای را تنهـا مـی تـوان بـرای برنامـه هـا ی کاربردی به کار گرفت که قابلیت اجرای موازی را درا می باشند، اما در رایانش ابـر ی محـدودیتی در این زمینه وجود ندارد .در پردازش شبکه ای تخصیص منابع همیشه بر اساس قرارادی کـه بـین سازمان مجازی و مدیر دامنه تنظیم شده است تخصیص می یابد.

بنابراین همیشه منابع محـدود ی را در اختیار دارد . اما در رایانش ابری تخصیص منابع بر اساس “تامین درصورت درخواسـت ” می باشد، و مدیر دامنه بر اساس نیاز کاربران منابع موردرخواست راختصاص می دهد. در حیقت برای کاربر “پرداخت در زای استفاده” صورت می پذیرد .پردازش شبکه­ای برای تعـداد کمـی از کاربران است که درخواست های بزرگی دارند، اما رایانش ابری برای تعداد زیادی از کاربران است که درخواست های کوچکی دارند .درپردازش شبکه ای تمامی سیستم هـا ی شـبکه بایـد ازسیسـتم عامل ها و نرم افزارهای یکسان و مشابه ای استفاده کند، اما در رایانش ابـر ی محـدودیت  در ایـن زمینه ندارد.

پردازش شبکه ای یک فناوری که توسط افراد خاص با نیازهای خاص وغالبا متخصص استفاده می شود، در حالی که رایانش ابری شیوه پردازشی که توسط هر کسی و هر کجـا اسـتفاده می شود.می توان گفت که با وجود آنکه رایانش ابری فناوری جدیدتری است امـا میـزان مقبولیـت بیشتری یافته است، زیرا که محدودیت های موجود در پردازش شبکه ای در رایانش ابـر ی دیـده نمی شود.

در یک جمع بندی کلی میتوان گفت: هدف رایانش ابری ارائه بالاترین خدمات نهایی به کاربران نهایی می­باشد. هدف رایانش شبکه ای انجام محاسبات سنگین و بالا تر در شبکه است.

وب 2

با افزایش کاربرد های وب ، طراحان وب روش های جدیدی را در ایجاد وب سایتها به کار بستند که باعث راحت تر شدن دسترسی به داده ها برای کاربر و مشارکت کاربر در ایجاد داده ها میشود. نمونه بسیار روشنی از این سایت هاWikipedia است که توسط کاربرانش گسترش پیدا میکند و مدیران این سایت فقط محیطی را برای استفاده از توانایی های کاربران فراهم میکنند.

مفهوم وب2 اولین بار در یک همایش توسط معاون موسسه oreilly مطرح شد. آنها به دنبال نسل جدیدی از وب بودند که بتواند جذاب، کاربردی و قابل گسترش باشد. اینگونه بود که کنفرانس وب2 شکل گرفت و بحث های زیادی پیرامون این پدیده مطرح شد.

طراحی و معماری وب ۲٫۰ بر پایه مشارکت‌ها، همکاری‌ها، و تعاملات (interactions) انسان‌ها، ماشین‌ها، نرم‌افزار، و عامل‌های هوشمند با یکدیگر استوار است.

وب ۱٫۰ بسیار محدودتر و ساده‌تر بود، و تنها تعدادی نسبتاً اندک از مؤسّسات گوناگون، دانشگاه‌ها، مراکز تبلیغاتی و غیره به ایجاد مطلب و محتوا بر روی آن مبادرت می‌نمودند. این، در حالی بود که کاربران در وب ۱٫۰ تنها امکان دسترسی به اطلاعات موجود و استفاده از آن‌ها را داشتند و نه توان ایجاد و یا تغییر را. در وب ۲٫۰، کاربران قادرند خود به ایجاد و خلق محتوا اقدام نمایند، آن را ساماندهی و تنظیم کنند، دیگران را در اطّلاعات و داشته‌های خود شریک و سهیم سازند، و یا به انتقاد و تغییر بپردازند.

البته این روز ها صحبت از وب 3 بسیار داغ است. نسل جدیدی از وب ، در واقع وب 3 اصطلاحی است که برای اشاره به وب آینده به کار می‌رود. پس از آنکه اصطلاح وب 2 برای تکامل اخیر وب رواج یافت، بسیاری از متخصصین، روزنامه نگاران و مسؤلان سایبری، اصطلاح وب 3 را به کار بردند تا فرضیاتی درباره موج آینده تغییرات اینترنت مطرح کنند. نظرات پیرامون مرحله بعدی سیر تکاملی وب، بسیار متفاوت است: برخی معتقدند پدیدار شدن تکنولوژی وب 3 یا وب مفهومی راه وب را تغییر خواهد داد و آن را به سوی هوش مصنوعی خواهد برد. دیگر نظریه پردازان اظهار می کنند که وب 3 افزایش سرعت اینترنت، اپلیکیشن های تحت وب، یا پیشرفت گزینه‌های دیگر است.

البته هنوز خیلی زود است که بخواهیم با قاطعیت درباره آن صحبت کنیم. حتی وب 2 هنوز از برخی جنبه‌ها در حال پیشرفت است. اما هیچ شکی نیست که همین حالا نیز فناوری‌های تازه شبکه در دانشگاه‌ها، مراکز پژوهشی و شرکت‌های پیشرو در دست بررسی و پایه‌گذاری‌اند.

لایه های تشکیل دهنده رایانش ابر ی

 

Layers

 

با این که مدل معماری سرویس گرا طرفدار عنوان “همه چیز به عنوان سرویس” با عنوان EaaS یا XaaS است، اما ارائه دهنگان خدمات ابری خدمات خود را بر اساس مدل متفاوتی که بر اساس مدل استاندارد NIST است ارائه می دهند که شامل سه لایه زیر است.

  • نرم افزار به عنوان سرویس
  • بستر به عنوان سرویس
  • زیرساخت به عنوان سرویس

نرم افزار به عنوان سرویس 

در این مدل، ارائه دهندگان ابر نرم افزار کاربردی را در ابر نصب و راه اندازی کرده و کاربران ابری از طریق کلاینت های ابری به نرم افزار دسترسی پیدا می نمایند. کاربران ابری زیرساخت های ابری بستر را که در آن نرم افزار کاربردی در حال اجرا است مدیریت نمی نمایند. این امر نیاز به نصب و اجرای برنامه بر روی کامپیوتر خود کاربر ابری را از بین برده تعمیر و نگهداری و پشتیبانی را  آسان می سازد. آنچه باعث می شود یک برنامه ابری از برنامه های دیگر متفاوت باشد، خاصیت ارتجاعی آن است. این می تواند با تکثیر وظایف بر ماشین های مجازی چندتایی در زمان اجرا برای برخورد با تقاضای کاری در حال تغییر بدست آید.

متعادل کنندگان بار، کار را بر روی مجموعه ای از ماشین های مجازی توزیع می نمایند. این روند برای کاربر ابری که فقط یک نقطه دسترسی را می بیند نامحسوس است. برای اسکان دادن تعداد زیادی از کاربران ابری، برنامه های کاربردی ابری را می توان چند مستاجری نمود طوری که، هر دستگاه در خدمت بیش از یک سازمان کاربری ابری خواهد بود معمول است که به انواع خاصی از ابرها مبتنی بر نرم افزار کاربردی با شرایط نامگذاری مشابه اشاره کنیم:

دسکتاپ به عنوان یک سرویس، فرآیند تجاری به عنوان یک سرویس- محیط تست به عنوان یک سرویس، ارتباط به عنوان یک سرویس.

مدل قیمت گذاری برای برنامه های کاربردی SaaS مسطح است که به طور معمول بصورت هزینه ماهانه یا سالانه برای هر کاربر در نظر گرفته می شود. نمونه هایی از SaaS عبارتند از: نرم افزار های گوگل، پرشین آنلاین و Salesforce.com.

 

بستر (پلتفرم )به عنوان سرویس

شاید یکی از کمرنگترین محصولات عرضه شده در عرصه محصولات رایانش ابری خدمات پلتفرم به عنوان سرویس یا PaaS باشد.علت این امر جدید بودن محصولات این حوزه و آشنا نبودن استفاده کنندگان از این فن آوری است.

اما به جرات می توان گفت که استفاده از یک این سرویس باعث رشد سریع پروژه های نرم افزاری می گردد. در اغلب اوقات توسعه دهندگان و نویسندگان نرم افزارهای تحت وب تحصص زیادی در زمینه مدیریت سرور و همچنین تنظیمات شبکه و … و از همه مهمتر توسعه پذیری سیستم بصورت خودکار ندارند.

استفاده از فن آوری بستر به عنوان سرویس شاید بتواند در این راه که همه با سرعت زیادی در تلاش برای ارایه محصولات و خلق آثار جدید هستند در زمان راه اندازی و توسعه نرم افزارهای تحت وب کمک شایانی بنماید. شرکتهای زیادی از جمله Google و Microsoft و جدیدا شرکتهای VMware و RedHat نیز بامحصولات خود به این عرصه حضور یافته اند در این بین شاید یکی از محصولات قابل استفاده برای ما در ایران استفاده از محصول شرکت RedHat با نام Openshift باشد.

Paasمحیط درحال اجرای (runtime) برای برنامه های کاربردی فراهم می کند.  به علاوه ، ابزارهایی برای توسعه و گسترش اپلیکیشن ها ارائه می دهد. PaaS یک ابزار دارد به نام” اشاره و کلیک” که شرکت­های معمولی را قادر می سازد اپلیکیشن های تحت وب خود را ایجاد کنند.

به عنوان مثال توسعه دهنده عضو این سایت ها می شود و خود اپلیکیشن های تحت وب خود را به صورت رابط گرافیکی تحت وب می سازد . البته توسعه دهنده می تواند لیست برنامه های تحت وبی که هریک از این دو شرکت ارائه می دهند را در سایتشان ببیند . اما یک اشکال استفاده از PaaS این است که توسعه دهنده با یک فروشنده جزئی قفل می شود . برای مثال ، یک برنامه کاربردی که به پایتون نوشته شده در مقابل API گوگل که Google’s App Engine را مورد استفاده قرار می دهد، شبیه این است که فقط در همان محیط کار میکنید . بنابراین ، قفل فروشنده بزرگترین مشکل در PaaS است .

انواع PaaS

محیط های فقط تحویل اپلیکیشن

که برنامه ها را به طور امن و براساس تقاضا ارائه می دهد .

محیط های توسعه Stand-alone

که به عنوان یک موجودیت مستقل برای یک تابع خاص کار می کند .

بستر باز به عنوان یک سرویس

که یک نرم افزار کدبازی برای اجرای برنامه ها به ارائه دهنده PaaS ارائه می دهد.

تسهیلات توسعه ADD-ON

که اجازه شخصی سازی بستر SaaS موجود را می دهد .

 

زیرساخت به عنوان سرویس

زیر ساخت به عنوان سرویس دسترسی به منابع اصلی همانند ماشین های فیزیکی ، ماشین های مجازی، فضاهای ذخیره سازی مجازی و غیره را فراهم می کند. به جز این منابع ، دیسک های ذخیره سازی ماشین های مجازی ، Vlan ها ، load balancer ها ، آدرس های IP و بسته های نرم افزاری را نیز عرضه می­کند .

همه منابع عنوان شده ، برای کاربران انتهایی از طریق مجازی سازی سرور در دسترس اند . اگر خود مشتری بخواهد ،خود این منابع هم در دسترس مشتری قرار می گیرند.

IaaS

IaaS   به ارائه دهنده ابر این امکان را می دهد که به طور رایگان زیرساخت را روی اینترنت قرار دهد به طوریکه از نظر هزینه سودآوری داشته باشد. می توانیم بخشی از مزایای کلیدی IaaS را شامل موارد زیر برشماریم:

  • کنترل کامل منابع محاسباتی از طریق دسترسی اجرایی به ماشین های مجازی (VM) ها:
  • به مشتری اجازه دسترسی به منابع محاسباتی را با فراهم کردن دسترسی اجرایی به ماشین های مجازی به یکی از روش های زیر، می دهد:
  • مشتری دستور اجرایی ای را برای ارائه دهنده ابر صادر می کند تا ماشین مجازی را راه بیندازد یا داده ها را روی سرور ابری ذخیره کند .
  • مشتری دستور اجرایی را برای ماشین های مجازی ای که صاحبشان است ، صادر می کند تا وب­سرورها ی آنان را راه بیندازند یا برنامه های کاربردی جدید را نصب کنند. .
  • اجاره مناسب و انعطاف پذیر سخت افزار کامپیوتر
  • منابع زیر ساخت همانند ماشین های مجازی، فضای ذخیره سازی، پهنای باند، آدرس­های اینترنتی، سرویس های مانیتورینگ، فایروال ها و غیره ، همه به صورت اجاره ای در دسترس مشتری ها قرار می گیرند .
  • مشتری بنا به مدت زمانی که قصد دارد از یک منبع استفاده کند ، اجاره بهای آن را پرداخت می­کند. هم چنین با دسترسی اجرایی به ماشین های مجازی ، مشتری می تواند هر نرم افزاری که می خواهد حتی یک سیستم عامل را اجرا کند .

اما زیرساخت به عنوان سرویس ، مشکلاتی با نرم افزار به عنوان سرویس و بستر به عنوان سرویس دارد مثلا وابستگی شبکه و مشکلات مربوط به مرورگر . هم چنین به خودی خود نیز مشکلاتی دارد که در شکل زیر نشان داده شده است:

مشکلات زیرساخت هب عنوان سرویس

سازگاری با قابلیت آسیب پذیری امنیتی

زیرساخت به عنوان سرویس به مشتری این امکان را می دهد که نرم افزارهای قدیمی را در زیرساخت ارائه شده اجرا کنند، همین کارمشتری را در معرض آسیب پذیری امنیتی نرم افزار قرار می دهد.

پراکندگی ماشین های مجازی

ماشین مجازی می تواند به روز نباشد چراکه زیر ساخت به عنوان سرویس به مشتری این امکان رو می دهد که ماشین مجازی اش را در حالت اجرا ، suspended یا خاموش قرار دهد . هرچند ، ارائه دهنده می تواند به طور خودکار ماشین های مجازی را به روز کند اما این مکانیزم هم سخت است و هم پیچیده.

قدرت ایزوله سازی سطح مجازی سازی

زیر ساخت به عنوان سرویس یک محیط ایزوله ای برای هر مشتری از طریق هایپروایزر ایجاد می کند .هایپروایزر یا ناظر ، یک لایه نرم افزاری است که شامل پشتیبانی سخت افزاری از مجازی سازی است تا یک کامپیوتر فیزیکی رو به چندین ماشین مجازی تقسیم کند .

شیوه های پاک کردن داده

مشتری ماشین مجازی ای را استفاده می کند که قبلا توسط ارائه دهنده ابر به یک مشتری دیگر ارائه شده بوده . زمانی که مشتری منابع را آزاد می کند ، ارائه دهنده ابر باید مطمئن شود که مشتری بعدی که می­خواهد منبع را اجاره کند، داده های مشتری قبلی رو نخواهد دید .

 

در نهایت در شکل زیر  می توان خدمات ارائه شده در سه لایه اصلی سرویس های ابری را مشاهده نمود:

خدمات رایانش ابری در یک نگاه

بر طبق آمار جامعه آزاد رایانش ابری ایران نمودارهای زیر ضمن ارائه دسته‌بندی توزیع انواع سرویس‌های ابری در ایران، درصد حضور هریک از سرویس‌های زیرشاخه آن‌ها را نشان می‌دهند.

درصد حضور رایانش ابری در ایران
درصد سرویس های مبتنی بر ابر در ایران

پست های مرتبط

آشنایی با رایانش ابری (قسمت اول)

حامد
اشتراک دانش رو دوست دارم برای همین سعی میکنم مطالب آموزشی ای تهیه شده دارای جزئیات خوب و به صورت کامل تهیه بشوند.استفاده از مطالب این سایت در هر جایی بلا مانع می باشد. اما ذکر منبع رفتاری حرفه ای و اخلاقی خواهد بود. من را از نظرات خود مطلع سازید. و اگر میخواهید در مورد من بیشتر بدانید سری به صفحه "در باره من" بزنید.