معرفی ابزارهای کاربردی و متن‌باز در حوزه‌ی DevOps


۱۰ فروردین ۱۴۰۰
معرفی ابزارهای کاربردی و متن‌باز در حوزه‌ی devops

به‌عنوان یک مهندس DevOps بایستی باکیفیت‌ترین اتوماسیون زیرساخت را ارائه دهید و اگر یک توسعه‌دهنده هستید، انتخاب و یا حتی راه‌اندازی زیرساخت مناسب برای برنامه‌هایتان بسیار مهم است. خوشبختانه ابزارهای DevOps بهترین همراهان شما در این مسیر هستند زیرا می‌توانند به شما در صرفه‌جویی وقت، برقراری ارتباط و همکاری در پروژه‌هایتان کمک کنند.

ابزارهای توسعه

در این بخش لیستی از ابزارهای محبوب و مشهور را معرفی می‌کنیم که در افزایش بهره‌وری موثر هستند.

Vagrant

Vagrant در میان ابزارهای DevOps به‌طور گسترده‌ای به‌منظور توسعه و تست استفاده می‌شود. همچنین می‌توانید از آن برای ایجاد محیط‌های Development یا شبیه‌سازی محیط Production استفاده کنید.

با استفاده از Vagrant می‌توانید ماشین‌های مجازی مورد نظر خود را با import کردن box (virtual machine template) از vagrant cloud راه‌اندازی کرده و به‌نسبت تنظیمات مورد نیاز خود، آن‌ها را پیکربندی کنید. حتی می‌توانید اجرای ابزارهای Puppet و Chef را برعهده‌ی این ابزار بگذارید.

از بهترین قابلیت‌‌های Vagrant می‌توان به وجود بسیاری برنامه‌های کاربردی مضاعف در این ابزار اشاره داشت. مثلا اگر بخواهید برنامه‌ی خود را بر روی وب‌سرور LAMP توسعه دهید می‌توانید در Vagrant cloud به‌دنبال LAMP box باشید.

پس از جستجوی LAMP box در Vagrant cloud تمام boxهای موجود برای شما لیست می‌شود. به این صورت می‌توانید زمان خود را صرفه‌جویی کرده و از پیکربندی‌ها خلاص شوید.

این ابزار به شما امکان می‌دهد محیط‌های sandbox شده را بدون دردسر پیکربندی و اجرا کنید. برای مثال اگر می‌خواهید محیط‌های توسعه‌ی Python 2 و Python 3 را با هم داشته باشید می‌توانید از دو Vagrant box موجود در Vagrant cloud استفاده کنید.

علاوه‌براین‌ها می‌توانید chef cookbooks، puppet module یا ansible playbooks خودتان را داشته باشید و از آن‌ها در فایل پیکربندی Vagrant استفاده کنید.

همچنین این ابزار به شما امکان می‌دهد به‌راحتی با اشتراک گذاشتن Vagrant file خود، همان ماشین مجازی که در سیستم شما وجود دارد را در سرور یا سیستم دیگری راه‌اندازی کنید. به این صورت مشکل‌های انتقال پروژه از محیط Development به Production را نخواهید داشت.

Docker

اگر از دنبال‌کنندگان وبلاگ لیارا باشید، قبل‌تر در مقاله‌ای باعنوان مقدمه‌ای بر پلتفرم Docker به مزیت‌های این ابزار پرداخته‌ایم. Docker ابزاری متن باز است که به توسعه‌دهندگان امکان ایجاد و مدیریت برنامه در Docker containerهای مجزا‌ را ارائه می‌دهد.

Docker Hub یک ریپازیتوری آنلاین برای Docker imageهای آماده است که هرکسی می‌تواند از آن‌ها استفاده کند بنابراین با استفاده از این ابزار نیازی به استفاده از ماشین‌های مجازی یا پیکربندی‌های پیچیده‌ نیست. از دیگر مزیت‌های Docker می‌توان به زمان کوتاه راه‌اندازی Docker containerها اشاره داشت که اجرای آن‌ها فقط در چند ثانیه انجام می‌شود.

علاوه‌بر Docker ابزار دیگری با نام Kinematic وجود دارد. این ابزار نصب Docker engine، Docker machine و سایر کامپوننت‌های Docker را به‌صورت خودکار انجام می‌دهد.

رابط کاربری گرافیکی این ابزار در مدیریت Docker containerها بسیار مفید است. از دیگر ویژگی‌های Kinematic می‌توان به قابلیت جستجوی imageها، سوئیچ بین حالت‌‌های CLI و GUI، مدیریت پورت‌ها، پیکربندی environment variableها و … اشاره داشت.

Packer

استفاده از ابزار Packer را به کسانی که با ماشین‌های مجازی ابری کار می‌کنند توصیه می‌کنیم. این ابزار، ایجاد image برای ارائه‌دهنده‌های سرویس‌های ابری را به‌صورت خودکار انجام می‌دهد.

