Jenkins Git Integration - Berguna untuk Setiap Profesional DevOps



Blog ini membincangkan mengenai penyatuan Git dengan Jenkins. Ia juga membincangkan kelebihan mengintegrasikan Git dengan Jenkins dan demo.

pastinya tidak lengkap tanpa Jenkins. Jenkins bersama dengan Git adalah gabungan yang luar biasa. Jadi dalam artikel ini, saya akan membincangkan mengenai Jenkins Git Integration dan kelebihannya. Petunjuk yang akan kita bahas adalah seperti berikut:

Oleh itu mari kita mulakan dengan topik pertama kita.





Apa itu Git - Mengapa Git Datang Ke Kehadiran?

Kita semua tahu 'Keperluan adalah ibu dari semua penemuan'. Begitu juga, Git muncul untuk memenuhi keperluan tertentu yang dihadapi oleh pembangun di hadapan Git. Oleh itu, mari kita mundur selangkah untuk mempelajari semua tentang Versi Sistem Kawalan (VCS) dan bagaimana Git wujud.

Kawalan Versi adalah pengurusan perubahan pada dokumen, program komputer, laman web besar dan pengumpulan maklumat lain.



Terdapat dua jenis VCS:

  • Sistem Kawalan Versi Berpusat (CVCS)

  • Sistem Kawalan Versi Teragih (DVCS)



VCS berpusat

Sistem kawalan versi terpusat (CVCS) menggunakan pelayan pusat untuk menyimpan semua fail dan membolehkan kerjasama pasukan. Ia berfungsi pada satu repositori di mana pengguna boleh mengakses pelayan pusat secara langsung.

Sila rujuk rajah di bawah untuk mendapatkan idea CVCS yang lebih baik:

Repositori dalam rajah di atas menunjukkan pelayan pusat yang boleh bersifat tempatan atau jauh yang disambungkan secara langsung ke setiap stesen kerja pengaturcara.

Setiap pengaturcara boleh mengekstrak atau kemas kini stesen kerja mereka dengan data yang ada di repositori. Mereka juga dapat membuat perubahan pada data atau komited ke repositori. Setiap operasi dilakukan secara langsung di repositori.

Walaupun kelihatan senang untuk mengekalkan satu repositori, ia mempunyai beberapa kelemahan utama. Sebahagian daripadanya adalah:

  • Ini tidak tersedia secara tempatan yang bermaksud bahawa anda selalu perlu dihubungkan ke rangkaian untuk melakukan tindakan apa pun.

  • Oleh kerana semuanya terpusat, bagaimanapun server pusat rosak atau rosak akan mengakibatkan kehilangan keseluruhan data projek.

Di sinilah VCS Teragih menyelesaikan masalah.

VCS yang diedarkan

Sistem ini tidak semestinya bergantung pada pelayan pusat untuk menyimpan semua versi fail projek.Dalam VCS Teragih, setiap penyumbang mempunyai salinan tempatan atau 'klon' dari repositori utama. Di sini semua orang menyimpan repositori tempatan mereka sendiri yang mengandungi semua fail dan metadata yang terdapat di repositori utama.

Anda akan memahaminya dengan lebih baik dengan merujuk rajah di bawah:

Seperti yang anda lihat dalam rajah di atas, setiap pengaturcara menyimpan repositori tempatan sendiri, yang sebenarnya adalah salinan atau klon repositori pusat pada cakera keras mereka. Mereka boleh melakukan dan mengemas kini repositori tempatan mereka tanpa gangguan.

Mereka dapat mengemas kini repositori tempatan mereka dengan data baru dari pelayan pusat dengan operasi yang disebut ' tarik 'Dan mempengaruhi perubahan pada repositori utama dengan operasi yang disebut' tolak 'Dari repositori tempatan mereka.

Sekarang mari kita cuba mengetahui mengenai definisi Git.

  • Git adalah alat kawalan versi terdistribusi yang menyokong aliran kerja tidak linear yang diedarkan dengan memberikan jaminan data untuk mengembangkan perisian yang berkualiti. Alat seperti Git memungkinkan komunikasi antara pengembangan dan pasukan operasi.

    apa yang dilakukan oleh iterator di java
  • Biasanya semasa anda membuat projek besar anda mempunyai sebilangan besar kolaborator. Oleh itu, sangat mustahak untuk mengadakan komunikasi antara kolaborator semasa membuat perubahan dalam projek.

  • Mesej komit di Git memainkan peranan yang sangat penting dalam berkomunikasi antara pasukan. Selain komunikasi, alasan terpenting untuk menggunakan Git adalah kerana anda selalu mempunyai versi kod yang stabil dengan anda.

  • Oleh itu, Git memainkan peranan penting dalam berjaya di DevOps.

Apa itu Jenkins?

Jenkins adalah alat automasi sumber terbuka yang ditulis di Java dengan plugin yang dibina untuk tujuan Integrasi Berterusan. Jenkins digunakan untuk membangun dan menguji projek perisian anda secara berterusan sehingga memudahkan para pembangun untuk mengintegrasikan perubahan pada projek tersebut, dan memudahkan pengguna memperoleh build baru. Ini juga memungkinkan Anda untuk terus menyampaikan perisian anda dengan mengintegrasikan dengan sejumlah besar teknologi pengujian dan penerapan.

