OpenStack چیست؟

OpenStack مجموعه ای از ابزارهای نرم افزاری برای ساخت و مدیریت پلتفرم رایانش ابری برای Cloudهای عمومی و خصوصی است.
OpenStack توسط بزرگ ترین شرکت های نرم افزاری و هاستینگ و هزاران نفر از اعضای جامعۀ خود پشتیبانی شده است و بسیاری از آنها بر این باورند که OpenStack آیندۀ رایانش ابری را رقم خواهد زد.

Openstack

OpenStack توسط OpenStack Foundation مدیریت می شود که یک شرکت غیر انتفاعی است که علاوه بر مقوله توسعه نرم افزار به ایجاد جامعه ای حول این پروژه همت می گمارد.
مقدمه ای بر OpenStack
کاربران با OpenStack می توانند از ماشین مجازی و Instanceهای دیگر1 که به مدیریت سریع محیط Cloud می پردازد، استفاده کنند. با OpenStack می توانید Horizontal Scaling را تسهیل کنید؛ به این معنی که وظایفی که در یک زمان انجام می شوند می توانند به تعداد زیاد یا تعداد کمی از کاربران سرویس دهی کنند (با تنظیم Instanceها). مثلا یک نرم افزار موبایل که نیاز به برقراری ارتباط با یک سرور راه دور دارد، می تواند وظیفه ارتباط با کاربران مختلف را بین Instanceها تقسیم کند. همه آنها باهم در ارتباط هستند و وقتی کاربران بیشتری از این نرم افزار استفاده می کنند می توان Scale کردن را به سرعت و به راحتی انجام داد.
مهم تر از همه این که OpenStack یک نرم افزار Open Source است. یعنی هر کسی بخواهد می تواند به Source Code دسترسی داشته باشد، آن را تغییر داده یا اصلاح کند، و این اصلاحات را به دیگران هم عرضه کند. این Open Source بودن همچنین به این معنی است که OpenStack هزاران توسعه دهنده در سراسر دنیا دارد که تلاش می کنند تا محصولی امن و مقاوم در برابر خطا ارائه دهند.
OpenStack چگونه در محیط Cloud استفاده می شود؟
تمام کاری که Cloud انجام می دهد این است که منابع رایانش را برای کاربر نهایی از راه دور فراهم می کند و نرم افزارها به جای این که بر روی کامپیوتر کاربر اجرا شوند، به عنوان یک سرویس بر روی سرورهای Scalable و قابل اطمینان اجرا می شوند. رایانش ابری می تواند معانی مختلفی داشته باشد، ولی معمولا در صنعت به معنی اجرای موارد مختلف "به عنوان سرویس" (… as a service) به کار می رود: نرم افزار به عنوان سرویس (SaaS)، پلتفرم به عنوان سرویس (PaaS) و زیرساخت به عنوان سرویس (IaaS). OpenStack در دسته بندی اخیر جای دارد (زیرساخت به عنوان سرویس). فراهم کردن زیرساخت برای کاربر به این معنی است که کاربر به راحتی می تواند Instance جدیدی اضافه کند که اجزای دیگر رایانش ابری می توانند بر روی آن اجرا شوند.
معمولا این زیرساخت، یک پلتفرم را اجرا می کند که برنامه نویس می تواند بر روی آن یک برنامه کاربردی ایجاد کند تا کاربر نهایی با آن کار کند.
OpenStack چه اجزایی دارد؟
OpenStack دارای اجزای متغیر زیادی است. به اقتضای طبیعت Open Source، هر کسی می تواند اجزایی را به OpenStack اضافه کند تا نیازهای خود را برآورده کند. ولی جامعه OpenStack توانسته است 9 جزء اصلی را شناسایی کرده که "هسته" OpenStack را تشکیل می دهند و به عنوان جزئی از هر سیستم OpenStack توزیع شده اند و به طور رسمی توسط جامعه OpenStack نگهداری می شوند:

  • Nova: این جزء، موتور اصلی رایانش در OpenStack است که برای پیاده سازی و نگهداری تعداد زیادی ماشین مجازی و Instanceها برای رایانش به مورد استفاده قرار می گیرد.
  • Swift: یک سیستم ذخیره سازی برای Object و فایل. به جای استفاده از روش قدیمیِ اشاره به فایل به وسیله محل آنها بر روی درایو، توسعه دهندگان میتوانند از Identifier منحصربفرد برای اشاره به فایل یا قسمتی از اطلاعات استفاده کنند و تصمیم گیری در مورد این مساله را که این اطلاعات کجا ذخیره شود، به OpenStack واگذار کنند. این مساله، Scale کردن را آسان می کند چون دیگر نگرانی از بابت مقدار ظرفیت موجود بر روی یک سیستم برای توسعه دهندگان وجود نخواهد داشت. همچنین خود سیستم (و نه توسعه دهندگان) این مساله حل می کند که چگونه در صورتی که سیستم یا اتصال شبکه دچار مشکل شود، باید از دیتا Backup گرفت.
  • Cinder: یک جزء ذخیره سازی بلاک (Block Storage) است که کارش شبیه این است که چطور کامپیوتر با روش قدیمی خود به مکان خاصی بر روی دیسک درایو دسترسی می یابد. این روش قدیمی مخصوصا در صورتی اهمیت زیادی پیدا می کند که سرعت دسترسی به دیتا برای ما مهم باشد.
  • Neutron: قابلیت Networking را برای OpenStack فراهم می کند. با استفاده از آن می توان اطمینان یافت که اجزای OpenStack با یکدیگر به خوبی و با سرعت ارتباط برقرار می کنند.
  • Horizon: به منزله یک داشبورد برای OpenStack است. این تنها رابط گرافیکی برای OpenStack است. بنابراین کاربرانی که می خواهند OpenStack را امتحان کنند احتمالا این اولین جزئی است که خواهند دید. توسعه دهندگان می توانند به تمام اجزای OpenStack از طریق API به طور جداگانه دسترسی داشته باشند ولی Administratorها از طریق داشبورد می توانند ببینند که بر روی Cloud چه اتفاقی در حال روی دادن است و در صورت نیاز آن را مدیریت کنند.
  • Keystone: سرویس های شناسایی را در OpenStack ارائه می دهد. این مورد در واقع لیستی شامل تمام کاربران OpenStack Cloud است و شامل سرویس های Cloud که این کاربران اجازه استفاده از آن را دارند. Keystone روش های مختلفی برای دسترسی فراهم می کند، به این معنی که توسعه دهندگان می توانند روش های دسترسی کاربری خود را در Keystone لیست کنند.
  • Glance: سرویس های Image را در OpenStack ارائه می دهد. در اینجا Image به معنی Image (یا کپی مجازی) از هارد دیسک است. با استفاده از Glance می توانیم هنگام پیاده سازی ماشین مجازی جدید، از این Imageها به عنوان Template استفاده کنیم.
  • Ceilometer: سرویس های دورسنجی (Telemetry) را ارائه می دهد و با استفاده از آن می توان سرویس های Billing را به استفاده کنندگان Cloud ارائه داد. Ceilometer همچنین لیستی قابل بررسی (Verifiable) از استفاده هر یک از کاربران از اجزای مختلف OpenStack دارد. یعنی مسائلی مرتبط با اندازه گیری و گزارش استفاده کاربران.
  • Heat: هماهنگ سازی در OpenStack را به عهده دارد که توسعه دهندگان با استفاده از آن، نیازمندی های نرم افزار Cloud را در یک فایل ذخیره می کنند که تعیین می کند چه منابعی برای آن نرم افزار ضروری است. با این روش Heat به زیرساخت مورد نیاز برای اجرای سرویس ها بر روی Cloud کمک می کند.

