Pertanyaan Gitlab CI vs Jenkins


Adakah yang bisa tolong beritahu saya apa perbedaan antara Jenkins dan CI lainnya seperti Gitlab-CI, drone.io datang dengan distribusi GIT. Pada beberapa penelitian, saya hanya bisa muncul bahwa edisi komunitas Gitlab tidak mengizinkan Jenkins untuk ditambahkan tetapi edisi enterprise Gitlab memilikinya. Adakah perbedaan signifikan lainnya.


76
2018-05-25 06:34


asal


Jawaban:


Ini adalah pengalaman saya:

Di pekerjaan saya, kami mengelola repositori kami dengan gitlab ee dan kami memiliki server Jenkins (1.6) berjalan.

Pada dasarnya, mereka melakukan hal yang sama. Mereka akan menjalankan beberapa skrip pada gambar server / buruh pelabuhan.

TL; DR; 

  • Jenkins lebih mudah digunakan / dipelajari tetapi memiliki risiko untuk menjadi plugin neraka
  • Jenkins memiliki GUI (ini dapat dipilih jika harus dapat diakses / dipelihara oleh orang lain)
  • Integrasi dengan GitLab kurang dari dengan Gitlab-ci
  • Jenkins dapat dipisah dari repo Anda

Sebagian besar server CI cukup lurus ke depan (concourse.ci, gitlab-ci, lingkaran-ci, travis-ci, drone.io, gocd dan apa lagi yang Anda punya). Mereka memungkinkan Anda untuk mengeksekusi shell / bat dari definisi file yaml. Jenkins jauh lebih mudah digulirkan, dan dilengkapi dengan UI. Ini dapat berupa keuntungan atau kerugian, tergantung pada kebutuhan Anda.

Jenkins sangat dapat dikonfigurasi karena semua plugin yang tersedia. Kelemahan dari ini adalah server CI Anda bisa menjadi spageti plugin.

Menurut pendapat saya chaining dan orkestasi pekerjaan di Jenkins jauh lebih sederhana (karena UI) daripada melalui Yaml (memanggil perintah curl). Selain itu Jenkins mendukung plugin yang akan menginstal binari tertentu ketika mereka tidak tersedia di server Anda (tidak tahu tentang itu untuk yang lain).

Saat ini (jenkins2 juga mendukung lebih "ci tepat" dengan Jenkinsfile dan pipline plugin yang berasal default dari Jenkins 2), tetapi digunakan untuk kurang digabungkan ke repositori daripada i.e. gitlab ci.

Menggunakan file yaml untuk menentukan pipeline build Anda (dan pada akhirnya menjalankan shell / bat murni) lebih bersih.

EDIT: apa yang saya lupa sebutkan di sini adalah plug-in yang tersedia untuk Jenkins yang memungkinkan Anda untuk memvisualisasikan semua jenis pelaporan, seperti hasil tes, cakupan dan analisis statis lainnya. Tentu saja Anda selalu dapat menulis atau menggunakan alat untuk melakukan ini untuk Anda, tetapi ini jelas merupakan nilai tambah bagi Jenkins (terutama bagi manajer yang cenderung menilai laporan-laporan ini terlalu banyak)

EDIT2: Akhir-akhir ini saya bekerja lebih banyak dengan Gitlab-ci. Di Gitlab, mereka melakukan pekerjaan luar biasa yang membuat seluruh pengalaman itu menyenangkan. Saya mengerti bahwa orang menggunakan Jenkins, tetapi ketika Anda memiliki Gitlab berjalan dan tersedia, sangat mudah untuk memulai dengan Gitlab-ci. Tidak akan ada apa pun yang akan berintegrasi dengan mulus seperti Gitlab-ci, meskipun mereka cukup berupaya dalam integrasi pihak ke-3.

  • Dokumentasi mereka harus Anda mulai dalam waktu singkat
  • ambang batas untuk memulai sangat rendah
  • Perawatannya mudah (tidak ada plugin)
  • pelari skala sederhana
  • CI sepenuhnya bagian dari repositori Anda
  • Pekerjaan / pandangan Jenkins bisa jadi berantakan

Beberapa fasilitas pada saat menulis

  • Hanya mendukung untuk satu file, tetapi itu akan menjadi tetap segera

80
2018-05-25 07:08



Saya setuju dengan sebagian besar catatan Rik tetapi pendapat saya tentang yang lebih sederhana adalah sebaliknya: GitLab terbukti menjadi alat yang luar biasa untuk digunakan.

Sebagian besar kekuatan berasal dari keberadaan mandiri dan mengintegrasikan segalanya dalam produk yang sama di bawah tab browser yang sama: dari browser repositori, papan masalah, atau riwayat build untuk alat penyebaran dan pemantauan.

Saya menggunakannya sekarang untuk mengotomatisasi dan menguji bagaimana aplikasi menginstal pada distribusi Linux yang berbeda dan itu saja super cepat untuk mengkonfigurasi (coba buka konfigurasi pekerjaan Jenkins yang rumit di firefox dan tunggu skrip non-responsif untuk muncul vs. seberapa ringan untuk mengedit .gitlab-ci.yml). Waktu yang dihabiskan untuk mengkonfigurasi / mengais budak jauh lebih sedikit berkat biner pelari; ditambah fakta bahwa dalam GitLab.com Anda mendapatkan pelari bersama yang cukup layak dan gratis.

Jenkins merasa lebih manual setelah beberapa minggu menjadi pengguna kekuatan GitLab CI, mis. menduplikasi pekerjaan per cabang, memasang plugin untuk melakukan hal-hal sederhana seperti upload SCP. Satu-satunya use case yang saya hadapi di mana saya melewatkannya untuk hari ini adalah ketika lebih dari satu repositori terlibat; yang perlu dikenali dengan baik.

Btw, Saya sedang menulis seri di GitLab CI untuk menunjukkan bagaimana tidak sulit untuk mengatur repositori infrastruktur CI Anda dengannya. Diterbitkan minggu lalu, bagian pertama memperkenalkan dasar-dasar, pro dan kontra, dan perbedaan dengan alat lain: https://solidgeargroup.com/gitlab_countinuous_integration_intro


34
2018-03-08 13:02