tentunya tidak lengkap tanpa Jenkins. Jenkins bersama Git adalah kombinasi yang luar biasa. Jadi pada artikel ini, saya akan berbicara tentang Integrasi Jenkins Git dan kelebihannya. Petunjuk yang akan kita bahas adalah sebagai berikut:
Jadi mari kita mulai dengan topik pertama kita.
Apa itu Git - Mengapa Git Datang ke Eksistensi?
Kita semua tahu 'Kebutuhan adalah ibu dari semua penemuan'. Demikian pula, Git muncul untuk memenuhi kebutuhan tertentu yang dihadapi para pengembang sebelum Git. Jadi, mari kita mundur selangkah untuk mempelajari semua tentang Sistem Kontrol Versi (VCS) dan bagaimana Git muncul.
Kontrol Versi adalah pengelolaan perubahan pada dokumen, program komputer, situs web besar, dan kumpulan informasi lainnya.
Ada dua jenis VCS:
Sistem Kontrol Versi Terpusat (CVCS)
Sistem Kontrol Versi Terdistribusi (DVCS)
VCS terpusat
Sistem kontrol versi terpusat (CVCS) menggunakan server pusat untuk menyimpan semua file dan memungkinkan kolaborasi tim. Ia bekerja pada satu repositori di mana pengguna dapat langsung mengakses server pusat.
Silakan lihat diagram di bawah ini untuk mendapatkan gambaran yang lebih baik tentang CVCS:
Repositori pada diagram di atas menunjukkan server pusat yang bisa lokal atau jarak jauh yang terhubung langsung ke setiap workstation programmer.
Setiap programmer dapat mengekstrak atau memperbarui workstation mereka dengan data yang ada di repositori. Mereka juga dapat membuat perubahan pada data atau melakukan ke repositori. Setiap operasi dilakukan langsung di repositori.
Meskipun tampaknya cukup nyaman untuk mempertahankan satu repositori, ini memiliki beberapa kelemahan utama. Beberapa dari mereka adalah:
Ini tidak tersedia secara lokal yang berarti Anda selalu harus terhubung ke jaringan untuk melakukan tindakan apa pun.
Karena semuanya terpusat, dalam hal apa pun server pusat rusak atau rusak akan mengakibatkan hilangnya seluruh data proyek.
Di sinilah VCS Terdistribusi memecahkan masalah.
VCS yang didistribusikan
Sistem ini tidak selalu bergantung pada server pusat untuk menyimpan semua versi file proyek.Dalam VCS Terdistribusi, setiap kontributor memiliki salinan lokal atau 'klon' dari repositori utama. Di sini setiap orang memelihara repositori lokalnya sendiri yang berisi semua file dan metadata yang ada di repositori utama.
Anda akan memahaminya lebih baik dengan mengacu pada diagram di bawah ini:
Seperti yang Anda lihat pada diagram di atas, setiap programmer memiliki repositori lokal sendiri, yang sebenarnya merupakan salinan atau tiruan dari repositori pusat pada hard drive mereka. Mereka dapat melakukan dan memperbarui repositori lokalnya tanpa gangguan apa pun.
gagal cepat vs gagal aman
Mereka dapat memperbarui repositori lokalnya dengan data baru dari server pusat dengan operasi yang disebut ' Tarik 'Dan memengaruhi perubahan pada repositori utama dengan operasi yang disebut' Dorong ”Dari repositori lokalnya.
Sekarang mari kita coba mengetahui tentang definisi Git.
Git adalah alat kontrol versi terdistribusi yang mendukung alur kerja non-linier terdistribusi dengan memberikan jaminan data untuk mengembangkan perangkat lunak berkualitas. Alat seperti Git memungkinkan komunikasi antara pengembangan dan tim operasi.
Biasanya ketika Anda mengembangkan proyek besar, Anda memiliki banyak kolaborator. Jadi sangat penting untuk memiliki komunikasi antara kolaborator saat melakukan perubahan dalam proyek.
Pesan komitmen di Git memainkan peran yang sangat penting dalam berkomunikasi di antara tim. Selain komunikasi, alasan terpenting untuk menggunakan Git adalah karena Anda selalu memiliki versi kode yang stabil.
Karenanya, Git memainkan peran penting dalam sukses di DevOps.
Apa Jenkins?
Jenkins adalah alat otomatisasi sumber terbuka yang ditulis di Java dengan plugin yang dibuat untuk tujuan Integrasi Berkelanjutan. Jenkins digunakan untuk membangun dan menguji proyek perangkat lunak Anda secara terus-menerus sehingga memudahkan pengembang untuk mengintegrasikan perubahan ke proyek, dan mempermudah pengguna untuk mendapatkan versi baru. Ini juga memungkinkan Anda untuk terus mengirimkan perangkat lunak Anda dengan mengintegrasikan sejumlah besar pengujian dan teknologi penerapan.
Dengan Jenkins, organisasi dapat mempercepat proses pengembangan perangkat lunak melalui otomatisasi. Jenkins mengintegrasikan semua jenis proses siklus hidup pengembangan, termasuk build, document, test, package, stage, deploy, analisis statis, dan banyak lagi.
Jenkins mencapai Integrasi Berkelanjutan dengan bantuan plugin. Plugin memungkinkan integrasi berbagai tahapan DevOps. Jika Anda ingin mengintegrasikan alat tertentu, Anda perlu menginstal plugin untuk alat itu. Misalnya Git, proyek Maven 2, Amazon EC2, penerbit HTML, dll.
Keuntungan Jenkins meliputi:
Ini adalah alat sumber terbuka dengan dukungan komunitas yang hebat.
Terlalu mudah dipasang.
Ini memiliki 1000+ plugin untuk memudahkan pekerjaan Anda. Jika plugin tidak ada, Anda dapat membuat kode dan membagikannya dengan komunitas.
Ini gratis.
Itu dibangun dengan Java dan karenanya, portabel untuk semua platform utama.
Anda sekarang tahu bagaimana Jenkins mengatasi kekurangan SDLC tradisional. Tabel di bawah ini menunjukkan perbandingan antara 'Sebelum dan Sesudah Jenkins'.
Sebelum Jenkins | Setelah Jenkins |
---|---|
Seluruh kode sumber dibuat dan kemudian diuji. Menemukan dan memperbaiki bug saat build dan pengujian gagal merupakan hal yang sulit dan memakan waktu, yang pada akhirnya memperlambat proses pengiriman perangkat lunak. | Setiap komit yang dibuat dalam kode sumber dibuat dan diuji. Jadi, alih-alih memeriksa seluruh kode sumber, pengembang hanya perlu fokus pada komit tertentu. Hal ini menyebabkan seringnya rilis perangkat lunak baru. |
Pengembang harus menunggu hasil pengujian | Pengembang mengetahui hasil pengujian dari setiap komit yang dibuat dalam kode sumber saat dijalankan. |
Seluruh prosesnya manual | Anda hanya perlukomit perubahan ke kode sumber dan Jenkins akan mengotomatiskan sisa proses untuk Anda. |
Mengapa Jenkins dan Git digunakan bersama?
Seperti yang dibahas sebelumnya, Pergilah adalah manajer kendali sumber. Di situlah Anda menyimpan kode sumber untuk melacak semua perubahan kode yang terjadi dari waktu ke waktu dan sebagai dasar versi ketika siap untuk dirilis.
Jenkins , di sisi lain, merupakan solusi integrasi berkelanjutan. Itu dirancang untuk mengotomatiskan sebagian besar tugas yang harus dilakukan pengembang saat mengembangkan aplikasi baru (pemeriksaan kualitas kode, pembuatan, pengarsipan artefak bangunan, pengujian integrasi, penerapan ke berbagai lingkungan, dll.) Tanpa solusi CI, pengembang harus menghabiskan banyak waktu melakukan tugas-tugas non-produktif yang berulang-ulang ini.
Keuntungan:
- Git dan Jenkins sama-sama sangat kuat, tetapi dengan kekuatan besar datanglah tanggung jawab yang besar. Sangat umum untuk membenarkan jumlah yang tidak perlu komplikasi dalam pipeline build hanya karena Anda bisa.
- Sementara Jenkins memiliki banyak trik rapi, mudah untuk memanfaatkan fitur Git, karena membuat manajemen rilis dan pelacakan bug jauh lebih mudah lembur.
- Kita dapat melakukan ini dengan berhati-hati tentang versi kode yang kita buat dan memberi tag secara tepat. Ini terus informasi terkait rilis yang dekat dengan kode , sebagai lawan mengandalkan nomor build Jenkins atau moniker lainnya.
- Melindungi cabang Git mengurangi risiko kesalahan manusia , dan mengotomatiskan sebanyak mungkin tugas mengurangi seberapa sering kita harus mengganggu (atau menunggu) manusia itu.
Contoh:
Mari kita ambil contoh fitur baru dalam aplikasi web. Seorang pengembang akan diidentifikasi dan ditugaskan untuk tugas tersebut, ia mengambil basis kode yang ada dari kontrol Sumber - katakanlah, Git, membuat perubahannya, melakukan pengujian unit, memastikan kualitas kode secara manual dan memeriksa kode baru kembali ke Git.
Kemudian dia harus membuat kode, menerapkannya ke dalam instance integrasi, menjalankan pengujian integrasi dan setelah perubahannya tampak memuaskan, ajukan permintaan untuk penerapan produksi. Sekarang, jika saja kami memiliki antek untuk menangani bagian pengujian, pembuatan, pemeriksaan kualitas, dan penerapan ini, pengembang yang buruk bisa lebih fokus pada hal-hal yang sangat dia kuasai - menerapkan dan meningkatkan logika fitur.
Antek ini Jenkins. Ini bertindak sebagai orkestrator untuk menjalankan semua aktivitas ini setelah perubahan diperiksa ke dalam kontrol sumber (Git) dan dengan demikian memberikan umpan balik cepat kepada pengembang apakah perubahan yang dibuatnya cukup baik untuk penerapan produksi atau tidak.Ini sangat fleksibel, open-source dan memiliki banyak plugin yang dapat melakukan hampir semua hal yang Anda inginkan.
Demo
Di sini kita akan melihat bagaimana mengintegrasikan Git dengan Jenkins. Ada 5 langkah yang harus Anda ikuti:
1. Buat program Contoh:
Anda dapat membuat program contoh apa pun yang Anda inginkan seperti Java atau Python atau program lainnya. Di sini kami akan menulis sederhana Program Python yang mencetak Halo, Dunia!
2. Buat pekerjaan Jenkins:
Di sini pertama-tama Anda perlu mulai Jenkins menggunakan command prompt.
Untuk itu, Anda harus terlebih dahulu menavigasi ke lokasi Jenkins di sistem Anda dan menggunakan perintah java -jar jenkins.war
Setelah menjalankan perintah ini, buka browser web dan buka halaman beranda Jenkins menggunakan link localhost: 8080 . Ini adalah nomor port default.
Buka beranda Jenkins dengan memasukkan nama pengguna dan kata sandi.
Untuk membuat proyek, klik Barang baru dan masukkan Nama Proyek dan pilih Proyek gaya bebas . Klik OK.
cara keluar di java
3. Tambahkan program ini ke Github:
Buka git bash di sistem Anda. Menavigasi ke lokasi program Anda. Inisialisasi repositori kosong menggunakan perintah git init .
Gunakan perintah git add. untuk menambahkan file ke area pementasan dari direktori kerja.
Sekarang tambahkan file ke repositori lokal menggunakan perintah git commit -m 'file demo.py ditambahkan' .
Sekarang kamu harus Dorong file ini ke repositori jarak jauh. Untuk melakukan itu, buka akun GitHub Anda dan buat repositori publik baru. Sekarang salin lokasi repositori ini dan buka terminal git bash. Di sini ketikkan perintahnya git remote add origin . Karena sekarang Anda telah terhubung ke repositori jarak jauh, Anda sekarang dapat memasukkan kode Anda ke sana menggunakan perintah git push -u master asal. Untuk memverifikasi ini, buka akun GitHub dan segarkan halaman. Anda akan melihat file ditambahkan di sana.
4. Tambahkan Plugin Git di Jenkins:
Di beranda Jenkins, buka Kelola Jenkins .
Klik selanjutnya Kelola Plugin . Di sini periksa mendapat plugin Git di bagian yang diinstal. Jika tidak tersedia di sini, cari di bagian yang tersedia dan unduh.
5. Konfigurasikan tugas Jenkins untuk memicu build:
Buka proyek di Jenkins yang kita buat di langkah 2. Di sini, di bagian Manajemen Kode Sumber, pilih git dan masukkan link dari repositori publik yang Anda buat di langkah 3. Berikutnya di Bangun bagian Pemicu , klik Opsi polling SCM . Di sini, di bagian Jadwal, Anda harus memasukkan lima tanda bintang yang dipisahkan oleh spasi. Ini hanyalah sintaks cron untuk pekerjaan Anda. Ini berarti Jenkins akan memeriksa setiap perubahan dalam kode sumber setiap menit dan jika ada perubahan itu akan memicu pembuatan Jenkins.
Klik Menerapkan dan selanjutnya Menyimpan . Selanjutnya di halaman beranda proyek Anda, klik Bangun Sekarang . Ini akan menjalankan proyek dan dalam keluaran konsol, Anda dapat melihat keluaran program Anda status tugas Jenkins Anda. Jika semuanya baik-baik saja maka itu akan ditampilkan sebagai Keberhasilan .
Jadi begini cara Integrasi Jenkins Git dilakukan. Dengan ini, kita sampai pada akhir artikel tentang Integrasi Jenkins Git ini. Saya harap Anda menikmati artikel ini.
Sekarang Anda telah mengerti apa Integrasi Jenkins Git adalah, lihat ini oleh Edureka, perusahaan pembelajaran online tepercaya dengan jaringan lebih dari 250.000 pelajar yang puas dan tersebar di seluruh dunia. Kursus Pelatihan Sertifikasi DevOps Edureka membantu peserta didik untuk memahami apa itu DevOps dan mendapatkan keahlian dalam berbagai proses dan alat DevOps seperti Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack, dan GIT untuk mengotomatiskan beberapa langkah di SDLC.
Ada pertanyaan untuk kami? Harap sebutkan di bagian komentar dan kami akan menghubungi Anda kembali