مقدمه
سلام به همه پی وی لرنی های عزیز!
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 محبوبیت زیادی دارد. |
دو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 مراحل نصب و استفاده بسیار ساده ای دارد.ا |
هفتJenkins ابزاری ادغام پیوسته ساخته شده است که برای ساخت و آزمایش مداوم پروژه های نرم افزاری مورد استفاده قرار می گیرد. | هفتHudson برای آزمایش و ساخت پروژه های نرم افزاری بطور مداوم مورد استفاده قرار می گیرد. |
هشتJenkins رابط کاربری گرافیکی ساده ای دارد. | هشتHudson رابط کاربری گرافیکی کاربرپسند و ساده ای دارد. |
می توان گفت جدول بالا و اطلاعات آن و هشت ویژگی ای که در خصوص Jenkins و Hudson و ارائه شد بهترین نوع مقایسه آن ها با یکدیگر است.
حالا ما می دانیم که Jenkins و Hudson چه تفاوت های عمده ای دارند و دلیل محبوبیت آن ها میان توسعه دهندگان چیست.
البته همان طور که قبلاً هم اشاره شد نحوه عملکرد هر دوی آن ها بستگی به نوع پروژه ای دارد که در حال کار بر روی آن هستید.
به عبارت بهتر نمی توان مستقیماً توصیه به استفاده از یکی از این ابزار ها کرد.
بسته به نوع نیاز شما، انتخاب بین Jenkins و Hudson مسئله ای که نوع پروژه تان آن را تعیین می نماید.
کلام آخر
در این مقاله به آشنایی با تفاوت های Jenkins و Hudson پرداختیم.
سعی کردیم در یک مقاله با تفاوت های عمده Jenkins و Hudson آشنا شویم؛ این شناسایی تفاوت ها می تواند راهنمای خوبی برای توسعه دهندگان باشد تا بین این دو ابزار آن یکی را که می تواند نیاز های آن ها را رفع نماید انتخاب کند.
البته Jenkins و Hudson این قابلیت را دارند که به صورت جداگانه مورد استفاده قرار بگیرند و حتی در این صورت هم خوب از پس کار ها بر بیایند.
اگر شک دارید که میان این دو کدام یک را انتخاب کنید بهتر است اول به پروژه تان و ویژگی های تان نگاه کنید.
پس از بررسی پروژه تان، یقیناً می توانید درست ترین تصمیم را بگیرید.
امیدوارم این مقاله برای شما مفید بوده باشد.
با پی وی لرن همراه باشید.