Dengan Jenkins, organisasi dapat mempercepat proses pengembangan perisian melalui automasi. Jenkins mengintegrasikan proses kitaran hidup pembangunan dari semua jenis, termasuk membina, dokumen, ujian, pakej, tahap, penggunaan, analisis statik dan banyak lagi.

Jenkins mencapai Integrasi Berterusan dengan bantuan pemalam. Plugin membolehkan penyatuan pelbagai peringkat DevOps. Sekiranya anda ingin mengintegrasikan alat tertentu, anda perlu memasang pemalam untuk alat tersebut. Contohnya projek Git, Maven 2, Amazon EC2, penerbit HTML, dll.

Kelebihan Jenkins merangkumi:

  • Ini adalah alat sumber terbuka dengan sokongan masyarakat yang hebat.

  • Terlalu senang dipasang.

  • Ia mempunyai 1000+ pemalam untuk memudahkan kerja anda. Sekiranya pemalam tidak ada, anda boleh membuat kod dan membaginya dengan komuniti.

  • Ia adalah percuma.

  • Ia dibina dengan Java dan oleh itu, ia mudah dibawa ke semua platform utama.

    pasang php pada windows 7

Anda sekarang tahu bagaimana Jenkins mengatasi kekurangan SDLC tradisional. Jadual di bawah menunjukkan perbandingan antara 'Sebelum dan Selepas Jenkins'.

Sebelum JenkinsSelepas Jenkins
Keseluruhan kod sumber dibina dan kemudian diuji. Mencari dan memperbaiki bug sekiranya kegagalan membina dan ujian sukar dan memakan masa, yang seterusnya memperlambat proses penyampaian perisian.Setiap komitmen yang dibuat dalam kod sumber dibina dan diuji. Jadi, daripada memeriksa keseluruhan kod sumber, pemaju hanya perlu memfokus pada komit tertentu. Ini membawa kepada pengeluaran perisian baru yang kerap.
Pembangun harus menunggu keputusan ujianPembangun mengetahui hasil ujian setiap komitmen yang dibuat dalam kod sumber semasa dijalankan.
Keseluruhan prosesnya adalah manualAnda hanya perlumelakukan perubahan pada kod sumber dan Jenkins akan mengotomatikkan sisa proses untuk anda.

Mengapa Jenkins dan Git digunakan bersama?

Seperti yang telah dibincangkan sebelumnya, Pergi adalah pengurus kawalan sumber. Di situlah anda menyimpan kod sumber anda untuk melacak semua perubahan kod yang berlaku dari masa ke masa dan untuk membuat garis dasar versi ketika mereka siap untuk dilepaskan.

Jenkins , sebaliknya, adalah penyelesaian integrasi berterusan. Ini dirancang untuk mengotomatisasi sebahagian besar tugas yang harus dilakukan oleh pengembang ketika mengembangkan aplikasi baru (pemeriksaan kualiti kod, bangunan, pengarkiban artifak binaan, pengujian integrasi, penyebaran ke berbagai lingkungan, dll.) Tanpa penyelesaian CI, pembangun terpaksa menghabiskan banyak masa untuk melakukan tugas tidak produktif berulang ini.

Kelebihan:

  • Git dan Jenkins kedua-duanya sangat kuat, tetapi dengan kekuatan yang besar datang tanggungjawab besar. Adalah biasa untuk membenarkan jumlah yang tidak diperlukan komplikasi dalam membina saluran paip hanya kerana anda boleh.
  • Walaupun Jenkins memiliki banyak trik kemas di lengan bajunya, mudah untuk memanfaatkan ciri-ciri Git, kerana ia membuat pengurusan pelepasan dan pengesanan pepijat lebih mudah lebih masa.
  • Kita boleh melakukan ini dengan berhati-hati dengan versi kod yang kita bina dan menandainya dengan betul. Ini tetap maklumat berkaitan pelepasan dekat dengan kod , berbanding dengan bergantung pada Jenkins membina nombor atau moniker lain.
  • Melindungi cawangan Git mengurangkan risiko kesalahan manusia , dan mengautomasikan sebanyak mungkin tugas mengurangkan seberapa sering kita harus mengganggu (atau menunggu) manusia tersebut.

Contoh:

Mari kita ambil contoh ciri baru dalam aplikasi web. Seorang pembangun akan dikenal pasti dan diberi tugas, dia mengambil pangkalan kode yang ada dari kawalan Sumber - katakanlah, Git, membuat perubahannya, melakukan pengujian unit, memastikan kualiti kod secara manual dan memeriksa kod baru kembali ke Git.

Kemudian dia harus membangun kod, menyebarkannya ke contoh integrasi, menjalankan pengujian integrasi dan setelah perubahannya nampak memuaskan, ajukan permintaan untuk penyebaran produksi. Sekarang, seandainya kita mempunyai pelayan untuk menguruskan bahagian ujian, bangunan, pemeriksaan kualiti dan penyebaran ini, pemaju yang lemah dapat memberi tumpuan yang lebih baik pada perkara yang dia mahir - menerapkan dan meningkatkan logik fitur.

