احتمالاً تا به حال از ابزارهای مدیریتی open source برای سیستمهای سازمانی سنتی استفاده کرده اید. اما اگر فایلهای کاری خود را به سرور ابری و سرور مجازی انتقال داده اید. به ابزارهای open source مشابه برای مدیریت آن دارید و احتمال آن وجود دارد. که ابزارهای فعلی برای سیستم جدید قابل استفاده نباشد. پس چه ابزاری برای مدیریت سرور ابری مناسب است و چگونه می توان این ابزار را انتخاب کرد ؟
برای این کار باید نخست عبارت ‘ ابزارهای مدیریتی ‘ به شکلی دقیق تعریف کنیم. صحبت از ابزارهای open source است که هدف اصلی آنها مدیریت منابع : ذخیره سازی ، رایانش ، ماشینها و حتی کانتینرها است. امروزه شاهد ظهور ابزارهای open source سازگار با سرور ابری و سرور مجازی که بر پایه ی سیستم های سازمانی موجود ، ساخته شده اند ، هستیم .
انتخاب ابزارهای open source مناسب
هر یک از تکنولوژیهای open source مدیریت سرور ابری که نوین هاست در این مطلب به آنها اشاره می کند. رویکرد خاص خود را به مسئله ی مدیریت سرور ابری ، دارد.
حقیقت آن است که یک راه حل منفرد که قابل استفاده برای شرایط مختلف باشد ، وجود ندارد. برخی مانند ابزار مدیریت کانتینرها تا حد زیادی بر اپلیکیشن متمرکز می شوند. تعدادی DevOps را محور کار خود قرار می دهند و تمرکز گروهی نیز تنها بر زیر ساختهای ابری و غیر ابری است. برای آنکه بدانید کدام یک برای شما مناسب تر است ، باید بررسیهایی انجام دهید. مخصوصاً لازم است که قبل از اقدام به انتخاب ابزار مدیریتی مناسب ، نیازهای خود را به شکل دقیق بشناسید .
ممکن است ابزارهای open source برای بعضی شرایط گزینه مناسبی نباشند و بهتر باشد از ابزارهای مدیریتی اختصاصی استفاده شود. گرچه ابزارهای تجاری را باید بخرید ، اما این ابزار می توانند در بلندمدت هزینه ی کمتری داشته باشند. حتماً مناسب بودن ابزار و اینکه تا چه حد با نیازهای شما مطابقت دارد ، را در نظر بگیرید. به عنوان مثال ، کسانی که از چند سرور ابری استفاده می کنند ، می دانند که ابزارهای open source انتخاب مناسبی برای آنها نیست ، چرا که این ابزار تنها از یک نوع سرور ابری ، مثلاً Open Stack پشتیبانی می کنند. برخی نیز قبلاً بر روی ابزارهای اختصاصی مناسب برای استفاده در سیستمهای خود ، سرمایه گذاری کرده اند و اکنون نیز استفاده از همان ابزار را برای پلت فرمهای سرور ابری و سرور مجازی هم مقرون به صرفه می دانند.
حال با توجه به این نکات به طور خلاصه به معرفی هفت ابزار مدیریتی برتر open source می پردازیم:
۱. Walmart’s OneOps :
OneOps ، آنگونه که Walmart آن را توصیف می کند ، بر اساس ایده ی DevOps یا” پلت فرم مدیریت سرور ابری و مدیریت چرخه ی کاری اپلیکیشن ” و تحت لیسانس Apache 2.0 و توسط Walmart labs عرضه شده است . به این ترتیب این تکنولوژی رقیب مستقیم Chef, Puppet, Ansible و سایر تکنولوژیهای مشابه است .
OneOpsبا انواع مختلف سرور ابری ( عمومی ، خصوصی و هیبریدی ) که از محیطهای ابری OpenStack استفاده می کنند، کار می کند. علاوه بر این می توان از این ابزار در Microsoft Azure و خدمات Amazon (AWS)نیز استفاده کرد. OneOpsقادر است که به صورت خودکار اپلیکیشنهایی را که در شرکتهای عرضه کننده ی سرورهای ابری متعدد وجود دارند ، را پیکربندی کند ، توسعه دهد و ترمیم کند.
پلت فرم One Ops قادر است نمونه های ماشینهای مجازی را ساخته و حفظ کند و از پس مشکلات امنیتی نیز به خوبی برآید. با این حال بهترین ویژگی آن این است که در صورت لزوم ، قادر است که اپلیکیشنها را از یک سرور ابری به سرور دیگر منتقل کند تا بتوان هاست ابری مورد نظر را با کمترین هزینه و بهترین ویژگیها یافت. این ویژگی، OneOps را در ردیف ابزارهای اختصاصی مشابه موجود در بازار قرار می دهد. اگر شما از چند سرور ابری ( multi cloud) استفاده می کنید ، این ابزار می تواند گزینه ی مناسبی برای شما باشد.
۲. مجموعه CoreOS :
CoreOS, Google و Docker ابزارهای مدیریتی را ارائه می کنند که به کسانی که از کانتینرها استفاده می کنند ،امکان می دهد تا به خوبی کانتینرهایی را که در سرور ابری و سرور مجازی اجرا می شوند ، مدیریت کنند. مجموعه Core OS به گونه ای طراحی شده است که بتواند با یک خوشه ( گروه ) از سرورهای Corer OS به عنوان یک واحد یکپارچه برخورد کند. این مجموعه از این نظر مانند کوبرنتیز گوگل و Docker Swarm است.
مخزن اصلی/ معتبر ی که در سراسر خوشه وجود دارد و با مدییت دستگاه سر و کار دارد و از شناسایی سرویسهای سیستم پشتیبانی می کند ، etcd نامیده می شود. اگر یک node از کار بیفتد، etcd با استفاده از سرویس به روزرسانی خودکار Core OS می تواند این مشکل را به سرعت برطرف کند. این ابزار علاوه بر پلت فرم کانتینرهای متعلق به خود CoreOS از Docker نیز پشتیبانی می کند.
۳. Docker’s Machine, Compose, and Swarm :
تا به حال Docker محبوب ترین تکنولوژی open source برای کانتینر بوده است و به سرعت به عنوان پلت فرمی برای ساخت و نصب کانتینر تبدیل به یک استاندارد طلایی شده است. Docker برای مدیریت کانتینر سه شیوه ی Machine ، Compose و Swarm را ارائه می کند که هر سه از ابزارهای open source هستند.
Machine به شما امکان می دهد که کانتینرهای Docker را به صورت خودکار تهیه کنید، و امکان ادغام با Apache Mesos را برای دستیابی به قابلیتهای پیش رفته تر فراهم می کند.
Swarm قادر است مشکلات مربوط به مدیریت خوشه ها از قبیل برنامه ریزی را حل کند. Swarm نیز مانند کوبرنتیز و مجموعه ابزارها ، می تواند مجموعه ای از کانتینرهای هاست ایجاد کند تا با فعال در کانتینرها را توسعه دهید.
و در نهایت Compose میزان وابستگی اپلیکیشنها را مشخص می کند و به شما امکان می دهد که کانتینرها را به گونه ای به یکدیگر وصل کنید که بتوانند مانند یک گروه عمل کنند. Compose در سرتاسر پلت فرمها قابل استفاده است و به شما امکان می دهد که خوشه های کانتینرهای بسیار پراکنده را نیز مدیریت کنید.
۴. کوبرنتیز گوگل :
کـوبرنتـیز گوگل هم بسیاری از ویژگیهای Swarm و مجموعه ابزارها را دارد ، اما در فضای مدیریت کانتینرها در سرور ابری عمومی و خصوصی پیشتاز است . کوبرنتیز از یک قالب open source که توسط Microsoft و بسیاری از شرکتهای دیگر استفاده می شود ، پشتیبانی می کند. تکنولوژی گوگل برای اجرا و مدیریت کانتینرهای Docker و CoreOS طراحی شده است و شما را قادر می سازد که کانتینرهای خود را در سراسر دستگاههای سرور ابری و سرور مجازی توزیع کنید. و بیشتر با مسائل مربوط به مدیریت و توسعه ی سرویس ها سر و کار دارد.
کوبرنتیز موتور کانتینر گوگل را تقویت می کند و طیفی از سایر سرورهای ابری و خدمات دیتاسنترها همچون AWS ، Azure ، vSphere و Mesos را نیز اجرا می کند. کانتینرها می توانند بسیار محکم و یا نسبتاً سست به یکدیگر وصل شوند. و این تکنولوژی با هدفمند کردن فرایند Docker از نصب سریع اپلیکیشنها در یک خوشه پشتیبانی می کند.
۵. Apache Mesos :
Apache Mesos نیز مانند سایر ابزارهای open source مورد اشاره ، به شما امکان می دهد که سرور ابری عمومی ، خصوصی ، ابر هیبریدی و حتی نرم افزار و سخت افزار سنتی در یک کامپیوتر مجزا را مدیریت کنید. Mesos با مدیریت منابع و برنامه ریزی سرو کار دارد. و غالباً به عنوان ” هسته ی منتشر سیستم ” که شما را قادر می سازد تا هزاران سروری را که از کانتینرها برای هاستینگ اپلیکیشنها استفاده می کنند ، را مدیریت کنید. Mesos مجموعه ای از برنامه های کمکی را تهیه می کند. که منابع را در اختیار برنامه ریز مرکزی قرار می دهند. این امر سبب می شود که کارها میان Node ها تقسیم شود. و در نتیجه بار کاری میان منابع مختلف در سرور ابری و سرور مجازی و یا سیستمهای سنتی متعادل شود. Mesos گزینه ی مناسبی برای پایگاههای داده پراکنده و بزرگ همچون Hadoop و Cassandra است.
۶. Joyent’s SmartOS and SmartDataCenter :
Joyent’s SmartDataCenter نرم افزاری است که سرور ابری عمومی Joyent را اجرا می کند . این نرم افزار یک پلت فرم مدیریتی را نیز در رأس سیستم عامل هوشمند Joyent ( سیستم عامل سرور) ایجاد می کند. می توانید از این سیستم عامل هوشمند برای به کارگیری سرورهای سبکی که توسط مجموعه ی JSON APIs اداره می شوند ، استفاده کنید .
با این حساب Smart Data Center و سیستم عامل هوشمند چه ارتباطی با یکدیگر دارند؟
Smart Data Center بر روی سرورهای SmartOS اجرا می شود. یک سرور به عنوان node اختصاصی مدیریت و باقی سرورها به عنوان ” node محاسبه گر ” عمل می کنند. سرویسها را به عنوان image نصب می کنید. و این اجزا در یک کتابخانه object وجود خواهند داشت. نکته ای که در اینجا وجود دارد این است که این دو تکنولوژی opensource بهترین امکانات سرور ابری عمومی Joyent را برای شما فراهم می کنند. و شما را قادر می سازند که سرور ابری را یا بسازید و یا مدیریت کنید . گرچه این ابزار ، یک ابزار بسیار ویژه است. اما خوب است حداقل بدانید که در صورت نیاز ، چنین ابزاری در دسترس شما وجود دارد.
۷. Ansible :
به عنوان ابزاری برای مدیریت پیکربندی سرور بر روی سرور ابری ، Ansible یک محصول open source بسیار خوشنام است . این ابزار برای آن طراحی شده است که ابزارهای مدیریت پیکربندی در اختیار کاربر قرار دهد، این ابزار مدیریت پیکربندی می تواند مدیریت سرور ابری را آسان تر کند. و سبب توسعه این سیستم شود.
هسته ی اصلی این این تکنولوژی یک سرویس مدیریتی است که از SSH برای مدیریت node ها و powershee لینوکس استفاده می کند ، به شکلی که بتوان از این دو همراه با سرورهای Windows استفاده کرد. یکی دیگر از بخشهای اصلی این ابزار Ansible Playbook است. این کتاب در حقیقت کتاب راهنمایی است که در خصوص سرورها یا سرویسهایی که از زبان YAML برای مرتب کردن داده ها استفاده می کنند ، اختیاراتی در اختیار کاربر قرار می دهد. این اطلاعات به ما امکان می دهد که برنامه ها و یا وظایف را به گونه ای که برای پشتیبانی و انجام کارهایتان نیاز دارید ، هماهنگ کنید.
حتی می توانید از این Playbook به عنوان بخشی از فرایند ارائه ی مستمر DevOps استفاده کنید. البته شما به ساخت ابزاری نیاز دارید که عمل نصب و پیکربندی را به صورت خودکار انجام دهند. Playbook می تواند اطلاعاتی را عرضه کنندگان سرورهای ابری عمومی ، خصوصی و ابر هیبریدی به دست آورد. که تا حد زیادی مدیریت شبکه ها و ماشینهای مجازی را ساده تر می کند.
کدام ابزار برای شما مناسب است؟
بهتر است قبل از آنکه در مورد انتخاب یک ابزار برای مدیریت سرور ابری تصمیم بگیرید ، به نکات زیر توجه کنید :
- نیازهای خود از قبیل لایه هایی که نیاز به مدیریت دارند ، را شناسایی کنید. لایه های مختلفی همچون لایه ی داده ها ، لایه ی اپلیکیشن ، لایه ی کانتینر ، لایه ی شبکه ، لایه ی ذخیره سازی ، لایه ی رایانش و … وجود دارند که هر کدام نیازهای مدیریتی مخصوص به خود را دارند.
- تمام ابزارهای open source برای هر کاری مناسب نیستند. گاهی بهتر است به جای دانلود کردن ابزارهای مدیریتی از GitHub ،برای دریافت برخی از امکانات تجاری مدیریت سرور ابری ، هزینه ای پرداخت کنید . با اینکه برخی از موسسات تمایل چندانی به این کار ندارند. اما این کار سبب صرفه جویی در هزینه ها در بلندمدت می شود.
- توجه داشته باشید که با گذشت زمان ، نیازهای مدیریتی شما و به تبع آن ابزارهای مورد نیاز شما نیز تغییر خواهند کرد . به مرور زمان شما از سیستمهای پیچیده تر استفاده می کنید و بنابراین تعداد و انواع ابزارهای مورد نیاز شما نیز پیچیده تر خواهد شد.
- مسائل امنیت و عملکرد را فراموش نکنید. لازم است که این دو مسئله را در زیرساختهای مدیریتی خود نیز مورد توجه قرار دهید. تا جایی که به مدیریت سرور ابری مربوط می شود ، به شکل سیستمیک به مسائل نگاه کنید.
- در هنگام انتخاب ابزار ، شرایط موجود موسسه ی خود و محیط سنتی آن را نیز در نظر بگیرید. بهترین کار آن است که از ابزاری استفاده کند که بتواند هم سرور ابری و هم پلت فرمهای غیر ابری رامدیریت کند. در اکثر موارد چنین کاری ممکن نیست. اما اگر بتوانید چنین ابزاری بیابید که بتواند هر دو محیط را مدیریت کند ، ساده ترین راه را یافته اید.
نوین هاست یار نوین شماست
رایانش ابری دائماً در حال تغییر است . باید منتظر ظهور تکنولوژیها و رویکردهای جدید ، از جمله گزینه های open source جدید در چند سال آینده باشیم. Open source همیشه به عنوان بخشی از رایانش ابری باقی خواهد ماند. اما ابزارهای مدیریت سرور ابری تغییر فراوان کرده و پیچیده تر می شوند. اما قطعاً شما نمی توانید تا آن زمان صبر کنید ، پس خود را به نیروی دانش مسلح کنید. مشکلاتی را که باید برطرف شوند ، بشناسید و خود را برای پیشرفت آماده کنید.