OpenStack برای چه کسانی مناسب است؟
ممکن است شما همین الان یکی از کاربران OpenStack باشید و حتی آن را نشناسید! هرچه شرکت ها بیشتر و بیشتر از OpenStack به عنوان یکی از ابزارهای Cloud خود استفاده می کنند، نرم افزارهایی که قابلیت اجرا بر روی OpenStack دارند افزایش می یابند.
چگونه کار با OpenStack را شروع کنم؟
اگر می خواهید OpenStack را فقط امتحان کنید، یک روش که با استفاده از آن می توانید بدون تحمل مشکلاتِ روبرو شدن با اجزای فیزیکی این کار را انجام دهید TryStack است. با TryStack می توانید نرم افزار خود را در محیط Sandbox تست کنید و ببینید OpenStack چگونه کار می کند و آیا گزینه مناسبی برای شما هست یا خیر.
می خواهید در این مورد بیشتر بدانید؟ هر ماه بهترین راهنماها، نکات، ترفندها و آموزش ها را برای OpenStack منتشر می شود.
OpenStack همیشه به دنبال مشارکت کنندگان جدید است. به OpenStack Foundation بپیوندید یا این مقدمه را درباره شروع مشارکت در OpenStack بخوانید.
چگونه پیشرفت های OpenStack را رصد کنیم؟
از آنجا که OpenStack تحت مالکیت شرکت خاصی نیست، بدست آوردن اطلاعات در مورد OpenStack قدری مشکل است. Opensource.com تلاش دارد تا اطلاعات بروزی در مورد OpenStack ارائه دهد به طوری که کاربران، توسعه دهندگان و بخش های تصمیم گیرنده ای که به دنبال استفاده از OpenStack در سازمان خود هستند پاسخ سوال خود را دریافت کنند. برای شروع به کار می توانید نگاهی به تگ OpenStack در Opensource.com بیندازید، یا مقالات زیر را بخوانید که به شما کمک می کند مطالب بیشتری در مورد OpenStack و جامعۀ آن یاد بگیرید:

1در رایانش ابری به هریک از سرورها و ماشین ها (از جمله ماشین مجازی) یک instance گفته می شود.

*منبع

برچسب ها: SaaS, Open Source, OpenStack Foundation, OpenStack Swift, OpenStack, PaaS, IaaS, رایانش ابری, Public Cloud, Private Cloud

Submit to DeliciousSubmit to DiggSubmit to FacebookSubmit to Google PlusSubmit to StumbleuponSubmit to TechnoratiSubmit to TwitterSubmit to LinkedIn