Minion ini adalah Jenkins. Ia bertindak sebagai orkestrator untuk menjalankan semua aktiviti ini setelah perubahan diperiksa ke dalam kawalan sumber (Git) dan dengan itu memberikan maklum balas cepat kepada pembangun sama ada perubahan yang telah dilakukannya cukup baik untuk pengeluaran produksi atau tidak.Ini adalah sumber terbuka yang sangat fleksibel dan mempunyai banyak plugin yang dapat melakukan hampir semua perkara yang anda mahukan.

Demo

Di sini kita akan melihat bagaimana mengintegrasikan Git dengan Jenkins. Terdapat 5 langkah yang mesti anda ikuti:

1. Buat program Contoh:

Anda boleh membuat contoh program yang anda mahukan seperti Java atau Python atau program lain. Di sini kita akan menulis ringkas Program Python yang mencetak Hello, World!

2. Buat pekerjaan Jenkins:

  • Di sini pertama anda perlu mulakan Jenkins menggunakan arahan arahan.

  • Untuk itu, pertama anda perlu menavigasi ke lokasi Jenkins pada sistem anda dan menggunakan perintah java -jar jenkins.war

  • Setelah menjalankan perintah ini, buka penyemak imbas web dan pergi ke halaman utama Jenkins menggunakan pautan localhost: 8080 . Ini adalah nombor port lalai.

  • Buka halaman utama Jenkins oleh memasukkan nama pengguna dan kata laluan.

  • Untuk membuat projek klik pada Item Baru dan masukkan Nama Projek dan pilih Projek gaya bebas . Klik OK.

3. Tambahkan program ini ke Github:

  • Buka git bash pada sistem anda. Navigasi ke lokasi program anda. Memulakan repositori kosong menggunakan arahan git init .

  • Gunakan arahan git tambah. untuk menambah fail ke kawasan pementasan dari direktori kerja.

  • Sekarang tambahkan fail ke repositori tempatan menggunakan perintah git commit -m 'fail demo.py ditambahkan' .

  • Sekarang anda mesti tolak fail ini ke repositori jauh. Untuk melakukannya pergi ke akaun GitHub anda dan buat repositori awam baru. Sekarang salin lokasi repositori ini dan pergi ke terminal git bash. Di sini taip perintah git jauh menambah asal . Oleh kerana sekarang anda telah menyambung ke repositori jarak jauh, kini anda boleh mendorong kod anda ke sana menggunakan perintah tuan asal git push -u. Untuk mengesahkan ini, pergi ke akaun GitHub dan muat semula halaman. Anda akan melihat fail yang ditambahkan di sana.

4. Tambahkan Git Plugin di Jenkins:

  • Di laman utama Jenkins, pergi ke Uruskan Jenkins .

  • Klik seterusnya Urus Pemalam . Di sini cek dapatkan plugin Git di bahagian yang dipasang. Sekiranya tidak tersedia di sini cari di bahagian yang ada dan muat turun.

5. Konfigurasikan tugas Jenkins untuk mencetuskan binaan:

  • Pergi ke projek di Jenkins yang kami buat pada langkah 2. Di sini di bahagian Pengurusan Kod Sumber, pilih git dan masukkan pautan repositori awam yang anda buat pada langkah 3. Seterusnya di Membina bahagian Pencetus , Klik pada Pilihan SCM undian . Di sini di bahagian Jadual, anda mesti memasukkan lima tanda bintang yang dipisahkan dengan ruang. Ini hanyalah sintaks cron untuk tugas anda. Ini bermaksud bahawa Jenkins akan memeriksa perubahan dalam kod sumber setiap minit dan jika ada perubahan itu akan mencetuskan pembuatan Jenkins.

  • Klik pada Memohon dan seterusnya Jimat . Seterusnya di laman utama projek anda klik Bangun Sekarang . Ini akan menjalankan projek dan dalam output konsol, anda dapat melihat program anda mengeluarkan status pekerjaan Jenkins anda. Sekiranya semuanya baik-baik saja maka ia akan dipaparkan sebagai Kejayaan .

Oleh itu, bagaimana Jenkins Git Integration dilakukan. Dengan ini, kita sampai pada akhir artikel ini mengenai Jenkins Git Integration. Saya harap anda menikmati artikel ini.

Sekarang anda telah memahami apa Integrasi Jenkins Git adalah, periksa ini oleh Edureka, sebuah syarikat pembelajaran dalam talian yang dipercayai dengan rangkaian lebih daripada 250,000 pelajar berpuas hati yang tersebar di seluruh dunia. Kursus Latihan Persijilan Edureka DevOps membantu pelajar memahami apa itu DevOps dan memperoleh kepakaran dalam pelbagai proses dan alat DevOps seperti Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack dan GIT untuk mengautomasikan beberapa langkah dalam SDLC.

Ada soalan untuk kami? Sila sebutkan di bahagian komen dan kami akan menghubungi anda