امروزه نرم افزار های بسیاری برای ایجاد و مدیریت پلتفرم های پردازش ابری عمومی (Public) یا خصوصی (private) وجود دارد که یکی از آنها نرم افزار openstack است. در این مقاله می خواهیم به openstack بپردازیم و کلا به پاسخ این پرسش برسیم که نرم افزار openstack چیست ؟
اپن استک یا open stack چیست؟
نرم افزار OpenStack به کاربرانش اجازه می دهد که ماشین های مجازی و دیگر موارد را گسترش دهند تا امور مختلف را در محیط ابری روی آسمان به بهترین نحو مدیریت کنند.
نرم افزار اپن استک پیمایش افقی را آسان می کند، به این معنی که وظایفی که بایستی انجام شوند به جای این که بصورت همزمان در یک سیستم مشخص انجام شوند می توانند به راحتی روی چندین یوزر عضو Open Stack انجام شوند تا از قدرت پردازش خیلی بالاتری استفاده کنند. برای مثال یک اپلیکیشن موبایل را فرض کنید که جهت سرویس دهی نیاز دارد با یک سرور ارتباط برقرار کند.
این اپلیکیشن می تواند ارتباط خود را به جای این که با یک سرور برقرار کند با چندین یوزر OpenStack برقرار کند تا عملیاتی که قصد انجام آن را دارد روی چندین یوزر با قدرت های متفاوت انجام دهد. با این کار می تواند از نیروی پردازشی بالاتری استفاده کند. در واقع OpenStack پروژه ای است که تلاش می کند تمام یوزر هایی که در یک مجموعه دارد را به عنوان یک سرور قدرتمند در کنار هم قرار دهد. مدیریت استفاده از این منابع کاریست که OpenStack انجام می دهد.
از همه مهمتر، OpenStack یک پروژه متن باز ( open source چیست ) است به این معنی که هر کسی که بخواهد می تواند دسترسی به متن و کد های OpenStack داشته باشد، تغییرات مورد نیاز خود را روی آن اعمال کند و بر اساس نیاز خود آن را Custom سازی کند ودر نهایت بصورت رایگان عضو جامعه بزرگ OpenStack شود! این به این معنی است که OpenStack این فایده را دارد که هزاران توصعه دهنده در سطح دنیا می توانند پشت سر هم در جهت تولید محصولات قوی تر، تنومند تر و ایمن تر فعالیت کنند.
تاریخچه open stack
تاریخچه openstack به شرکت Rackspace و ناسا در سال ۲۰۱۰ بازمیگردد و طراحی آن به منظور ایجاد و مدیریت پلتفرم های پردازش ابری Public و private انجام شده است.
نرم افزار OpenStack توسط برخی از بزرگترین کمپانی های تولید نرم افزار و هاستینگ و همچنین هزاران نفر از اعضای جامعه فردی پشتیبانی می شود. بسیاری بر این عقیده هستند که OpenStack آینده پردازش ابری در دنیاست. OpenStack توسط بنیاد OpenStack مدیریت می شود که یک سازمان غیر انتفاعی جهت نظارت توسعه و جامعه سازی در رابطه با این پروژه می باشد.
اپن استک چگونه در یک محیط ابری مورد استفاده قرار می گیرد؟
مفهوم Cloud این است که پردازش را برای کاربران نهایی در محیط ارتباط از راه دور (مثلا تحت وب) تهیه می کند. به این معنی که نرم افزار واقعی به عنوان یک سرویس (As a Service) روی سرور های قابل اطمینان و قدرتمند اجرا می شود نه روی کامپیوتر های کاربران نهایی. در واقع قدرت کامپیوتر کاربر اهمیتی نداشته و تمامی پردازش ها روی سرور های ابری انجام می شود.
رایانش ابری چیز های خیلی زیادی را ارائه و پیشنهاد می کند اما معمولا این صنعت از راه اندازی موارد مختلف به عنوان یک سرویس (As a Service) سخن می گوید که سه قسمت دسته بندی می شود:
- نرم افزار (Software)
- پلتفرم (Platform)
- زیرساخت (Infrastructure). OpenStack به عنوان Infrastructure as a Service (IaaS)
فراهم آوردن یک زیر ساخت یا infrastructure به این معنی است اوپن استک این امکان را فراهم می کند که کاربران خیلی سریع و ساده نمونه های کاری جدید ایجاد کنند. سپس بر اساس Infrastructure دیگر اجزی Cloud می تواند اجرا شود. به طور معمول بعد از Infrastructure یک Platform ساخته می شود، سپس توسعه دهنده می تواند اپلیکیشن خود را به عنوان یک Software طراحی و اجرا کند که در نهایت به دست کاربر نهایی می رسد.
معماری و اجزای مختلف Open Stack
OpenStack از تعداد بسیاری از Component های در حال حرکت ایجاد شده است. به این دلیل گفتیم در حال حرکت که OpenStack یک جامعه آزاد است و هر کسی میتواند Component های جدید به آن اضافه کند و یا Component های موجود را بهبود ببخشد که همگی بخشی از هسته OpenStack هستند که به عنوان بخشی از هر سیستم OpenStack که رسما برای OpenStack حفظ شده است توسعه داده شده اند.
بخش Nova در openstack
Nova یک موتور پردازشی اصلی است که پشت OpenStack قرار می گیرد. Nova برای مدیریت تعداد بسیار زیاد ماشین های مجازی داخل شبکه OpenStack استفاده می شود تا بتواند وظایف پردازشی را مدیریت کند.
Swift
swift open stack یک سیستم ذخیره سازی است برای اشیاء و فایل های داخل مجموعه OpenStack که مورد استفاده قرار می گیرد.
Cinder در مجموعه openstack
Cinder یک Component ذخیره سازی block های اطلاعاتی است که بیشتر شبیه مفهوم سنتی این است که کامپیوتر قادر خواهد بود به مکان های مختلف روی هارد دسترسی داشته باشد.
Neutron در اپن استک
نوترون قابلیت راه اندازی شبکه OpenStack را فراهم می کند. نوترون کمک می کند که هر کامپوننت در مجموعه OpenStack با دیگر اجزا با سرعت بالا در ارتباط باشد.
معرفی Horizon در openstack
Horizon یک داشبورد پشت OpenStack است که فقط یک رابط گرافیکی است، پس کاربرانی که قصد تست و بررسی OpenStack را دارند، این اولین Component از OpenStack است که می بینند. توسعه دهنده ها با استفاده از رابط برنامه نویسی (API) می توانند به تمام کامپوننت ها دسترسی داشته باشند اما داشبورد می تواند این قابلیت را بدهد که مدیر سیستم ببیند چه اتفاقاتی روی Cloud در حال افتادن است و با استفاده از آن، آنها را مدیریت کند.
Keystone چیست؟
Keystone خدمات هویتی OpenStack را فراهم می کند در واقع یک لیست مرکزی از تمام یوزر هایی که در فضای ابری OpenStack ما وجود دارند در این Component قرار دارد و دسترسی های کاربران به Component های مختلف از طریق این Component اعطا می شود.
Glance
Glance خدمات تصویر را در OpenStack فراهم می کند. در این مورد تصاویر “images” به تصاویر موجود در هارد دیسک اشاره می دهد. Glance به تصاویر اجازه می دهد زمانی که یک ماشین مجازی جدید در حال deploy شدن است به عنوان الگو قرار بگیرند.