این مقاله به بخش دوم از معرفی ابزارهای DevOps میپردازد. در صورتی که هنوز بخش اول را مطالعه نکرده اید، توصیه میشود ابتدا به آن مراجعه نمایید.
ابزارهای مدیریت ایمیج
ابزار DevOps جهت مدیریت ایمیج، به شما در خودکارسازی ماشین مجازی و ایمیج کانتینرها کمک میکند.
11. Packer
اگر میخواهید با استفاده از ماشینهای مجازی یک زیرساخت ثابت و غیرقابل تغییر ایجاد کنید، ابزار Packer می تواند بسیار مفید باشد. این ابزار DevOps به شما کمک می کند تا تمام اجزا وابسته (dependencies) را در قالب یک پکیج ایجاد و یک ایمیج VM با قابلیت استقرار بسازید. این ابزار می تواند ایمیج ماشین های مجازی را در هر دو ابر خصوصی و عمومی مدیریت کند. همچنین میتوانید Packer را به عنوان بخشی از پایپ لاین CI خود قرار دهید تا بتوانید یک ایمیج ماشین مجازی قابل استقرار بسازید.
12. Docker
تصویر(1)
داکر بر اساس مفهوم مجازیسازی در سطح پروسه عمل نموده و محیطهای ایزوله ای به نام کانتینر برای برنامهها ایجاد میکند. این کانتینرها میتوانند بدون نیاز به اعمال تغییرات در برنامه، به سرورهای مختلف منتقل شوند. ابزار DevOps داکر به عنوان یک پیشرفت بزرگ در فناوری مجازیسازی شناخته میشود. Docker دارای یک جامعه توسعهدهنده بزرگ است و در بین متخصصان DevOps و رایانش ابری، از محبوبیت بسیار زیادی برخوردار می باشد.
13. Podman
Podman یک ابزار DevOps متن باز مدیریت کانتینر همانند Docker است. این ابزار به شما امکان میدهد کانتینرها را بدون نیاز به دسترسی روت اجرا نمایید. همچنین، کانتینرها به عنوان pod نیز قابل اجرا می باشند. خبر خوب این است که شما میتوانید با همان تنظیمات pod در Podman، اقدام به استقرار pod ها در Kubernetes نمایید.
ابزارهای توسعه زیرساخت
از ابزارهای زیر می توانید برای توسعه و آزمایش کد زیرساخت خود استفاده نمایید.
14. Vagrant
Vagrant یک ابزار DevOps عالی برای پیکربندی ماشینهای مجازی در محیط توسعه است. Vagrant روی پلتفرم های مجازی همچون VirtualBox، VMware، Hyper-V و.. اجرا میشود.
Vagrant از یک فایل پیکربندی به نام Vagrantfile استفاده میکند که حاوی تمام پیکربندیهای مورد نیاز برای ماشین مجازی است. بعد از ایجاد و آزمایش یک ماشین مجازی با استفاده از Vagrantfile، میتوان آن را با سایر توسعهدهندگان به اشتراک گذاشت تا محیطهای توسعه یکسانی داشته باشند. همچنین Vagrant دارای افزونههایی برای راه اندازی ابری و یکپارچگی با ابزارهای مدیریت پیکربندی همچون Chef، Puppet و.. می باشد که جهت پیکربندی ماشین مجازی در زمان اجرا قابل استفاده هستند.
15. Minikube
Minikube یک محیط توسعه local (محلی) با استفاده از Kubernetes فراهم میکند. شما میتوانید از Minikube برای توسعه و آزمایش Kubernetes استفاده نمایید. این ابزار DevOps بسیار سبک و سریع است.
مدیریت پیکربندی/رمزنگاری
15. Hashicorp Consul
تصویر(2)
Consul یک پایگاه داده برای ذخیره جفت های کلید-مقدار (key-value) می باشد که متن باز و بسیار قابل اعتماد است. اصلیترین کاربرد این ابزار DevOps اکتشاف سرویس ها و اتصال آنها به یکدیگر می باشد. اگر شما نیاز دارید تا پیکربندیها را به صورت بلادرنگ ذخیره و بازیابی نمایید، consul بهترین گزینه است.
16. etcd
etcd نیز پایگاه داده ای برای ذخیره جفت های کلید-مقدار می باشد که توسط تیم CoreOS ساخته شده است. etcd یکی از عناصر کلیدی محسوب شده و بخشی از معماری Kubernetes را جهت ذخیرهسازی وضعیت عملیات و پیکربندی cluster (خوشه) تشکیل میدهد.
17. Hashicorp Vault
Hashicorp Vault یک ابزار متنباز برای ذخیره و بازیابی دادههای محرمانه به صورت امن است. این ابزار DevOps قابلیتهای متنوعی برای ذخیره کلید رمزنگاری در اختیار شما قرار میدهد. شما میتوانید لیست های کنترل دسترسی (ACLs)، سیاستها و نقشها را ایجاد نمایید و همچنین مشخص کنید که کاربران تحت چه شرایطی بتوانند به داده های محرمانه دسترسی داشته باشند.
همچنین میتوانید Vault را با کلاستر Kubernetes یکپارچه نموده و اطلاعات محرمانه را به pod ها تزریق کنید.
مانیتورینگ و ثبت رویدادهای زیرساخت
مانیتورینگ نیز بخش مهمی از اتوماسیون زیرساخت است. شما میتوانید با استفاده از اطلاعات و هشدارهایی که از سیستمهای مانیتورینگ دریافت میکنید نسبت به اتخاذ تصمیمات خودکار مانند تنظیم میزان منابع، ارسال هشدار، رفع مشکل و.. استفاده نمایید. در ادامه به بررسی برخی از ابزارهای مانیتورینگ که میتوانند بخشی از زیرساخت شما باشند، پرداخته خواهد شد.
18. Prometheus & Alert Manager
تصویر(3)
Prometheus یک سیستم مانیتورینگ متنباز است. این سیستم بسیار سبک می باشد و به طور خاص برای مانیتورینگ برنامههای مدرن ساخته شده است. Prometheus از مانیتورینگ سرورهای لینوکس و کوبرنتیز پشتیبانی میکند.
این سیستم به صورت پیش فرض قابلیت مانیتورینگ Kubernetes و Openshift را دارد. alert manager تمام تنظیمات هشداردهی برای آمارهای مانیتورینگ را مدیریت میکند. همچنین ابزارهای متن باز زیادی برای کار با برنامه ها وجود دارد. شما می توانید از این ابزار ها که به آنها اصطلاحا exporter گفته می شود، برای ارسال اطلاعات آماری برنامه خود به Prometheus استفاده نمایید.
19. Zabbix
تصویر(4)
Zabbix یک ابزار مانیتورینگ کاربرپسند است که به سازمانها کمک می کند تا شبکه ها، سرورها، برنامهها و سرویس ها را مانیتور نمایند. این ابزار DevOps دارای ویژگی هایی همچون مانیتورینگ بلادرنگ، داشبوردهای قابل شخصی سازی و گزارشات ساده می باشد. با استفاده از Zabbix، میتوانید به سرعت مشکلات را شناسایی و برطرف نمایید. به دلیل رابط کاربری ساده و همچنین قابلیت سازگاری آن با نیازهای مختلف، Zabbix یک انتخاب محبوب بین کسبوکارهای کوچک تا بزرگ به شمار می رود.
20. Sensu
Sensu یک فریم ورک مانیتورینگ متنباز می باشد که به زبان Ruby نوشته شده و به طور اختصاصی برای محیطهای ابری ساخته شده است. شما میتوانید از ابزارهایی مانند chef و puppet برای استقرار آن استفاده نمایید. همچنین این ابزار DevOps دارای نسخهٔ سازمانی (enterprise) نیز برای امور مانیتورینگ می باشد.
نتیجهگیری
خودکارسازی زیرساخت یک نیاز برای هر تیم DevOps است. استفاده و انتخاب ابزار DevOps مناسب به عواملی مانند هزینه، مهارتها، قابلیتها و... بستگی دارد. مجددا تاکید می شود که یک ابزار خاص برای تمام نیازهای شما وجود ندارد. انتخاب مجموعه ای از ابزارها باید بر اساس نیازهای سازمان یا تیم موردنظر صورت گیرد و صرفا بر اساس قابلیت ابزارهای مختلف نمی توان تصمیم گیری نمود.