آشنایی با تفاوت های Jenkins و Hudson

مقدمه

سلام به همه پی وی لرنی های عزیز!
Jenkins و Hudson هر دو سرور هایی هستند که که در توسعه ادغام سازی مداوم Continuous Integration به اختصار (CI) کمک می کنند.
هر دو این ابزار ها مبتنی بر  بر جاوا هستند.
نکته جالب این است که Jenkins و Hudson هر دو از یک جا نشأت گرفته اند.
وجود پاره ای از اختلافات کاری موجب جدایی Jenkins و Hudson شد.
Jenkins توسط ۶۰٪ از توسعه دهندگان استفاده می شود در حالی که تنها ۳٪ از Hudson استفاده می نمایند.
Jenkins نه تنها برای ادغام مداوم مورد استفاده قرار می گیرد بلکه از برخی عملکردهای پیچیده تر نیز پشتیبانی می کند.
با همه این ها Jenkins و Hudson هر دو بخش مهمی از Java هستند.
در این مقاله قصد داریم به آشنایی با تفاوت های Jenkins و Hudson بپردازیم.

آشنایی با تفاوت های Jenkins و Hudson

برای آشنایی با تفاوت های Jenkins و Hudson به نه مورد ارائه شده زیر توجه نمایید.

یک

تفاوت اصلی بین هادسون و جنکینز در این است که یکی منبع باز است اما دیگری منبع مختلف است و این در حالی است که هر دو از یک منبع سر چشمه گرفته اند.
برای ساختن محیط های مبتنی بر ادغام مداوم می توان از Jenkins و Hudson استفاده کرد.
هر دوی این ابزار ها برای ادغام مداوم مناسب هستند.

دو

ابزارهای ادغام مداوم ، هر دو در اتوماسیون و استقرار پروژه های جاوا بر اساس نیاز روزانه، هفتگی یا ساعتی کمک می کنند.
آنها هر دو در اتوماسیون کلی پروژه جاوا از ساختن منبع تا اجرای آن از طریق تست واحد کمک می کنند.

پس از نتایج آزمایش موفقیت آمیز می توانید کد را به سرورهای تولیدی مورد نظر خود ارسال کنید.

سه

هر زمان که یک توسعه دهنده تغییراتی در کد منبع ایجاد یا انجام دهد، اگر تمام برنامه ها و کارها را قبلاً تنظیم کرده باشید تمام مراحل اتوماسیون به طور خودکار و بدون هیچ گونه مداخله انسانی آغاز می شود.
Jenkins برای استفاده و نصب آسان است و البته همین ویژگی هم برای Hudson وجود دارد.

چهار

می توان گفت تفاوت اصلی Jenkins و Hudson در این است که نشان تجاری Hudson متعلق به اوراکل است در حالی که Jenkins دارای مجوز از MIT است.

پنج

ما می توانیم به بسیاری از انواع و کارکردهای ارائه شده توسط سرورهای Jenkins و Hudson به عنوان ادغام مداوم اشاره کنیم.
اما این مورد کاملاً بستگی به این دارد که چه نوع پروژه ای را توسعه می دهید و چه ویژگی هایی را در فرآیند توسعه نرم افزار خود به کار می برید.

شش

جامعه بزرگی از توسعه دهندگان در سراسر جهان وجود دارند که از Jenkins به جای Hudson استفاده می کنند.
زیرا جنکینز از بیش از ۳۰۰ افزونه به غیر از ۱۰۰۰ پلاگین پشتیبانی می کند و سبب محبوبیت Jenkins شده است.

هفت

مواردی که گفته شد نشان از این نیست که Hudson خیلی هم دست و پا بسته است.
همانطور که گفتم کاملاً این مسئله به الزامات پروژه بستگی دارد که از Hudson استفاده کنید و یا از Jenkins.
یکی از نقاط قوت Hudson این است که پیکربندی ساده تری نسبت به Jenkins دارد.

هشت

اگر پروژه شما بزرگ است و برنامه نویسان زیادی روی آن کار می کنند Jenkins می تواند گزینه بهتری باشد.
زیرا اگر به هم تیمی های خود دسترسی داشته باشید Jenkins روند ساخت و استقرار پروژه تان را راحتتر می کند.
در این صورت به مقدار قابل توجهی در زمان صرفه جویی خواهید کرد.

نه

در مقایسه با Hudson می توان گفت که Jenkins از تعهد بیشتری نسبت به Git برخوردار است.
Hudson از تغییرات و مدیریت تغییر استقبال می کند در حالی که Jenkins این گونه نیست.
البته این نکته هم قابل ذکر است که نه Jenkins و نه Hudson  از تغییرات مداوم پشتیبانی نمی کنند.
این تکته هم قابل توجه است که Hudson برای اهداف ادغام مداوم ساخته شده است.

