اوپن‌استک

اوپن استک یک پلت‌فرم نرم‌افزاری متن باز برای رایانش ابری است که توسط Rackspace و ناسا در ژوئیه ۲۰۱۰ طرح‌ریزی شد. هم‌اکنون بیش از ۵۰۰ شرکت از جمله IBM، فوجیتسو، اوراکل، یاهو، سیتریکس، دل، AMD، اینتل، کنونیکال، سوزه، اچ‌پی و سیسکو سیستمز و شرکت‌های بسیار دیگری به این پروژه پیوسته‌اند.
OpenStack یک پروژه رایانش ابری است که به تجهیز بستری متن باز و قابل دسترس در همه جا برای ابرهای شخصی و عمومی کمک می‌کند. این پروژه توسط OpenStack Foundation مدیریت می‌شود که یک بنیاد غیرانتفاعی است که در سپتامبر ۲۰۱۲ تاسیس شده‌است.
معرفی
اپن استک به کاربران اجازه می‌دهد تا بتوانند ماشین‌های مجازی و دیگر نمونه‌ها برای کنترل وظایف گوناگون در مدیریت یک محیط ابری در حال اجرا را توسعه دهند. این مجموعه ابزار گسترش عمودی را آسان می‌کند به این معنی که وظایفی که از اجرای همزمان سود می‌برند، می‌توانند در زمان اجرا، به آسانی با تنظیم نمونه‌های متفاوت، به کاربران بیشتر یا کمتری خدمات ارائه دهند. برای مثال، یک اپلیکیشن موبایل، که باید با یک سرور از راه دور ارتباط برقرار کند، می‌تواند کار ارتباطی خود را با کاربران دیگر در طول نمونه‌های مختلف، تقسیم کند که همه اینها با سرعت و به آسانی با یکدیگر در ارتباط خواهند بود؛ و مهمتر از آن، اپن استک یک ابزار متن باز است، به این معنی که هر فردی که آن را انتخاب کند، می‌تواند به کد منبع آن نیز دسترسی داشته، هر تغییر یا اصلاحی را که مورد نیاز است، اعمال کند و به صورت رایگان، تغییرات اعمال شده را در سطح وسیعتری به اشتراک بگذارد. متن بازبودن آن نیز این امکان را هم می‌دهد که هزاران توسعه دهنده در سرتاسر جهان می‌توانند بر روی آن کار کنند و مجموعه نرم‌افزاری با ویژگی‌های قوی‌تر و امن‌تر تولید کنند
نحوه کار
رایانش ابری یا Cloud در واقع فراهم کردن محیط محاسباتی برای کاربران پایانی از راه دور است، به صورتی که نرم‌افزارها به عنوان یک سرویس بجای اینکه بر روی کامپیوترهای خود کاربران اجرا شوند، بر روی سرورهای قابل اعتماد و توسعه پذیر اجرا می‌شوند. محاسبات ابری می‌تواند چیزهای دیگری را هم شامل شود ولی معمولا منظور اصلی، اجرای آیتم‌های مختلف مانند نرم‌افزارها، پلتفرم‌ها و زیرساخت، به عنوان یک سرویس می‌باشد. اپن استک در واقع جزء دسته‌بندی سوم می‌شود و یک زیرساخت به عنوان سرویس یاIaaS محسوب می‌شود. فراهم کردن زیرساخت به این معنی است که کاربران با استفاده از اپن استک، به آسانی می‌توانند نمونه‌های جدید اضافه کرده، و مولفه‌های دیگر cloud را بر روی آنها اجرا کنند. معمولا، این زیرساخت یک پلتفرم را اجرا می‌کند که توسعه دهنده بر روی آن می‌تواند اپلیکیشن‌های نرم‌افزاری را ایجاد کرده و به کاربران پایانی خود خدمات ارائه دهد
مولفه‌ها
اپن‌استک از قسمت‌های اجرایی مختلفی ساخته شده‌است. بخاطر ذات آزاد بودن آن، هر شخصی می‌تواند مولفه‌های دیگری نیز به آن بیفزاید تا نیازهای خود را برآورده سازد. انجمن اپن استک، نه مولفه کلیدی را مشخص کرده است که در واقع بخشی از هسته اپن استک محسوب می‌شوند و به عنوان بخشی از هر سیستم اپن استکی توزیع می‌شوند و به صورت رسمی توسط انجمن اپن استک، پشتیبانی می‌شوند
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) را برای اپن‌استک فراهم می‌کند.