هر آنچه درباره OpenStack باید بدانیم – بخش اول
هر آنچه درباره OpenStack باید بدانیم – بخش اول
خلاصه مقاله
OpenStack همچنان محبوبترین پلتفرم فضای ابری اوپنسورس است و هرسال استفاده از آن به طور مداوم در حال افزایش است. براساس گزارش مستقل استاتیستا (Statista) از سال 2020، نزدیک به 30 درصد از سازمانهای موجود در سراسر جهان، بهکارگیری OpenStack را در توسعه محصولات خود گزارش کردهاند. OpenStack که در سال 2010 تاسیس شد، یک پروژه پایدار و بالغ با یک جامعه مهندسی و تجاری عظیم است که به دلیل مزایای اقتصادی ملموسی که دارد، توسط شرکتها استفاده میشود.
OpenStack در ابتدا بهعنوان یک پلتفرم برای پیادهسازی خدمات تحت وب آمازون (AWS)، بهمنظور گسترش فضای ابری خصوصی ایجاد شد که درنتیجه موارد استفاده از OpenStack در طول زمان افزایش یافت. این پلتفرم ابتدا مورد توجه شرکت Telcos قرار گرفت و از این رو تبدیل به پایهای برای زیرساخت مجازیسازی عملکرد شبکه (NFVI) برای شبکههای G4 و G5 شد.
این روزها از OpenStack بیشتر برای ایجاد زیرساختهای ابری عمومی محلی استفاده میشود. این امر بهویژه در کشورهایی مهم است که ظرفیتهای بالا (hyperscalers) به دلیل پهنای باند کم، تاخیر زیاد یا مقررات دولتی محلی، وجود ندارد. پذیرش بیشتر OpenStack در محیطهای لبه (Edge) و چند ابری هیبریدی (hybrid multi-cloud) نیز دیده شده است.
اگرچه تمرکز توسعه و ارائه برنامهها در سالهای اخیر به سمت کانتینرها (containers) و کوبرنتیز (Kubernetes) تغییر کرده است، چنین محیطهایی معمولا در OpenStack اجرا میشوند. در نتیجه، OpenStack به همراه کرنل لینوکس و ماشینهای مجازی بر پایه کرنل (KVM)، به استاندارد غیررسمی برای پیادهسازی زیرساخت باز تبدیل شده است. به همین دلیل است که تسلط بر OpenStack برای تمامی مهندسان DevOps بسیار مهم است. حتی اگر امروز به دانش OpenStack نیاز نداشته باشید، در آیندهای نزدیک این دانش برای شما مفید خواهد بود.
این مقاله مقدمهای فنی بر OpenStack است که با مرور برخی مفاهیم اساسی، به معماری ماژولار OpenStack میپردازد و اجزای اصلی و خدمات آن را بررسی خواهد کرد. در این مقاله توضیح خواهیم داد که چگونه همه این ماژولها با هم کار میکنند تا یک پلتفرم ابری کاملا کاربردی را ارائه دهند. همچنین مروری مختصر خواهیم داشت بر توزیعهای مبتنی بر اوبونتوی OpenStack و دستورالعملهای بسیار سادهای که در مورد نحوه شروع کار با OpenStack کاربردیست.
شکل 1، Canonical open infrastructure stack
نوشته های سمت چپ تصویر رو هم یا باید ترجمه کنیم یا کیفیتش رو بهتر کنیم
مقدمه
قبل از اینکه به جزئیات معماری OpenStack بپردازیم، اجازه دهید به بررسی تکامل این پروژه در طول سالهای گذشته بپردازیم و برخی تصورات غلط رایج را در مورد OpenStack بیان کنیم.
تاریخچه مختصر OpenStack
پلتفرم OpenStack در سال 2010 بهعنوان یک پروژه مشترک بین ناسا و رکسپیس (Rackspace) راهاندازی شد. هدف اولیه آن شبیهسازی رفتار سرویس ابری محاسباتی الاستیک AWS (EC2) بود که قبلا به مدت چهار سال در بازار فعالیت داشت. پلتفرم OpenStack بهعنوان یک پروژه اوپنسورس راهاندازی شد و نسخه اولیه آن با نام آستین (Austin)، شامل تنها دو سرویس نوا (Nova) و سوئیفت (Swift) بود.
با گذشت زمان، هر دو شرکت و اعضای جدید جامعه OpenStack، شروع به افزودن سرویسهای بیشتری ورای پردازش و ذخیرهسازی دادهها به این پلتفرم کردند که سبب افزایش قابلیتهای OpenStack شد. این محیط پویا به مدیریتی متمرکز برای تصمیمگیری در مورد جهتگیریهای آتی و معیارهای پذیرش کد را به وجود آورد. از این رو در پاسخ به این نیازها، بنیاد OpenStack (در حال حاضر با نام Open Infrastructure Foundation) در سال 2012 تشکیل شد.
تکامل پویای این پروژه، تقاضای بازار مناسبی برای خدمات تجاری OpenStack ایجاد کرد. در نتیجه، بسیاری از شرکتها شروع به راهاندازی توزیع OpenStack خاص خود کردند و علاوه بر آن به ارائه خدمات حرفهای، پشتیبانی تجاری یا حتی خدمات کاملا مدیریت شده پرداختند. کانونیکال از ابتدای شروع پروژه در توسعه OpenStack مشارکت داشت و از سال 2014 ارائهدهنده خدمات تجاری برای OpenStack است.
اکنون پس از گذشت بیش از ده سال از انتشار آستین، OpenStack یکی از بزرگترین پروژههای اوپنسورس تاریخ است. این نرمافزار در صنایع مختلفی از جمله مخابرات، موسسات مالی، تولیدکنندگان سختافزار، موسسات دولتی، خودروسازی، خردهفروشی، مراقبتهای بهداشتی و غیره مورد استفاده است. OpenStack نمونهای از یک پروژه اوپن سورس بسیار موفق است که نام آن در تاریخ ثبت شد.
OpenStack چیست؟
مردم با فکرکردن به فضاهای گستردهتر پردازش ابری، تواناییهای OpenStack را دست کم میگیرند. این در حالی است که OpenStack بهخوبی در طیف گستردهای از فناوریهای موجود، جای میگیرد و بهراحتی در کنار بیشتر آنها کار میکند. به طور خلاصه ماهیت OpenStack شامل موارد زیر است:
- یک پلتفرم ابری اوپن سورس: پلتفرم OpenStack مدیریت پردازش، شبکه و ذخیرهسازی منابع توزیعشده را به دست میگیرد، آنها را در مخازن جمعآوری میکند و منابع مجازی را بر اساس تقاضا از طریق یک پورتال سلفسرویس تامین میکند. این پلتفرم بیشتر رفتار ارائهدهندگان فضای ابری عمومی پیشرو را شبیهسازی کرده و مفاهیم محاسبات ابری معمولی مانند multi-tenancy، ephemeral storage، object storage و غیره را پیادهسازی میکند.
- یک بخش زیرساخت باز: پلتفرم OpenStack اغلب به همراه سایر پروژههای اوپن سورس مانند Kubernetes یا Ceph برای ارائه یک زیرساخت باز که قادر به مدیریت انواع مختلف بارهای کاری است استفاده میشود. استفاده از بهترین مجموعه فناوریها معمولا بهتر از اختراع مجدد چرخ است. بهخصوص، زمانی که تمامی آنها اوپنسورس هستند و توسط جوامع بالادستی پشتیبانی میشوند.
- جزئی قابل تطبیق با multi-cloud: چشمانداز رایانش ابری امروزی بسیار پیچیدهتر از چیزی است که چند سال پیش وجود داشت. دنیا دیگر به ابرهای عمومی و خصوصی تقسیم نمیشود و بسیاری از سازمانها به طور همزمان با چندین ارائهدهنده فضای ابری قرارداد میبندند. پلتفرم OpenStack بهخوبی با این چشمانداز مطابقت دارد و یک پلتفرم ابری مقرونبهصرفه برای محیطهای multi-cloud ترکیبی (هیبریدی) است.
تصورات نادرست در مورد ماهیت OpenStack
به طور مشابه، تصورات نادرست زیادی در مورد معماری OpenStack و نقش آن در بازار رایانش ابری وجود دارد. این سردرگمی از این واقعیت به وجود میآید که تجربیات افراد تازهکار معمولا به VMware و ابرهای عمومی محدود میشود. بنابراین، مهم است بدانیم که ماهیت OpenStack شامل موارد زیر نیست:
- هایپروایزر (hypervisor) – برخلاف مجموعه VMware vSphere، OpenStack دارای هایپروایزر نیست. در عوض، با انواع هایپروایزرهای اوپنسورس و اختصاصی، ادغام میشود و با آنها کار میکند تا یک رابط ابری فراهم کند و با اجزای شبکه ذخیرهسازی یکپارچگی بومی ایجاد کند. محبوبترین هایپروایزر که توسط اکثریت قریب بهاتفاق توزیعهای OpenStack استفاده میشود، KVM است.
- پلتفرم مدیریت مجازیسازی – اگرچه OpenStack از فرایند مجازیسازی استفاده میکند، اما بسیار فراتر از پلتفرمهای مدیریت مجازیسازی سنتی مانند VMware vSphere، Red Hat Virtualization یا Proxmox Virtual Environment عمل میکند. OpenStack یک پلتفرم ابری کاملا کاربردی است. این پلتفرم از متودولوژی Cattle برای مدیریت منابع و مکانیسم template-based برای تامین منابع استفاده میکند. OpenStack بجای اینکه رشد کند، مقیاسپذیر عمل میکند و برای سختافزارهای مقرونبهصرفه طراحی شده است.
- رقیبی برای هایپراسکیلرها (hyperscalers) – اگرچه OpenStack در ابتدا بهعنوان یک پیاده ساز اوپنسورس AWS تاسیس شد، اما هرگز قرار نبود رقیبی برای هایپراسکیلرها باشد. OpenStack به اکوسیستم چند ابری (multi-cloud) گستردهتری متصل میشود و بیشتر بهعنوان یک عامل برای توسعه مقرونبهصرفه زیرساخت ابری عمومی فعلی عمل میکند. در واقع، ارائهدهندگان ابر عمومی پیشرو مانند مایکروسافت به توسعه OpenStack کمک میکنند.
چرا OpenStack؟
پلتفرم OpenStack در صنایع مختلف در سراسر جهان مورد استقبال قرار گرفته است و پذیرش آن توسط صنایع سالبهسال بیشتر میشود. Canonical بهعنوان یک شرکت پشتیبان برای بیش از 200 پیادهسازی تجاری، سه دلیل اصلی برای اینکه چرا سازمانها OpenStack را برای خود انتخاب میکنند، شناسایی کرده است که در ادامه به توضیح آنها میپردازیم.
OpenStack مقرونبهصرفه است
ساختن یک ابر OpenStack برای اجرای یک ماشین مجازی (VM) ممکن است غیر ضروری باشد. از سوی دیگر، بهکارگیری هزار ماشین مجازی بهصورت شبانهروزی در یک ابر عمومی نیز میتواند بیش از اندازه باشد. این به این دلیل است که با افزایش تعداد بارهای کاری، هزینههای ابر عمومی بهسرعت افزایش مییابد. بنابراین، OpenStack یک راه حل اقتصادی تر برای اجرای بارهای کاری در درازمدت و در مقیاس زیاد است. در واقع، OpenStack اغلب بهعنوان بخشی از یک اکوسیستم چند ابری (multi-cloud) گستردهتر توزیع مییابد و بهعنوان یک عامل توسعه مقرونبهصرفه برای hyperscalerها عمل میکند.
OpenStack نسبت به راه حلهای اختصاصی مختلف مانند VMware نیز مقرونبهصرفهتر است. به این دلیل که این راهحلها معمولا نیازمند Licence پرهزینه هستند که باید در زمان نصب از قبل خریداری و متصل شوند. این موضوع توانایی سازمانها را برای کسب تجربه در مورد این دست از پلتفرمها، قبل از تصمیمگیری نهایی، محدود میکند که این برخلاف رویکرد «قبل از خرید امتحان کن» است. پلتفرم OpenStack بهصورت رایگان در دسترس است و برای کار با آن نیازی به مجوزهای پولی نیست.
OpenStack اوپنسورس است
امروزه قابلیت اوپنسورس بودن، بدون شک به یک استاندارد جدید در صنعت فناوری اطلاعات تبدیل شده است. این روند در تمام لایههای زیرساخت و همچنین در فضای برنامهها دیده میشود. قابلیت اوپنسورس بودن، مزایای مختلفی را برای کسبوکارها به وجود میآورد از جمله: سازمانها برای همکاری و پشتیبانی مداوم به جوامع گستردهتری دسترسی پیدا میکنند و به ارائه دهنده خدمات وابتسه نیستند. پچهای امنیتی بلافاصله اعمال میشوند و باگها بهموقع رفع میشوند. پروژههای اوپنسورس معمولا سریعتر عمل میکنند و در خط مقدم فناوری باقی میمانند.
پلتفرم OpenStack به طور کامل اوپنسورس است و تحت نظارت نهادی مستقل با نام بنیاد زیرساخت باز حفظ شده توسعه یافته است. این پلتفرم از مشارکت بیش از 550 شرکت و 34000 توسعه دهنده بهره میبرد. پلتفرم Openstack یکی از سه پروژه برتر اوپنسورس در حال توسعه است که بعد از کرنل لینوکس و مرورگر کرومیوم در جایگاه سوم قرار دارد.
OpenStack شما را مستقل میکند
یک نگرانی بزرگ در حال ظهور در زمینه حریم خصوصی اطلاعات، حاکمیت دادهها (Data Sovereignty) است. هایپراسکیلرها دسترسی فوری به زیرساختهای ابری را فراهم میکنند اما همزمان نگرانیهایی امنیتی برای برخی از سازمانها به وجود میآورند. مقررات دولت محلی یا خطمشیهای شرکتها ممکن است اجازه ذخیره دادهها در AWS، Azure یا Google Cloud را ندهند. حتی با ارائه سرویسهای محلی (Local) از سمت ارائهدهندگان ابر عمومی پیشرو، مانند AWS Outposts یا Azure Stack کنند، همچنان اطلاعات توسط بدنههای خارجی اداره و در مراکز داده آنها اجرا میشوند.
پلتفرم OpenStack قابلیت استفاده از زیرساخت شخصی را فراهم میکند، به این معنی که به سازمانها اجازه میدهد ابر اختصاصی خود را ایجاد کنند. شرکتها میتوانند زیرساخت ابر اختصاصی خود را توسعه دهند و برنامههای کسبوکار خود را در آنجا اجرا کنند. در عین حال، ارائهدهندگان خدمات میتوانند از OpenStack بهمنظور ایجاد زیرساختهای ابر عمومی محلی با همکاری دولتهای محلی برای به حداکثر رساندن انطباق با قوانین حفظ حریم خصوصی دادهها استفاده کنند. چنین ابرهایی پهنای باند بالاتر و تاخیر کمتری را ارائه میدهند و ممکن است از قطع اینترنت جهانی جان سالم به در ببرند.
در بخش دوم این مقاله، به موارد استفاده از OpenStack را بررسی خواهیم کرد و به سایر فضاهای ابری میپردازیم.