شما می‌توانید یک packer configuration ثابت برای ایجاد image موردنظرتان بنویسید و از آن در چندین ارائه‌دهنده سرویس‌های ابری استفاده کنید. همچنین می‌توانید از Shell، Ansible، Chef برای تنظیم خودکار پیکربندی برنامه‌هایتان در VM image استفاده کنید.

ابزار Continuous Integration

Continuous Integration یا به‌عبارت دیگر CI، یکی از مباحث پراهمیت در زیرساخت و از مباحث الزامی برای هر مهندس DevOps است. در ادامه به برخی ابزارهای متن باز می‌پردازیم که نیازهای شما در مبحث CI را برطرف می‌کنند.

Jenkins

Jenkins یک ابزار CI متن باز محبوب همراه با جامعه‌ی پشتیبانی گسترده است و یادگیری آسانی دارد. فقط آن را نصب کنید و از در پروژه‌های Java یا .Net خود استفاده کنید. Docker imageها برای اکثر نسخه‌های Jenkins در دسترس هستند.

Github Actions

اگر کدهای خود را بر روی GitHub قرار می‌دهید می‌توانید از قابلیت GitHub Action برای مباحث CI استفاده کنید مثلا ما در مقاله راه‌اندازی CI/CD به وسیله GitLab و GitHub در لیارا پروژه‌ی مورد نظرمان را به‌کمک این قابلیت بر روی لیارا مستقر کردیم. همچنین می‌توانید جریان کاری مشخصی ایجاد کنید تا روند build کردن و release به‌صورت خودکار انجام شود.

Travis CI

Travis CI یک پلتفرم CI است که بر روی سرورهای ابری میزبانی می‌شود و می‌توانید از آن برای پروژه‌های متن باز خود استفاده کنید. همچنین استفاده از آن رایگان است.

پلتفرم‌های Version Control

بهترین روش برای مدیریت نسخه‌ی برنامه‌هایتان استفاده از Version Control System است. به‌عنوان یک مهندس DevOps موظف هستید که از بهترین روش‌های توسعه پیروی کرده و برای همه‌ی کدهای خود از VCS استفاده کنید.

GitHub

GitHub یک بخش جدا نشدنی از توسعه‌ی نرم‌افزار است زیرا این پلتفرم آنلاین با ارائه Version Control، Supply chain management (SCM)، Bug tracking و بسیاری قابلیت‌های دیگر محبوبیت بسیار زیادی پیدا کرده است. علاوه‌براین‌ها در این پلتفرم ویژگی‌های جالب شبکه‌های اجتماعی مانند دنبال کردن دیگر توسعه‌دهندگان نیز وجود دارد.

توسعه‌دهندگان به کدهای منتشر شده در ریپازیتوری‌های عمومی دسترسی دارند و حتی می‌توانند کدهای خودشان را در ریپازیتوری‌های این پلتفرم قرار دهند.

Bitbucket

Bitbucket را می‌توان پلتفرمی دانست که از در کنار هم قرار داده شدن Mercurial و Git به‌وجود آماده و توسعه‌دهندگان می‌توانند در این پلتفرم به‌تعداد نامحدودی ریپازیتوری‌های private ایجاد کرده، آن‌ها را مدیریت کنند و یا به‌اشتراک بگذارند.

همچنین این پلتفرم با ابزار Jira که برای مدیریت پروژه‌ها استفاده می‌شود، سازگار شده است.

Gtilab

اگر می‌خواهید یک پلتفرم مانند GitHub برای خودتان راه‌اندازی کنید می‌توانید به‌سراغ Gitlab بروید. پس از راه‌اندازی این پلتفرم می‌توانید از آن برای میزبانی کدهای برنامه‌ به‌روشی مدیریت شده استفاده کنید. علاوه‌براین‌ها اگر از پیکربندی نرم‌افزار متنفر هستید استفاده از Gitlab Docker image به شما توصیه می‌شود.

ابزارهای همکاری و ارتباط

Slack

Slack یک ابزار مفید برای همکاری در پروژه است و با یک لیست طولانی از برنامه‌ها مانند Google Calendar، Skype، Trello، GitHub، Jira سازگار شده. اگر به‌دنبال ابزاری برای ایده‌پردازی، برقراری ارتباط و همکاری هستید، Slack انتخاب مناسبی برای شما است.

این ابزار در پلتفرم‌های Web، Desktop، Mac، Windows، Linux، iOS، Android و Windows Phone در دسترس است.

Trello

Trello یک ابزار مدیریت پروژه بسیار جالب است که می‌توانید به‌کمک آن پروژه‌هایتان را در boardها سازماندهی کنید. این ابزار تقریبا تمام ویژگی‌های مورد نیاز شما را پوشش داده است و می‌تواند به شما در ساماندهی موثر وظایف کمک کند.

