هر آنچه درباره OpenStack باید بدانیم – بخش دوم
موارد استفاده OpenStack
اکنون که در بخش قبل به برخی از موارد استفاده رایج از OpenStack پرداختیم، بیایید سعی کنیم این مطالب را خلاصه کنیم و متوجه شویم که این روزها چگونه از OpenStack استفاده میشود.
فضای ابری خصوصی همهمنظوره
در میان همه موارد استفاده، یک ابر خصوصی همهمنظوره، همان دلیلی است که از OpenStack در اکثر سناریوها استفاده میشود. برخلاف پلتفرمهای مدیریت مجازیسازی سنتی، OpenStack برای ساخت محیطهای ابری خصوصی با ویژگیهای کامل طراحی شده است که ویژگیهای محصولات ارائه شده توسط تامین کنندگان ابرهای عمومی مطرح را شبیهسازی میکند. در نتیجه، سازمانها میتوانند یک محیط ابری شبیه به AWS را برای استفاده اختصاصی خود ایجاد کنند. این پلتفرم همچنین مهاجرت از ابر عمومی به ابر اختصاصی و تطبیق آسان با محیطهای چند ابری را تسهیل میکند زیرا بیشتر اصول در این موارد یکسان هستند.
فضای ابری عمومی OpenStack
علاوه بر ایجاد ابر اختصاصی، OpenStack میتواند برای ساخت ابر عمومی با تمام ویژگیها استفاه شود. پلتفرم OpenStack مجهز به تمام ویژگیهای multi-tenancy مورد نیاز برای حفظ حریم خصوصی تکتک مشتریان است. OpenStack امکان مقیاسپذیری تا هزاران node را دارد و بهراحتی با پلتفرمهای مدیریت ابری مطرح (CMPs) تطبیق پیدا میکند. از آنجایی که این روزها استفاده از هایپراسکیلرها در تمامی نقاط جهان ممکن نیست، استفاده از ابر عمومی OpenStack هر روز محبوبیت بیشتری پیدا میکند.
زیرساخت مجازیسازی عملکرد شبکه
شرکت Telcos یکی از اولین پذیرندگان تجاری OpenStack بود. تشکیل پروژه OpenStack همزمان با تحقیق در مورد فناوری مجازیسازی عملکرد شبکه (NFV) بود. بنابراین، OpenStack یک انتخاب بومی برای ساخت NFVI بود. در این کاربرد، OpenStack معمولا با ویژگیهای مختلف مخابراتی توسعه پیدا میکند، مانند Enhanced Platform Awareness (EPA)، SmartNIC ها، GPU مجازی (vGPU) و شبکهسازی 100 گیگابیت بر ثانیه است.
فضای چند ابری هیبریدی
در انتها، از OpenStack اغلب بهعنوان بخشی از یک محیط چندابری گستردهتر استفاده میشود که مرتبط به معماریهای ابری ترکیبی (هیبریدی) است. از آنجایی که OpenStack یک پلتفرم ابری مقرون بهصرفه است، سازمانها میتوانند اکثر بار کاری خود را در آن اجرا کنند و تنها در بازههای کاری با فشار بالا از منابع ابر عمومی با امکان مقیاسپذیری گسترده استفاده کنند. آنها همچنین میتوانند از این پلتفرم برای عملیاتهای سنگین پردازشی مقطعی استفاده کنند. استفاده از ابرهای خصوصی و عمومی به طور همزمان، امکان بهینهسازی هزینهها و چابکی بیشتر توسعهدهندگان را فراهم میکند.
معماری OpenStack
اکنون که با ماهیت OpenStack آشنا شدیم و دانستیم که چرا و چگونه از آن استفاده میشود، میتوانیم به جزئیات معماری OpenStack بپردازیم و بفهمیم که این پلتفرم چگونه کار میکند. تصویر زیر، نمایی کلی از اجزای OpenStack و همچنین خدمات اصلی آن ارائه میدهد.
نمایی از معماری OpenStack
اجزای تشکیلدهنده
اگر از بالا نگاه کنیم، OpenStack را میتوان به چند جزء تقسیم کرد. این قسمتها بلوکهای سازنده اولیهای هستند که بهعنوان بخشی از فرایند پیادهسازی OpenStack نصب میشوند. وجود تکتک این اجزا برای کارکرد بهینه OpenStack و ارائه یک تجربه ابری کامل به کاربران نهایی، مورد نیاز هستند.
سرویسهای OpenStack
به طور خلاصه، سرویسهای OpenStack برنامههایی مستقل هستند که با هم یک ابر را تشکیل میدهند. آنها ماژولهای جداگانهای هستند که هرکدام عملکردهای ابری جداگانهای مانند identity management، provisioning VM یا security rules injection را انجام میدهند. سرویسهای OpenStack از طریق رابطهای برنامهنویسی کاربردی (API) با یکدیگر ارتباط برقرار میکنند که اتصالات ورودی از داشبورد OpenStack و سرویسگیرنده را نیز شامل میشود.
داشبورد OpenStack
داشبورد، یک رابط کاربری گرافیکی وب (GUI) است که به مدیران و کاربران OpenStack امکان دسترسی به منابع و انجام برخی از اقدامات رایج مانند ایجاد حسابهای کاربری جدید و راهاندازی ماشینهای مجازی را میدهد. این داشبورد، یک نمای کلی از ابر، ظرفیت آن، instanceهای در حال اجرا، ظرفیت block storageهای در حال استفاده و … را فراهم میکند. داشبورد OpenStack، اقدامات کاربر را به API تبدیل میکند و آنها را توسط خدمات OpenStack اجرا میکند. محبوبترین داشبورد OpenStack ، داشبورد Horizon است.
سرویسگیرنده OpenStack (OpenStack Client)
کلاینت OpenStack یک رابط خط فرمان (CLI) برای OpenStack است. در حالی که داشبورد برای تازهواردان بصریتر است، مدیران OpenStack و کاربران باتجربهتر کلاینت را ترجیح میدهند؛ به این دلیل که کلاینت OpenStack، انواع مختلفی از عملیاتهای انبوه را با سرعت بسیار زیاد انجام میدهد. OpenStack Client همچنین با ابزارهای پردازش متن Bash به صورت یکپارچه عمل میکند و میتواند برای اتوماسیون عملیات از اسکریپتها فراخوانی شود.
پایگاه دادههای SQL
سرویسهای OpenStack رکوردهای مختلفی ایجاد میکنند که در پایگاه دادههای (SQL) ذخیره میشوند. این رکوردها شامل اطلاعاتی در مورد کاربران، متادیتای imageهای ابری آپلود شده، VM flavorsهای موجود و غیره هستند. اگرچه پلتفرم OpenStack از پیاده سازی پایگاه دادههای (SQL) مختلف پشتیبانی میکند، اما رایج ترین آن، MySQL است.
صفهای پیام
هر سرویس OpenStack ممکن است از چندین سرویس کوچکتر تشکیل شده باشد که در cluster توزیع میشوند. به منظور تسهیل ارتباطات درونی بین این سرویسهای فرعی، OpenStack از مفهوم صف های پیام استفاده می کند. اگرچه پلتفرم OpenStack از پیاده سازی صفهای پیام مختلف پشتیبانی می کند، رایج ترین آن RabbitMQ است.
سایر اجزا
بسته به نیازهای دقیق شما، ممکن است لازم باشد اجزایی دیگر پیادهسازی شوند تا عملکرد مورد نیاز شما تامین گردد. این اجزا معمولا شامل پایگاه دادههای Memcached و NoSQL میشوند. در سناریوهای پیشرفتهتر نیز ممکن است لازم باشد تا اجزایی دیگر که در اینجا فهرست نشدهاند نصب شوند.
سرویسها
برخلاف دیگر پلتفرمهای ابری، معماری OpenStack کاملا ماژولار است، به این معنی که سازمانها میتوانند ابرهای متناسب با نیازهای خود را بسازند. پلتفرم ابری OpenStack تقریبا از 30 سرویس تشکیل شده است و تعداد آنها روزبهروز در حال افزایش است زیرا هرروزه سرویسهای جدیدی توسط اعضای جامعه OpenStack اضافه میشوند.
در قسمت سوم از این مقاله به توضیح سرویسهای کلیدی OpenStack و نقش هریک میپردازیم و در پایان با بررسی توزیعهای مختلف OpenStack و نحوه شروع کار با آن به جمعبندی این مقاله خواهیم پرداخت.