اجزا تشکیل دهنده openstack – قسمت دوم
اپن استک (OpenStack) به مجموعهای از ابزارهای نرمافزاری متنباز گفته میشود که به منظور ساختن و مدیریت کردن زیرساختهای رایانش ابری به کار می رود.
در قسمت اول مقاله اجزای تشکیل دهنده اپن استک، به چیستی Openstack و اجزا و پروژههای اصلی آن که به طور رسمی توسط جامعه بزرگ اپن استک توسعه داده میشوند، پرداختیم. .
Openstack چیست؟
در این مقاله قصد داریم تا با سری دیگری از پروژههای جانبی Openstack که توسط تیمهای دیگر گسترش یافتهاند و امکانات جدیدی را به محیط ابری اضافه میکنند، آشنا شویم. در این مقاله هفت پروژه فرعی که کاربردهای بیشتری در دنیای IT دارند معرفی میشوند.
پروژههای جانبی OpenStack
Sahara
این پروژه به منظور ارائه چارچوبهای پردازش دادههای حجیم Big Data بر روی بستر Openstack معرفی و توسعه یافته است و یکی از پروژههای نسبتا قدیمی Openstack است که عمری حدود ۵ ساله دارد. هدف از Sahara ارائه سرویس BigData as a Sevice یا BDaaS است و چارچوبهای پردازش دادههای حجیم مانند Apache Hadoop ،Apache Spark ،Apache Storm را در بستر ابر اپناستک ارائه میدهد.(به مقاله کلان داده ابری مراجعه شود. )
Trove
Trove در openstack یکی دیگر از پروژههای نسبتا قدیمی است به منظور ارائه کامل پایگاه دادههای رابطهای و غیر رابطهای بر روی بستر ابری طراحی شده است. این پروژه در واقع برای ارائه سرویس DataBase as a Service یا DBaaS بر روی Openstack اضافه می شود و پیچیدگیهای مربوط به مدیریت پایگاه داده را از دید کاربران و توسعهدهندگان مخفی میسازد. همچنین کاربران و مدیران پایگاه داده میتوانند چندین دیتابیس مختلف را به راحتی دریافت و از آنها استفاده کنند.
Magnum
جهت ارائه تکنولوژی کانتینر بر روی ابر Openstack پروژه Magnum معرفی شده که موتور مدیریت کانتینر است. این پروژه با کمک Nova و با ایجاد ماشینهای مجازی به عنوان هاست میتواند تکنولوژی Docker را به همراه نرمافزارهای مدیریت مختلف آن مانند Docker Swarm ،Apache Mesos Kubernetes در بستر ابری ارائه داده و Container as a Service را در نهایت به توسعهدهندگان ارائه میدهد.
Designate
این پروژه در واقع فراهم آورنده سرویس DNS در بستر ابر است. این سرویس مانند سرویسهای دیگر با REST API با سرویسهای زیرساختی مانند Neutron ارتباط برقرار کرده و میتواند به صورت خودکار رکوردهای DNS را ثبت کند. به عبارت دیگر این پروژه با به کارگیری سرویسی مانند Bind9 اقدام به ارائه خدمت DNS as a Service یا DNSaaS میکند.
Manila
برای ارائه سرویس اشتراکگذاری فایل در بستر ابر، پروژه Malina معرفی شده است. این پروژه مبتنی بر Cinder بوده و با استفاده از آن دیسکهای مجازی جهت ذخیرهسازی فایلهای کاربران ایجاد میشوند. این سرویس با بهکارگیری پروتکلهای موجود مانند NFS ،CIFS ،SMB و… جهت اشتراکگذاری و جابهجایی فایلها، سرویس ذخیرهسازی و به اشتراکگذاری فایل بر بستر ابر استفاده میشوند.
Octavia
این پروژه جهت ارائه توزیعکننده بار یا همان LoadBalancer و انجام Scaling در محیط ابر Openstack معرفی شده و توسعه یافته است. این پروژه از LBaaS که توسط Neutrun ارائه میشود، مجزا بوده و میتوان گفت مرجع پیادهسازی LBaaS v2 است و میتواند کار توزیع بار را بین instanceها، سرورهای Bare Metal(سرورهای فیزیکی که مانند یک Nova Instance به Openstack معرفی شده است) و کانتینرها انجام دهد. از ویژگی برجستهای که میتوان برای این سرویس مطرح کرد، توزیع بار بر اساس تقاضا و انجام Scaling بهصورت افقی و بهصورت همزمان است. این پروژه جهت انجام وظیفه خود، با دیگر اجزا مانند Nova، Neutron، Keystone، Glance و …. در تعامل است.
Barbican
پروژه Barbican که نام دیگر آن سرویس مدیریت کلید است، جهت ذخیره، تولید و مدیریت موارد امنیتی مانند پسوردها، کلیدهای رمزنگاری متقارن و غیرمتقارن، گواهی نامههای X.509 و… به صورت امن به کار میرود. این سرویس برای محیطهای ابری و بالابردن امنیت آنها بسیار مفید هستند.
تا اینجا معروفترین و بزرگترین پروژههایی که اقدام به پیادهسازی سرویسهای مهم مانند کلاندادهها، پایگاه دادهها، کانتینرها، سرویس DNS، سیستمهای اشتراک فایل، توزیع بار و Scaling کردهاند را معرفی کردیم. البته پروژههای دیگری نیز برای برخی موارد بالا وجود دارد که به اندازه این پروژهها معروف و بزرگ نبوده و در مقالهای دیگر به صورت جداگانه معرفی خواهند شد.