Apa Jenkins? Alat Integrasi Berkelanjutan (CI)

Daftar Isi:

Anonim

Apa Jenkins?

Jenkins adalah server Integrasi Berkelanjutan sumber terbuka yang mampu mengatur rangkaian tindakan yang membantu mencapai proses Integrasi Berkelanjutan (dan tidak hanya) secara otomatis.

Jenkins gratis dan seluruhnya ditulis dalam Java. Jenkins adalah aplikasi yang banyak digunakan di seluruh dunia yang memiliki sekitar 300k instalasi dan berkembang dari hari ke hari.

Ini adalah aplikasi berbasis server dan membutuhkan server web seperti Apache Tomcat. Alasan Jenkins menjadi begitu populer adalah karena pemantauannya atas tugas-tugas berulang yang muncul selama pengembangan proyek. Misalnya, jika tim Anda sedang mengembangkan sebuah proyek, Jenkins akan terus menguji pembangunan proyek Anda dan menunjukkan kesalahan pada tahap awal pengembangan Anda.

Dengan menggunakan Jenkins, perusahaan perangkat lunak dapat mempercepat proses pengembangan perangkat lunak mereka, karena Jenkins dapat mengotomatiskan pembuatan dan pengujian dengan kecepatan tinggi. Jenkins mendukung siklus hidup pengembangan lengkap perangkat lunak mulai dari membangun, menguji, mendokumentasikan perangkat lunak, menerapkan, dan tahapan lain dari siklus pengembangan perangkat lunak.

Dalam tutorial ini, Anda akan belajar

  • Apa Jenkins?
  • Apa itu Integrasi Berkelanjutan?
  • Jenkin Sejarah
  • Mengapa menggunakan Integrasi Berkelanjutan dengan Jenkins?
  • Studi kasus dunia nyata tentang Continuous Integration
  • Keuntungan menggunakan Jenkins
  • Kerugian menggunakan Jenkins

Apa itu Integrasi Berkelanjutan?

Dalam Integrasi Berkelanjutan setelah kode komit, perangkat lunak dibuat dan segera diuji. Dalam proyek besar dengan banyak pengembang, komitmen dibuat berkali-kali dalam sehari. Dengan setiap kode komit dibangun dan diuji. Jika pengujian berhasil, build akan diuji untuk penerapan. Jika penerapan berhasil, kode didorong ke produksi. Komit, bangun, uji, dan penerapan ini adalah proses berkelanjutan dan karenanya dinamai integrasi / penerapan berkelanjutan.

Continuous Integration Pipeline adalah instrumen hebat yang terdiri dari sekumpulan alat yang dirancang untuk menghosting , memantau , menyusun dan menguji kode, atau perubahan kode, seperti:

  • Server Integrasi Berkelanjutan (Jenkins, Bamboo, CruiseControl, TeamCity, dan lainnya)
  • Alat Kontrol Sumber (mis., CVS, SVN, GIT, Mercurial, Perforce, ClearCase, dan lainnya)
  • Alat build (Make, ANT, Maven, Ivy, Gradle, dan lainnya)
  • Kerangka pengujian otomatisasi (Selenium, Appium, TestComplete, UFT, dan lainnya)

Jenkin Sejarah

  • Kohsuke Kawaguchi, pengembang Java, yang bekerja di SUN Microsystems, lelah membuat kode dan memperbaiki kesalahan berulang kali. Pada tahun 2004, dibuat server otomasi bernama Hudson yang mengotomatiskan tugas build dan pengujian.
  • Pada tahun 2011, Oracle yang memiliki Sun Microsystems memiliki perselisihan dengan komunitas open source Hudson, jadi mereka mencabang Hudson dan menamainya sebagai Jenkins.
  • Baik Hudson dan Jenkins terus beroperasi secara independen. Namun dalam kurun waktu singkat, Jenkins memperoleh banyak proyek dan kontributor sementara Hudson hanya memiliki 32 proyek. Seiring waktu, Jenkins menjadi lebih populer, dan Hudson tidak dipertahankan lagi.

Mengapa menggunakan Integrasi Berkelanjutan dengan Jenkins?

Beberapa orang mungkin berpikir bahwa cara kuno mengembangkan perangkat lunak adalah cara yang lebih baik. Mari kita pahami keuntungan CI dengan Jenkins dengan contoh berikut

Mari kita bayangkan, ada sekitar 10 pengembang yang mengerjakan repositori bersama. Beberapa pengembang menyelesaikan tugas mereka dalam 25 hari sementara yang lain membutuhkan waktu 30 hari untuk menyelesaikannya.