در ادامه آشنایی با تفاوت های Jenkins و Hudson جدولی ارائه می کنیم که برجسته ترین ویژگی های این دو ابزار را مقایسه می کند.

 

آشنایی با تفاوت های Jenkins و Hudson

آشنایی با تفاوت های Jenkins و Hudson

مقایسه کلی

در جدول زیر می توانید تفاوت بین Jenkins و Hudson را به صورت کلی مشاهده نمایید.

JenkinsHudson
یک

محبوب ترین سرورها در بین توسعه دهندگان به ویژه در جاوا. Jenkins هم از ادغام مداوم و هم از تحویل مداوم پشتیبانی می کند.

یک

در بین توسعه دهندگان Hudson محبوبیت زیادی دارد.
Hudson از Continuous Delivery های شبیه به Jenkins حمایت نمی کند.

دو

Jenkins بیش از ۱۴۰۰ افزونه برای ابزارهای نرم افزاری دارد.

دو

Hudson از تعداد زیادی افزونه برای ابزارهای نرم افزاری نیز پشتیبانی می کند.

سه

Jenkins یک سرور ادغام پیوسته منبع باز است که قابلیت های مختلفی قابل . قبال توجهی را ارائه می کند و برخی از ویژگی های آن مضاف بر ویژگی های عادی آن است.

سه

Hudson همان سرور مورد استفاده برای ادغام مداوم است که همچنین قابلیت های مختلفی دارد اما به اندازه Jenkins قابل گسترش نیست.

چهار

Jenkins با ابزارهایی مانند JBoss ، Sauce Labs ، DataDog و همچنین ابزارهای مختلف کنترل نسخه مانند Git ، Subversion ، CVS ، Mercurial و غیره در حال ادغام است.

چهار

Hudson با ابزارهایی مانند Java ، Javascript ، HTML5 و همچنین ابزارهای کنترل نسخه مانند CVS ، Subversion ، Git ، Perforce و غیره ادغام شده است.

پنج

Jenkins از Hudson جدا شده است.

پنج

Hudson سرور مستقلی مانند Jenkins است.

شش

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

شش

Hudson مراحل نصب و استفاده بسیار ساده ای دارد.ا
دغام کردن از طریق Hudson هم خیلی ساده و راحت است.

هفت

Jenkins ابزاری ادغام پیوسته ساخته شده است که برای ساخت و آزمایش مداوم پروژه های نرم افزاری مورد استفاده قرار می گیرد.

هفت

Hudson برای آزمایش و ساخت پروژه های نرم افزاری بطور مداوم مورد استفاده قرار می گیرد.

هشت

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

هشت

Hudson رابط کاربری گرافیکی کاربرپسند و ساده ای دارد.

می توان گفت جدول بالا و اطلاعات آن و هشت ویژگی ای که در خصوص Jenkins و Hudson و ارائه شد بهترین نوع مقایسه آن ها با یکدیگر است.
حالا ما می دانیم که Jenkins و Hudson چه تفاوت های عمده ای دارند و دلیل محبوبیت آن ها میان توسعه دهندگان چیست.
البته همان طور که قبلاً هم اشاره شد نحوه عملکرد هر دوی آن ها بستگی به نوع پروژه ای دارد که در حال کار بر روی آن هستید.
به عبارت بهتر نمی توان مستقیماً توصیه به استفاده از یکی از این ابزار ها کرد.
بسته به نوع نیاز شما، انتخاب بین Jenkins و Hudson مسئله ای که نوع پروژه تان آن را تعیین می نماید.

کلام آخر

در این مقاله به آشنایی با تفاوت های Jenkins و Hudson پرداختیم.
سعی کردیم در یک مقاله با تفاوت های عمده Jenkins و Hudson آشنا شویم؛ این شناسایی تفاوت ها می تواند راهنمای خوبی برای توسعه دهندگان باشد تا بین این دو ابزار آن یکی را که می تواند نیاز های آن ها را رفع نماید انتخاب کند.
البته Jenkins و Hudson این قابلیت را دارند که به صورت جداگانه مورد استفاده قرار بگیرند و حتی در این صورت هم خوب از پس کار ها بر بیایند.

اگر شک دارید که میان این دو کدام یک را انتخاب کنید بهتر است اول به پروژه تان و ویژگی های تان نگاه کنید.
پس از بررسی پروژه تان، یقیناً می توانید درست ترین تصمیم را بگیرید.

امیدوارم این مقاله برای شما مفید بوده باشد.
با پی وی لرن همراه باشید.

به اشتراک بگذارید