اوپن‌استک

معرفی

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

نحوه کار

[ ابر] یا Cloud در واقع فراهم کردن محیط محاسباتی برای کاربران پایانی از راه دور است، به صورتی که نرم‌افزارها به عنوان یک سرویس بجای اینکه بر روی کامپیوترهای خود کاربران اجرا شوند، بر روی سرورهای قابل اعتماد و توسعه پذیر اجرا می‌شوند. محاسبات ابری می‌تواند چیزهای دیگری را هم شامل شود ولی معمولاً منظور اصلی، اجرای آیتم‌های مختلف مانند نرم‌افزارها، پلتفرم‌ها و زیرساخت، به عنوان یک سرویس می‌باشد. اپن استک در واقع جزء دسته‌بندی سوم می‌شود و یک زیرساخت به عنوان سرویس یا[IaaS] محسوب می‌شود. فراهم کردن زیرساخت به این معنی است که کاربران با استفاده از اپن استک، به آسانی می‌توانند نمونه‌های جدید اضافه کرده، و مؤلفه‌های دیگر cloud را بر روی آن‌ها اجرا کنند. معمولاً، این زیرساخت یک پلتفرم را اجرا می‌کند که توسعه دهنده بر روی آن می‌تواند اپلیکیشن‌های نرم‌افزاری را ایجاد کرده و به کاربران پایانی خود خدمات ارائه دهد

مولفه‌ها

اپن استک یک مجازی ساز یا hypervisor نیست بلکه روی مجازی ساز پیاده‌سازی می‌شود تا شما بتوانید منابع را به بهینه‌ترین شکل ممکن کنترل و استفاده نمایید. نکته جالب در گزینه open stack این است که منحصر به یک اپلیکیشن یا سخت افزار ویژه نیست. بنابراین قابل پیاده‌سازی بر روی کلیه مجازی سازها از جمله  kvm، xen، open-vz، Hyper-V، vSphere می‌باشد.

Nova

Nova، موتور محاسباتی اصلی، و برای اپن استک است. این موتور برای توسعه و مدیریت تعداد زیادی از ماشین‌های مجازی و نمونه‌های دیگر برای کنترل وظایف محاسباتی استفاده می‌شود.

Swift

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

Cinder

Cinder یک مؤلفه ذخیره‌سازی بلاک است که شباهت بیشتری به مفهوم قدیمی دسترسی به مکان‌های خاص یک دیسک درایو دارد. این روش سنتی برای دسترسی به فایل‌ها معمولاً به خاطر اهمیت سرعت دسترسی به داده، ممکن است مورد بحث باشد

Neutron

Neutron قابلیت شبکه سازی برای اپن استک را فراهم می‌کند. این ویژگی به هر مؤلفه یک پلتفرم اپن استک کمک می‌کند تا بتواند با دیگری به صورت کارا و سریع ارتباط برقرار کند.

Horizon

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

Keystone

این ابزار در واقع سرویس‌های هویت را برای اپن استک فراهم می‌کند. در اینجا لیستی از کاربران اپن استک به همراه دسترسی‌های مجاز آن‌ها نگهداری می‌شود. این سرویس، ابزارهای دسترسی چندگانه فراهم می‌کند به این معنی که توسعه دهندگان می‌توانند به آسانی دسترسی کاربر موجود را با استفاده از روش‌هایی در keystone نگاشت کنند.

Glance

وظیفه Glance، ارائه سرویس image در اپن استک است. در این مورد، image‌ها به image‌های موجود در هارد دیسک ارجاع داده می‌شوند. این image‌ها می‌توانند در زمان توسعه یک نمونه ماشین مجازی جدید، به عنوان الگو استفاده شوند.

Ceilometer

Ceilometer، سرویس تله متری را برای اپن استک فراهم می‌کند که در واقع فراهم‌کننده سرویس‌های صورتحساب برای کاربران فردی محاسبات ابری است. این سرویس نیز، میزان قابل تأییدی از استفاده کاربر از هر کدام از مؤلفه‌های یک اپن استک را نگهداری می‌کند.

Heat

Heat در واقع مؤلفه هماهنگ سازی و تنظیمات در اپن استک است که به توسعه دهندگان این امکان را می‌دهد که نیازهای اپلیکیشن‌های cloud را که منابع لازم برای هر برنامه را تعریف می‌کند، در یک فایل ذخیره کنند. با این روش، می‌توان زیرساخت موردنیاز را که سرویس cloud باید بر روی آن اجرا شود، مدیریت کرد.

Mistral

Mistral خدمتی است که گردش‌های کاری را مدیریت می‌کند. به‌طور معمول کاربر با استفاده از زبان‌هایی مانند YAML که بر پایهٔ گردش کاری کار می‌کنند، یک گردش کاری را می‌نویسد و تعریف گردش کاری مذکور را با استفاده از رابط برنامه‌نویسی کاربردی بر پایهٔ REST برای Mistral ارسال می‌کند. سپس کاربر می‌تواند به صورت دستی یا با استفاده از پیکربندی یک یا چند رویداد، گردش کاری را فعال نماید.

Trove

Trove خدمت Database-as-a-Service را به عنوان موتور پایگاه‌داده رابطه‌ای (بر پایه SQL) و همچنین غیر رابطه‌ای (NoSQL) را برای اپن‌استک فراهم می‌کند.

اوپن استک در ایران

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