واقعا اوپن استک چیست و به چه کاری میاد و چه اجزایی داره؟ در این مقاله به سوال OpenStack چیست به ساده ترین شکل ممکن پاسخ میدیم . بیشتر دوستانی که مطلبی در خصوص OpenStack به زبان فارسی منتشر کردن به نظر میرسه بیشتر علاقه مند به تاریخ باشن تا اینکه بخان مباحث فنی رو دنبال کنن و من برعکس همه عزیزان قصد دارم به زبان بسیار ساده ، برای افرادیکه حتی تا به حال اسم OpenStack رو نشنیدن ، این مبحث رو آموزش بدم . خوب سئوال رو باید از اینجا شروع کرد که OpenStack چیه ؟ خوب اگر به همین سادگی قرار بود جواب سئوال رو بدیم که کل مقاله بیخود بود ! پس باید از یه سئوال ساده تر شروع کنیم !!! سئوال ساده تر این هست که Cloud Computing چی هست و برای چی ما از Cloud Computing و سرویس هاش استفاده می کنیم ؟
به زبان زیادی ساده ! وقتی صحبت از Cloud Computing می کنیم یعنی یک سری سرور هستند در اینترنت یا در شبکه های داخلی ، که اگه در اینترنت و بصورت عمومی سرویس بدن میشن Public Cloud و اگر داخلی و برای شبکه های سازمانی باشن میشن Private Cloud !!! که این سرورها پیچیدگی ها رو از سمت کاربر میگیرن ! یعنی چی ؟ یعنی باز هم به زبان ساده ، کاربر هیچوقت درگیر این مسائل نمیشه که چه نوع سخت افزاری میخام ! منابع دیسک و RAM و ... کمبود دارم !
چه نوع سیستم عاملی میخام و ... همه چیز در محیط Cloud آماده میشه و تحویل کاربر میشه و کاربر فقط و فقط نتیجه کار رو میبینه ! برای کاربر اصلا مهم نیست داده هاش دارن کجا ذخیره میشن ! پردازش هاش دارن روی کدوم سرور انجام میشن و اصلا مهم نیست که بکاپ داریم از سرورمون یا نه ! همه اینها وظیفه محیط مدیریتی هست که این پلتفرم Cloud رو در اختیار ما قرار داده ...
خوب تا اینجای کار متوجه شدیم که حدودا Cloud چی هست ! خوب قطعا این محیط Cloud همینجوری دورهمی مدیریت نمیشه ! بلکه یک نرم افزار هست که داره پشت زمینه کار می کنه و یک چهره یا رابط کاربری هم داره که خیلی ساده در اختیار کاربر قرار می گیره تا پیچیدگی کار رو برای کاربر کم کنه ! اینجاست که یه جرقه ای باید توی ذهن شما روشن بشه که آهاااااا پس OpenStack همون محیط مدیریتی یا پلتفرم مدیریتی Cloud هست ! درسته ؟
جوابش اینه که بله ، تا حدود زیادی درسته اما به همین سادگی هم نمیشه گفت که یک نرم افزاره ! حالا جلوتر متوجه میشید که خیلی فراتر از یک نرم افزار هست ... خوب باز هم قبل از اینکه بریم دنبال ادامه ماجرا یه کم منطقی تر برخورد کنیم ! خوب همین Cloud رو نگفتی که چه سرویس هایی ارائه میده ؟ خوب اینجا مهم میشه ! چرا ؟ چون قراره دقیقا بدونید OpenStack چیکار می کنه ! ببینید به زبان باز هم بسیار ساده سه نوع سرویس اصلی در محیط های Cloud ارائه میشن ! یا ما میایم مثلا یه سری منابع زیرساختی مثل هارد دیسک ، CPU و RAM و اساسا ماشینهای مجازی رو از سرویس دهنده Cloud دریافت می کنیم ! مثلا یک ماشین مجازی ویندوز سرور 2012 نسخه R2 میگیریم که 12 گیگ RAM و مثلا 4 هسته CPU داره !!!
این رو بهش میگن Infrastructure As A Service که مخففش میشه IaaS !! نوع دوم سرویس هایی که از Cloud دریافت می کنیم اینه که مثلا یک نرم افزار رو شما به عنوان یک کاربر نهایی ( Dummy User ) می خاین استفاده کنید ! مثلا نرم افزار Office رو بصورت آنلاین در سرویس های Cloud نیاز دارید که استفاده کنید ! اگه بخایم مثلا بزنیم ، سرویس Office365 مایکروسافت که روی بستر Cloud مایکروسافت که به اسم Azure هست داره سرویس دهی می کنه یک نوع Software As A Service یا SaaS هست !! و در نهایت برای اینکه زیاد بحث رو ادامه ندیم شما نیاز دارید که یک پلتفرم ( یک بستر و زیرساخت برای توسعه و رشد ... ) رو بصورت آنلاین دریافت کنید مثلا شما نیاز دارید که سرویسی مثل محیط برنامه نویسی ویژوال استودیوی مایکروسافت یا MySQL رو نیاز دارید که بصورت آنلاین از محیط Cloud استفاده کنید ! اینجا دارید شما از Platform As A Service یا PaaS استفاده می کنید !
خوب با کلیات آشنایی پیدا کردید ؟ بریم سراغ تعریف ساده OpenStack که چی هست ! ببینید مایکروسافت اومده برای خودش یک محیط Cloud به نام Microsoft Azure ارائه داده که سرویس های IaaS و PaaS و SaaS رو بصورت سه گانه ارائه میده و فقط هم بصورت عمومی سرویس میده یعنی شما نمی تونید بیاین Private Cloud با Microsoft Azure تا جاییکه سواد من میرسه ایجاد کنید ! در همین حین شرکت آمازون هم اومده یک سرویس Cloud دیگه به نام Amazon Web Services ارائه کرده که بصورت مخفف بهش میگن AWS و اون هم سرویس های متنوع Cloud رو ارائه میده اما باز هم مثل مایکروسافت خصوصی بودن تو کارش نیست !
خوب اینجای کار میشه که Open Source کارها به غرورشون بر می خوره و با خودشون میگن چه معنی داره که اینها Closed Source باشن و خودخواه ! ما هم میایم و یک Cloud Platform یا یک محیط مدیریتی Cloud کاملا Open Source ایجاد می کنیم ! اسمش رو گذاشتن OpenStack .... اما نکته اینجاست که فعلا OpenStack فقط سرویس IaaS ارائه میده یعنی چی ؟ یعنی فقط به شما سرویس های منابع ذخیره سازی ، منابع پردازشی مثل RAM و CPU و VM و اساسا اینجور چیزها رو ارائه میده اما نکته اینجاست که شما می تونید داخل سازمان خودتون هم برای راه اندازی Private Cloud از این OpenStack استفاده کنید .
خوب خدارو شکر تا اینجای کار متوجه شدیم که OpenStack یک مجموعه نرم افزار یا یک پلتفرم هست ، Open Source هست یعنی هر کسی می تونه به توسعه و رشد و پیشرفتش کمک کنه و یه چیزی براش بنویسه ، زیرساخت در قالب سرویس یا IaaS هست و شما می تونید در کسری از دقیقه ماشین مجازی خودتون رو با هر پیکربندی که نیاز داشته باشید ازش بخاین و ایجاد کنید . حالا سئوال دیگه ای که پیش میاد اینه که خوب مگه نمیگی ماشین مجازی ؟
یعنی VM !!! خوب این VM ها رو خود OpenStack ایجاد می کنه ؟ یعنی OpenStack یک هایپروایزور هست ؟ خوب اینجاست که خیلی از دوستان اشتباه می کنن ، در حقیقت OpenStack هیچوقت یک هایپروایزور مثل ESXi یا Hyper-V و KVM و Open-VZ و حتی Docker و ... نیست بلکه یک محیط مدیریتی و نظارتی هست که میاد روی همه اینها نظارت و مدیریت می کنه ، به زبان ساده تر OpenStack می تونه همه اینها رو با هم یکپارچه کنه ! کاربر بدون اینکه بدونه از چه نوع VM ای روی چه هایپروایزوری داره استفاده می کنه از ماشین مجازیش می تونه استفاده کنه که همون هدف Cloud هم هست که کاربر درگیر پیچیدگی های Cloud Computing نمیشه ...
به OpenStack میگن آینده پردازش ابری ! تعارفی در کار نیست ! دومین پروژه محبوب Open Source در دنیا بعد از پروژه کرنل لینوکس رو در حال حاضر می تونیم بگیم OpenStack هست ! صدها و شاید هزاران توسعه دهنده و برنامه نویس دارن روی این پلتفرم کار می کنن و روزانه هزاران و چه بسا ده ها هزار خط کد بهش اضافه میشه ! اما باز سئوال براتون پیش میاد که خوب این برنامه نویس ها چی برای OpenStack می نویسن ؟ به زبان ساده باید بگیم که OpenStack یک برنامه نیست !
مجموعه ای از برنامه هاست که کنار هم جمع میشن و یک پلتفرم قوی و کامل ایجاد می کنن ! نمیدونم با CMS یا سایت ساز وردپرس آشنایی دارید یا نه ! اگر ساده بگم فکر کنید OpenStack خود وردپرس هست و با Component ها و اجزایی که براش روزانه نوشته میشه سرویس های بهتری رو ارائه میده مثل Plugin های وردپرس و امکانات جدیدتری ارائه میده ! چه بسا در آینده نزدیک سرویس های SaaS و PaaS هم با همین Component ها بهش اضافه بشن . تا اینجای کار امیدوارم متوجه شده باشید کلیات OpenStack چی هست و در مقاله بعدی از این سری مقاله به بررسی Component ها یا اجزای اصلی سازنده این پلتفرم Cloud می پردازیم . اگر سئوالی دارید در ادامه همین مطلب عنوان کنید.
خوب تا اینجا شما متوجه شدید که ماهیت OpenStack چیست و به چه درد ما می خورد ! یکی از دوستان در قسمت اول هم سئوال مهمی پرسیدند که تفاوت OpenStack با سایر سرویس های Cloud در چیست ! که واضح توضیح دادیم که تفاوت آن در Open Source بودن است ! شما می توانید به Cloud خود ماژول های خودتان را اضافه کنید و برایش کد نویسی کنید و آن را توسعه دهید و از طرفی درگیر زیرساخت قضیه هم بشوید .
برعکس Azure و AWS که ما فقط در نقش کاربر هستیم و زیرساخت کاری به ما ندارد ! اما بگذریم ! اگر باز هم ابهامی در کار است در ادامه مطرح کنید ، قرار است امروز در خصوص مهمترین اجزا یا Component های OpenStack صحبت کنیم که کلی اسامی عجیب و غریب دارند و شما باید به عنوان یک OpenStack کار خود این اجزا و کاری که در پلتفرم OpenStack انجام می دهند را یاد بگیرید که در ادامه به زبان خیلی ساااده برای شما آنها را معرفی می کنیم :
آخی ! وقتی اسم نوا رو میشنوم یاد شورلت Nova میوفتم !! ببخشید ربطی نداشت ولی خوب نوستالوژیه دیگه ! این کامپوننت از OpenStack رو می تونیم بگیم هسته اصلی پردازشی این پلتفرم کلاود هست ، یعنی چی ؟ یعنی اینکه اون کار اصلی Cloud که بحث عدم نیاز به دونستن زیرساخت های مجازی سازی در سمت کاربر هست رو Nova انجام میده ! یعنی چی ؟ باز هم ساده تر می گم ، وقتی شما میگید OpenStack همه پلتفرم های مجازی سازی و هایپروایزورها رو یکپارچه تحویل کاربر میده بدون اینکه کاربر متوجه بشه از چه هایپروایزوری داره استفاده می کنه یعنی کاری که Nova انجام میده !
این Nova هست که ماشین های مجازی KVM لینوکسی ، ماشین های مجازی ESXi محصول VMWare ، ماشین های مجازی Hyper-V مایکروسافتی ، ساختار ماشین مجازی Container Based ای مثل Docker و حتی LXC ها رو با هم یکپارچه می کنه ! یعنی هسته اینجاست ! Core اینجاست!
قربونت برم اصل مطلب کلاود رو در OpenStack این قسمت هماهنگی پلتفرم های مختلف با هم انجام میده که همانا چیزی نیست جز Component ای به نام Nova و بس !!! البته فقط کارش به هماهنگی این پلتفرم ها ختم نمیشه ، قبلا هم گفتیم شما از OpenStack نیازهای IaaS رو میخاین ! یعنی منابع پردازشی و حتی پردازش موازی و ... حتی به مدت زمان معین شاید چند ساعت و چند روز ! اینکه کجا و روی چه ماشین مجازی و چه تکنولوزی انجام میشه برای شمای کاربر اصلا مهم نیست !
حالا اگه در این حین شما نیاز داشته باشید روی چندین سرور همزمان قدرت پردازشی تقسیم بشه ! همه سرورهای شما بصورت یکپارچه روی یک پردازش انرژی بزارن و در اصطلاح جمع کردن قدرت پردازشی رو داشته باشید که در اصطلاح خفنش بهش میگن HPC یا High Performance Computing اونکار رو هم Nova بر عهده داره .. باز هم به زبان ساده تر ، مدیریت پردازش ها و تعداد زیادی از ماشین های مجازی بر عهده Nova جون هست . پانوشت : HCP در لایه سخت افزار سرورها انجام میشه ، با VM ها الزاما درگیری نداره ... به تصویر پایین نگاه کنید !!! آخ من کشته مرده اون LibVirt ای هستم که مجازی ساز ایرانی ( KVM ایرانی ) میگه من ازش استفاده نمی کنم خخخخ
اسم سویفت که میاد یاد تراکنش های مالی بین المللی میوفتم ! چقدر تحریممون کردناااا !!! بگذریم وقتی راجع به Component ای به نام Swift در OpenStack صحبت می کنیم یعنی داریم در مورد یک فایل سرور صحبت می کنیم ! حالا نگید چقدر مثال مسخره ای هست درستش اینه باید بگیم Object Storage Cloud !! خوب بابا چرا می زنید ! باشه Swift یک Object Storage Cloud هست ! حالا به زبان آدمیزاد Object تو محیط Cloud چه چیزهایی هست ؟
هر چیزی که در قالب فایل نگهداری بشه بهش میگیم Object برای مثال فایل ها ، ویدیوها ، داده های تحلیلی ( Analytics Data ) ، محتوای وب ، فایل های بکاپ و خود بکاپ ، تصاویر ، ماشین های مجازی ، Snapshot های ماشین های مجازی و در کل هر داده ای که در قالب ساختار پایگاه داده و زیرساخت خود OpenStack نباشه و یه جور فایل غیر پیکربندی سیستمی باشه ! وظیفه مدیریتش بر عهده Swift هست . Swift یک بستر نگهداری و مدیریت فایل در OpenStack هست ، فکر کنید قرار هست یک ماشین مجازی ایجاد کنید! خوب دیدید که از Image ها برای اینکار استفاده میشه !
خوب این Image ها توسط Swift مدیریت میشه ، Swift کاری می کنه که تمامی هارد دیسک هایی که در مجموعه Cloud شما وجود دارند به شکلی واحد و یکپارچه دیده بشن ! یعنی اگر مفهوم Storage Cluster رو بدونید Swift رو هم درک کردید ! فکر کنید 100 تا هارد دیسک رو Swift میگیره از 30 تا سرور مختلف و چیزی که شما می بینید یک هارد دیسک مثلا 100 ترابایتی هست و مهم نیست روی کدوم سرور هست ! خوبیش می دونید کجاست ؟ اگه یکی دو تا و ... از این هارد دیسک ها از بین بره ، هیچ داده ای از بین نمیره و وظیفه مدیریت یکپارچه و ذخیره سازی روی هارد دیسک ها مثل یک RAID Controller بر عهده Swift هست .
هرچند که واژه cinder به معنی سیلندر هم هست ! اما ترجمه google translate به معنی سیب زمینی هم از آن یاد می کند ! میدونم هیچ ربطی نداشت ولی ترجمه سیب زمینی شاید به ساختار ذخیره سازی داده ها بصورت بلاکی ربط داشته باشه دیگه ! مثلا بلوک هارد دیسک رو سیب زمینی در نظر بگیریم ! در واقع Cinder مسئولیت ذخیره سازی بلوک های داده رو بر عهده داره ، اگر با انواع تجهیزات Storage تحت شبکه مثل SAN Storage ها و NAS Storage ها و حتی شبیه سازهاشون کار کرده باشید باید درک کنید که ساختار داده ای Block Based چی هست و چه کاربردی داره !
به زبان ساده تر ! وقتی در OpenStack ما می خایم برای یک VM هارد دیسک اختصاص بدیم ، این وظیفه Cinder هست که بره شبیه کاری که پروتکل iSCSI برامون انجام میده رو از طریق زیرساختش انجام بده و منابع دیسک رو به VM اختصاص بده ، اگه با SAN Storage هایی مثل NetApp یا HP و حتی EMC کار کرده باشید قشنگ درک می کنید اینجا چه اتفاقی می افته ! این Cinder هست که وظیفه Attach و Deattach کردن Block های هارد دیسک از این Storage ها به زیرساخت IaaS رو بر عهده داره ، البته وظیفه ایجاد کردن یا Create و حذف کردن یا Remove یا Delete رو هم همین Cinder بر عهده داره .
اگر با VMware NSX آشنایی داشته باشید حتما به سادگی کاربرد کامپوننت Neutron را متوجه خواهید شد . وقتی شما چند VM از یک محیط Cloud درخواست می کنید ، احتمالا نیاز دارید که این VM ها با هم در یک لایه شبکه اختصاصی باشند و در محیط کلاود شخص دیگری امکان دسترسی به آنها را نداشته باشد و ... به زبان ساده فرآیند پیکربندی شبکه مجازی یا همان Virtual Networking در محیط OpenStack بر عهده کامپوننت Neutron است .
ایجاد کردن VLAN و ایزوله کردن VM ها و فایروال و حتی IPS و IDS در این لایه و در این کامپوننت در OpenStack کار می کنند . به دلیل همین فرآیند شبکه سازی اختصاصی در محیط Cloud اوپن استک ، سرعت ارتباطی بین سرورها هم از این طریق بیشتر می شود . پس هر جا در OpenStack اسم نوترون را شنیدید یاد شبکه مجازی در محیط مجازی بیوفتید .. شنیده ها حاکی از آن است که نوترون باعث بالا رفتن سرعت ارتباط بین Component های مختلف OpenStack هم می شود که روش انجام اینکار را حداقل من نمی دارنم ! اگر می دانید در ادامه مطرح کنید .
می دونم که اگه جزو افرادی باشید که با محصولات VMware کار کرده ، وقتی به اسم Horizon برخورد می کنید تصورتون این هست که مثلا داریم در مورد VDI در OpenStack صحبت می کنیم ، این تصور رو کلا دور بریزید چون هیچ ربطی به OpenStack نداره و یک مفهوم کاملا مستقل هست . Horizon در واقع اون چیزی هست که در سمت کاربر دیده میشه ، رابط کاربری تحت وبی که از طریق اون ما کلیه ماژول های OpenStack رو می بینیم
و می تونیم محیط کلاود رو مدیریت کنیم رو بهش میگن Horizon ، به زبان فنی همون داشبورد مدیریتی گرافیکی که در جستجوی گوگل از محیط OpenStack می بینید همون Horizon هست. این کامپوننت ملموس ترین کامپوننت OpenStack هست که کاربر باهاش ارتباط میگیره و می تونه محیط Cloud رو و اتفاقاتی که روی محیط Cloud اش میوفته رو مشاهده کنه .Horizon طبق ذات معمول OpenStack با استفاده از زبان برنامه نویسی پایتون و فریمورک جانگو نوشته شده است و روی وب سرور آپاچی ( اگه اشتباه نکنم ، چون کلا پروژه اصلی مبتنی بر آپاچی هست ) اجرا می شود.
نه اصلا فکرشم نکنید ! هیچ ربطی نداره به اون Keystone ای که سالها تو شبکه در حوزه Passive ازش استفاده کردید ! فراموشش کنید !! هر سیستمی که در حوزه کلاود پیاده سازی می شود در نهایت دارای سطوح دسترسی و مجوزهای عبور و سیستم احراز هویت باید باشد ، Keystone به عنوان OpenStack Identity Service شناخته می شود و یک سیستم یکپارچه برای مدیریت کاربران OpenStack ایجاد می کند
تقریبا شبیه کاری که اکتیودایرکتوری ( LDAP ) در سرویس های مایکروسافتی انجام می دهد با این تفاوت که روش های مختلف احراز هویتی در Keystone از جمله Username و Password ، روش استفاده از Token برای لاگین کردن و حتی مکانیزم لاگین آمازونی AWS در Keystone قابل استفاده هستند. تمام کاربرانی که در فضای OpenStack Cloud تعریف می شوند توسط کامپوننت Keystone مدیریت می شوند .
آقا من یه چیزی میگم نخندید تو رو خدا ولی در انگلیسی Glance به عنوان OpenStack Image Service در محیط OpenStack نام می برند ! حالا یه بنده خدایی در یک وب سایتی که بسیار مدعی مجازی سازی در ایران هستند در تعریف سرویس یا کامپوننت Glance میگه که خدمات تصویر در OpenStack را انجام می دهد !!
یعنی اینقدر بیسوادی که نمیدونه در محیط مجازی سازی و Cloud وقتی صحبت از Image میشه منظور ما Image سیستم عامل ها و Template یعنی سیستم عامل های آماده برای نصب هست نه تصویر !! بگذریم !!! به زبان ساده کاربرد کامپوننت Glance در OpenStack مدیریت و انجام کارهای مرتبط با Image های دیسک و Image های سیستم عامل ( سرورها ) در فضای کلاود هست .
Glance وظیفه شناسایی یا Discovery ، ثبت کردن یا Registration و ارائه یا Delivery سرویس های مربوط به دیسک و سرور (Image) هاش رو بر عهده داره ، دقت کنید ذخیره سازی بهش ارتباطی نداره یعنی فضای ذخیره سازی ارتباطی بهش نداره اون کارش با Swift هست
ایجاد کردن فالب های آماده از سیستم عامل ها و گرفتن Snapshot ها و در نهایت ایجاد کاتالوگی آماده از سرورها برای انتخاب کردن و فعال سازی در محیط Cloud با استفاده از Glance انجام میشه ... باز هم برای ساده سازی بیشتر ، اگر با استفاده از Template ها و Clone ها در VMware آشنایی داشته باشید و Deploy کردن ماشین های مجازی !! Glance چیزی شبیه به اینکار را در OpenStack انجام می دهد.
هرجا در سرویس های کلاود و هر سرویس اینترنتی کلمه متر اومد ! یعنی قراره حساب کتاب کنیم چقدر باید پول بدید ! کامپوننت Ceilometer هم همینه عزیزم ! یعنی یک سیستم اکانتینگ و Billing هست که بصورت آنلاین و در لحظه وقتی کاربر منابع درخواستی خودش رو انتخاب می کنه ، بلافاصله هزینه هایی که نیاز هست براش پرداخت بشه رو محاسبه و بهش اعلام می کنه و در واقع قسمت تجاری و Business ماژول OpenStack محسوب میشه .
شما با استفاده از Ceilometer هست که ایده های تجاریتون رو می تونید در OpenStack پیاده سازی کنید ، مثلا اگر قرار هست به ریال محاسبه بشه و بره تو شبکه شتاب پرداختی داشته باشه از این قسمت باید استفاده بشه . صدور فاکتور و قبض از جمله سرویس هایی هست که در این کامپوننت اجرایی میشه و از طرفی الگوبرداری از سرویس های مشابه اکانتینگی مثل Microsoft Azure و AWS هست که به ازای IaaS هاشون مبلغی شارژ باید پرداخت بشه .
خوب رسیدیم به بخش داغ OpenStack جاییکه Template های Hot ما تبدیل به نیاز کاربر میشن ! کامپوننت Heat به عنوان OpenStack Orchestration Program معروف هست که واژه Orchestration به معنی تنظیم یا تنظیمات است ! حالا دقیقا چیکار انجام میده ؟ باز هم به زبان ساده بگیم که وقتی کاربر نیاز به مثلا یک VM داره ! این VM برای خودش یک سیستم عامل با نسخه مشخص داره ، هارد دیسک داره به اندازه ای که کاربر نیاز داره ، نوع هارد دیسک داره ، اندازه RAM و تعداد هسته CPU و نوع CPU داره ، تعداد آدرس IP باید مشخص باشه و خیلی از تنظیمات دیگه ، تا اینجا که اوکی هستید ؟
خوب این اطلاعات باید در یکجا وارد بشه ، انتخاب بشه ، بعد به سمت هسته اصلی OpenStack هدایت بشه و اونجا بر اساس تنظیماتی که گفته شده ماشین مجازی مورد نظر یا منابع درخواستی کاربر ایجاد بشه و بهش تعلق بگیره ، وظیفه اینکار بر عهده مجموعه API و برنامه یا کامپوننت Heat هست .
برنامه Heat که خودش چند قسمت داره بصورت کلی یک سری Template داره ، این Template ها هستن که میگن مواردی که گفتیم چی باشه و چقدر باشه و چه مشخصاتی داشته باشه ، اگه مبهمه یادتون بیوفته که فایل vmx ای که تنظیمات ماشین مجازی VMware رو داخل خودش نگه می داره تقریبا چیزی شبیه به همین Template ای هست که Heat ازش استفاده می کنه .
خوب پس Heat با استفاده از Template هایی که داره و یا ما براش ایجاد می کنیم ، یک خط فرمان هم داره و یه سری دستورات ، Template رو میگیره می بره به سمت Heat Engine قسمت دوم ماجرا ! توی این قسمت دوم از طریق Template منابع و موارد خواسته شده از سایر کامپوننت ها دریافت میشن و یکپارچه در اختیار کاربر قرار می گیرند ، تنظیمات یا Orchestration به زبان ساده یعنی Heat میاد از سایر کامپوننت ها مثل Nova و Cinder و Swift و ... منابع رو میگیره و یه چیز کامل رو ایجاد می کنه ....
همانطور که قبلا هم گفتیم OpenStack یک سرویس Cloud است که در حال حاضر با IaaS شروع به کار کرده است اما قطعا قرار نیست محدود به IaaS باقی بماند . پروژه Trove به عنوان OpenStack Open Source Database as a Service Mission معروف است و همانطور که مشخص است به عنوان یک Mission یا یک هدف سرویس DaaS یا Database As A Service در محیط کلاود را می خواهد ارائه بدهد .
یعنی شما به جای اینکه خودتان سرور بگیرید و مثلا روی سرور MSSQL یا MySQL یا سایر Database Engine ها را ایجاد کنید ! فقط یک Database Engine ایجاد می کنید و از آن بصورت آنلاین استفاده می کنید بدون نیاز به اینکه بدانید پس زمینه چه سیستم عاملی است و چه منابعی دارد ! این برنامه می تواند هم Database Engine های Relational مثل MSSQL و MySQL و Maria-DB را ارائه بدهد و هم ساختارهای دیتابیس غیر Relational را ارائه بدهد .
اگر قبلا با پروژه Hadoop آپاچی آشنایی دارید که هیچ ! اگر ندارید هیچ مشکلی نیست چون الان متوجه می شوید که چه ارتباطی بین Sahara و Hadoop وجود دارد . برخی اوقات در محیط کلاود شما Application های تحت وبی دارید که نیاز به قدرت پردازشی بسیار بالا دارند و از طرفی نیاز به تقسیم کردن پردازش ها بین چند سرور نیز وجود دارد ، در این میان قبلا پروژه ای به نام Hadoop برای پردازش های Big Data وجود داشت که تقریبا این روزها زیاد طرفدار ندارد ، Sahara به شما قابلیت Clustering سرورهای application های تحت وب را می دهد و امکان توزیع کردن پردازش ها بین سرورهای کلاستر را فراهم می کند . به زبان ساده امکان پردازش داده های کلان در آینده از آن Sahara است . این پروژه قبلا به اسم Savanna مطرح بود .
آیرونیک یکی از پروژه هایی است که درون OpenStack به تازگی ( دو سه سالی هست ) قرار گرفته است و امکان ارائه Bare Metal As A Service را به کاربران OpenStack می دهد ! خوب یه مقدار از ادبیات اساسی استفاده کردیم ! به زبان ساده برخی اوقات شما به عنوان کاربر نیاز دارید که برای انجام کارهای پردازشیتون ، خودتون سیستم عامل رو نصب کنید ، خودتون سرویس ها رو پیکربندی کنید و از طرفی واسط مجازی سازی رو نمیخاین داشته باشید چون برای بالا بردن کارایی ارتباطی مثلا با Storage نیاز دارید که لایه واسط حذف بشه ! آیرونیک به شما این قابلیت رو میده که به جای ماشین مجازی ! شما یک سخت افزار ( سرور سخت افزاری ) در اختیار بگیرید و هر جور خودتون دوست دارید پیکربندیش کنید !
فکر کنید از راه دور با استفاده از پروتکلی مثل VNC یا قابلیت های سروری مثل IPMI به سرور وصل میشید و سرور هم تحت شبکه از طریق PXE کارت شبکه IP گرفته و شما Image رو Mount می کنید و شروع به کار می کنید ! جالبه بدونید OpenStack رو شما می تونید بصورت جداگانه روی OpenStack برای خودتون نصب و راه اندازی کنید !! باور کنید ! فرض کنید
شما میخاین ابر خصوصی یا Private Cloud ای داشته باشید که مخصوص شرکت خودتون باشه اما از یک محیط عمومی OpenStack استفاده می کنید ! بهش میگن TripleO یا پروژه OpenStack Over OpenStack !! که اون هم جزو کارهایی هست که آیرونیک امکان انجام شدنش رو به شما میده . هر کسی ازتون پرسید Ironic چیکار می کنه بگید ماشین ها رو بصورت Bare Metal ایجاد میکنه ! اگه گفت ممنون بدونید نفهمیده ... توضیح بدید Bare Metal یعنی چی ... والا ...
زاکار یا Zaqar سرویس Messaging و Notification پروژه OpenStack است . به زبان ساده چت کردن ! اطلاع رسانی ! ارتباط گیری ! دریافت هشدارها و خطاها و اطلاع رسانی هایی که در کل مجموعه OpenStack انجام می شود تحت نظر Zaqar انجام می شود. کاربرد اصلی این سرویس برای پیام رسانی بین Web Developer ها هست و طبیعتا اونقدر نمیشه گفت سرویس حیاتی هست در کلاود ، ولی به هر حال جزو کامپوننت هایی هست که شما اگر استفاده کنید قطعا متوجه میشید که چه اتفاقاتی داخل مجموعه داره رخ می ده و می تونید با دیگران هم ارتباط بگیرید.
بصورت خلاصه باید بگم که کامپوننت های OpenStack هم زیاد هستند و هم بعضا قرار نیست از همشون استفاده بشه چه بسا ما در مورد Manilla ، Desginate ، Searchlight و Barbican صحبتی در این مقاله نکردیم . امیدوارم کلیات بحث OpenStack در این سه مقاله به خوبی و به زبان ساده برای دوستان باز شده باشه ، اگر سئوالی هست در خدمتم ، فحش گذاشتم هر کسی بدون منبع این مطلب رو کپی کنه ! والا ... یه هفته درگیر ساده نویسی بودم کم چیزی نیست ! به نام خودتون نزنید ! خخخ ( منبع : توسینسو )