این ابزار در پلتفرم‌های Web، iOS و Android در دسترس است.

Asana

Asana بهترین ابزاری است که می‌تواند در همکاری با اعضای تیم به شما کمک کند. این ابزار یک سیستم مدیریت پروژه هوشمند یکپارچه و سازگار را ارائه می‌دهد. یکی دیگر از ویژگی‌های جالب این ابزار، real-time بودن آن است و به شما این امکان را می‌دهد تا با ارسال ایمیل، کارها را مدیریت کنید.

همچنین می‌توانید نظرها و یادداشت‌ها را مستقیما در Asana اضافه کنید یا مثلا می‌توانید پروژه‌های جداگانه‌ای ایجاد کنید و در هر پروژه کارهای مختلفی انجام دهید. به‌طور خلاصه Asana ابزاری عالی برای مدیریت پروژه است.

این ابزار در پلتفرم‌های Web، iOS و Android در دسترس است.

منبع: https://devopscube.com/list-of-open-source-free-tools

خدمات رایگان لیارا

۲.۵ گیگابایت فضای ذخیره‌سازی ابری رایگان

۲.۵ گیگابایت Object Storage سازگار با پروتکل S3 با دیسک‌های SSD به‌صورت رایگان دریافت کنید.

هاست رایگان برای دیتابیس‌

دیتابیس‌های MariaDB، PostgreSQL و Redis را فقط با یک کلیک و به‌صورت رایگان تهیه کنید.

سرویس DNS رایگان

به سادگی دامنه‌تان را اضافه کنید و به صورت رایگان رکورد‌های آن را مدیریت کنید.

۱۰۰ هزار تومان اعتبار اولیه

بعد از ثبت نام در لیارا مبلغ ۱۰۰ هزار تومان اعتبار هدیه دریافت می‌کنید که با توجه به ساعتی بودن هزینه سرویس‌ها، می‌توانید تمامی خدمات پولی را برای چندین هفته رایگان استفاده کنید.

ارسال ۱۰۰ ایمیل تراکنشی رایگان در هر ماه

در سرویس ایمیل لیارا شما می‌توانید تا ۱۰۰ ایمیل رایگان در هر ماه ارسال کنید و فقط برای بیش از آن هزینه پرداخت کنید. (به‌همراه دسترسی SMTP)

هاست رایگان برای انواع وبسایت

تفاوتی ندارد برای وبسایت خود از Node استفاده می‌کنید یا Laravel و Django، در لیارا می‌توانید به صورت کاملا رایگان آن را میزبانی کنید.

توسعه‌دهندگان درباره‌ی ما چه می‌گویند

تجربه کار باliara_cloud@امروز خیلی خوب بود. یکی از سرویس هام رو منتقل کردم روش و راضیم. انقد سریع و جذاب کارم راه افتادم اصن باورم نمیشد! برعکس سرویس های PaaS دیگه با اون همه پیچیدگیشون. دمتون گرم
...

MohammadReza
liara testimonial
keikaavousi

بعد از بسته شدن @fandoghpaas و ناراحتی همه‌مون از اینکه یه سرویس خوب و صادق نمی‌تونه از پس هزینه‌ها بر بیاد، سرویسم رو منتقل کردم به پاس لیارا (https://liara.ir @liara_cloud) . تجربه راحت و خوب. تفاوت‌هایی داشت که کمی کار می‌خواست ولی تا الان کاملا راضی.

jadi
liara testimonial
jadi

یه خسته نباشید باید به تصمیمliara_cloud@بگم،
بعد از چندین روز سرکله زدن با سرویس های مشابه بالاخره تصمیم گرفتم لیارا رو امتحان کنم و باور نمیشه ۱۰ دقیقه بیشتر وقت نبرد،
دمتون گرم.

Arch
liara testimonial
EbadiDev

واسه سرویس PaaS با اختلاف لیارا بهترین رابط کاربری داره و یکی از مزیت‌های سرویس دیتابیس‌شون اینه که خودشون به صورت دوره‌ای بکآپ میگیرن.
...

Ali Najafi
liara testimonial
me_ali_najafi

یکی از کارهای خوبی که جدیداً میکنم اینه که یه دیتابیس روی لیارا میسازم و به پروژه وصل میکنم اینطوری هم خونه و هم محل کار دیتابیس بروز رو دارم و راحت میتونم ادامه بدم کار روliara_cloud@

Navid
liara testimonial
1navid

عاشقliara_cloud@شدم درسته در حد AWS نیست ولی خب تجربه خوبی واسه پروژه های داخل ایران ارائه میده، میتونم رو CD هم اجراش کنم

Amir H Shekari
liara testimonial
vanenshi