Sebelum Jenkins Setelah Jenkins
Setelah semua Pengembang menyelesaikan tugas pengkodean yang ditugaskan, mereka biasa memasukkan kode mereka pada waktu yang sama. Nanti, Build diuji dan diterapkan. Kode komit dibuat, dan siklus pengujian sangat jarang, dan satu pembuatan selesai setelah beberapa hari. Kode dibuat dan diuji segera setelah Pengembang memasukkan kode. Jenkin akan membuat dan menguji kode berkali-kali sepanjang hari. Jika build berhasil, Jenkins akan menerapkan sumber ke server pengujian dan memberi tahu tim penerapan. Jika build gagal, Jenkins akan memberi tahu kesalahan tersebut kepada tim pengembang.
Karena kode dibuat sekaligus, beberapa pengembang harus menunggu sampai pengembang lain menyelesaikan pengkodean untuk memeriksa build mereka Kode dibuat segera setelah salah satu Pengembang berkomitmen.
Bukan tugas yang mudah untuk mengisolasi, mendeteksi, dan memperbaiki kesalahan untuk beberapa komit. Karena kode dibuat setelah setiap komit dari satu pengembang, mudah untuk mendeteksi kode siapa yang menyebabkan gagal
Pembuatan kode dan proses pengujian sepenuhnya manual, jadi ada banyak kemungkinan gagal. Pembuatan dan pengujian otomatis menghemat waktu proses dan mengurangi cacat.
Kode diterapkan setelah semua kesalahan diperbaiki dan diuji. Kode diterapkan setelah setiap build dan pengujian berhasil.
Siklus Pengembangan lambat Siklus pengembangan cepat. Fitur baru lebih mudah tersedia bagi pengguna. Meningkatkan keuntungan.

Studi kasus dunia nyata tentang Continuous Integration

Saya yakin Anda semua mengetahui ponsel lama Nokia. Nokia dulu menerapkan prosedur yang disebut nightly build. Setelah banyak komitmen dari pengembang yang berbeda pada siang hari, perangkat lunak dibangun setiap malam. Karena perangkat lunak dibuat hanya sekali dalam sehari, sangat sulit untuk mengisolasi, mengidentifikasi, dan memperbaiki kesalahan dalam basis kode yang besar.

Kemudian, mereka mengadopsi pendekatan Integrasi Berkelanjutan. Perangkat lunak ini dibuat dan diuji segera setelah pengembang memasukkan kode. Jika ada kesalahan yang terdeteksi, pengembang yang bersangkutan dapat dengan cepat memperbaiki kerusakan tersebut.

Plugin Jenkins

Secara default, Jenkins hadir dengan serangkaian fitur terbatas. Jika Anda ingin mengintegrasikan penginstalan Jenkins dengan alat kontrol versi seperti Git, Anda perlu menginstal plugin yang terkait dengan Git. Faktanya, untuk integrasi dengan alat seperti Maven, Amazon EC2, Anda perlu menginstal plugin masing-masing di Jenkins Anda.

Integrasi plugin di Jenkins

Keuntungan menggunakan Jenkins

  • Jenkins dikelola oleh komunitas yang sangat terbuka. Setiap bulan, mereka mengadakan pertemuan publik dan mengambil masukan dari masyarakat untuk pengembangan proyek Jenkins.
  • Sejauh ini sekitar 280 tiket ditutup, dan proyek menerbitkan rilis stabil setiap tiga bulan.
  • Seiring perkembangan teknologi, begitu pula Jenkins. Sejauh ini Jenkins memiliki sekitar 320 plugin yang diterbitkan dalam database pluginnya. Dengan plugin, Jenkins menjadi lebih bertenaga dan kaya akan fitur.
  • Jenkins juga mendukung arsitektur berbasis cloud sehingga Anda dapat menerapkan Jenkins di platform berbasis cloud.
  • Alasan mengapa Jenkins menjadi populer adalah karena Jenkins dibuat oleh pengembang untuk pengembang.

Kerugian menggunakan Jenkins

Meskipun Jenkins adalah alat yang sangat kuat, ia memiliki kekurangan.

  • Antarmukanya sudah ketinggalan zaman dan tidak ramah pengguna dibandingkan dengan tren UI saat ini.
  • Meskipun Jenkins dicintai oleh banyak developer, tidak semudah itu memeliharanya karena Jenkins berjalan di server dan membutuhkan beberapa keterampilan sebagai administrator server untuk memantau aktivitasnya.
  • Salah satu alasan mengapa banyak orang tidak menerapkan Jenkins adalah karena kesulitannya dalam menginstal dan mengkonfigurasi Jenkins.
  • Integrasi berkelanjutan secara teratur berhenti karena beberapa perubahan kecil pada pengaturan. Integrasi berkelanjutan akan dijeda dan oleh karena itu memerlukan perhatian pengembang.

Kesimpulan:

  • Dalam Integrasi Berkelanjutan, setelah kode dikomit, perangkat lunak dibuat dan segera diuji
  • Jenkins adalah server Integrasi Berkelanjutan sumber terbuka yang mampu mengatur rangkaian tindakan
  • Sebelum Jenkins, ketika semua Pengembang telah menyelesaikan tugas pengkodean yang ditugaskan, mereka biasa memasukkan kode mereka semua pada waktu yang sama. Nanti, Build diuji dan diterapkan.
  • Setelah Jenkins, kode dibuat dan uji segera setelah Pengembang memasukkan kode. Jenkin akan membuat dan menguji kode berkali-kali sepanjang hari
  • Secara default, Jenkins hadir dengan serangkaian fitur terbatas. Jika Anda ingin mengintegrasikan penginstalan Jenkins dengan alat kontrol versi seperti Git, Anda perlu menginstal plugin yang terkait dengan Git
  • Kelebihan terbesar Jenkins adalah dikelola oleh komunitas yang mengadakan pertemuan publik dan mengambil masukan dari publik untuk pengembangan proyek Jenkins.
  • Penipu terbesar Jenkin adalah bahwa antarmukanya sudah ketinggalan zaman dan tidak ramah pengguna dibandingkan dengan tren UI saat ini.