Apa itu Jenkins?
Jenkins adalah pelayan Integrasi Berterusan sumber terbuka yang mampu mengatur rangkaian tindakan yang membantu mencapai proses Integrasi Berterusan (dan bukan sahaja) secara automatik.
Jenkins percuma dan ditulis sepenuhnya di Jawa. Jenkins adalah aplikasi yang banyak digunakan di seluruh dunia yang mempunyai sekitar 300k pemasangan dan berkembang dari hari ke hari.
Ini adalah aplikasi berasaskan pelayan dan memerlukan pelayan web seperti Apache Tomcat. Sebab mengapa Jenkins menjadi sangat popular adalah pemantauan tugas berulang yang timbul semasa pembangunan projek. Sebagai contoh, jika pasukan anda mengembangkan projek, Jenkins akan terus menguji pembinaan projek anda dan menunjukkan kesalahan pada peringkat awal perkembangan anda.
Dengan menggunakan Jenkins, syarikat perisian dapat mempercepat proses pengembangan perisian mereka, kerana Jenkins dapat mengotomatisasi pembuatan dan pengujian dengan cepat. Jenkins menyokong kitaran hidup pengembangan perisian yang lengkap dari membina, menguji, mendokumentasikan perisian, menyebarkan dan peringkat lain dari kitaran hayat pengembangan perisian.
Dalam tutorial ini, anda akan belajar
- Apa itu Jenkins?
- Apakah Integrasi Berterusan?
- Sejarah Jenkin
- Mengapa menggunakan Integrasi Berterusan dengan Jenkins?
- Kajian kes dunia nyata mengenai Integrasi Berterusan
- Kelebihan menggunakan Jenkins
- Kelemahan penggunaan Jenkins
Apakah Integrasi Berterusan?
Dalam Integrasi Berterusan setelah melakukan kod, perisian dibina dan diuji dengan segera. Dalam projek besar dengan banyak pembangun, komitmen dilakukan berkali-kali dalam sehari. Dengan setiap kod komit dibina dan diuji. Sekiranya ujian lulus, build diuji untuk penggunaan. Sekiranya penyebaran berjaya, kod tersebut diturunkan ke pengeluaran. Komitmen, pembinaan, pengujian, dan penerapan ini adalah proses berterusan dan oleh itu namanya penyatuan / penerapan berterusan.
Saluran Integrasi Berterusan adalah instrumen kuat yang terdiri daripada sekumpulan alat yang dirancang untuk menjadi tuan rumah , memantau , menyusun dan menguji kod, atau perubahan kod, seperti:
- Pelayan Integrasi Berterusan (Jenkins, Bamboo, CruiseControl, TeamCity, dan lain-lain)
- Alat Kawalan Sumber (contohnya, CVS, SVN, GIT, Mercurial, Perforce, ClearCase dan lain-lain)
- Alat binaan (Make, ANT, Maven, Ivy, Gradle, dan lain-lain)
- Rangka kerja ujian automasi (Selenium, Appium, TestComplete, UFT, dan lain-lain)
Sejarah Jenkin
- Kohsuke Kawaguchi, seorang pengembang Java, yang bekerja di SUN Microsystems, bosan dengan membina kod dan memperbaiki kesalahan berulang-ulang. Pada tahun 2004, mencipta pelayan automasi bernama Hudson yang mengautomasikan tugas membina dan menguji.
- Pada tahun 2011, Oracle yang memiliki Sun Microsystems telah melakukan perselisihan dengan komuniti sumber terbuka Hudson, sehingga mereka membuat Hudson dan menamakannya sebagai Jenkins.
- Kedua-dua Hudson dan Jenkins terus beroperasi secara bebas. Tetapi dalam jangka masa yang singkat, Jenkins memperoleh banyak projek dan penyumbang sementara Hudson kekal dengan hanya 32 projek. Seiring berjalannya waktu, Jenkins menjadi lebih popular, dan Hudson tidak dipelihara lagi.
Mengapa menggunakan Integrasi Berterusan dengan Jenkins?
Sebilangan orang mungkin berpendapat bahawa cara lama mengembangkan perisian adalah cara yang lebih baik. Mari fahami kelebihan CI dengan Jenkins dengan contoh berikut
Cuba kita bayangkan, terdapat sekitar 10 pembangun yang sedang mengerjakan repositori bersama. Beberapa pembangun menyelesaikan tugas mereka dalam 25 hari sementara yang lain memerlukan 30 hari untuk disiapkan.
Sebelum Jenkins | Selepas Jenkins |
---|---|
Setelah semua Pembangun menyelesaikan tugas pengekodan yang ditetapkan, mereka selalu melakukan kod mereka pada masa yang sama. Kemudian, Build diuji dan digunakan. Kod komit dibina, dan kitaran ujian sangat jarang dilakukan, dan satu binaan dilakukan setelah beberapa hari. | Kod itu dibina dan diuji sebaik sahaja Pembangun membuat kod. Jenkin akan membina dan menguji kod berkali-kali pada siang hari. Jika build berjaya, maka Jenkins akan menyebarkan sumber ke dalam server ujian dan memberitahu pasukan penyebaran. Sekiranya binaan gagal, maka Jenkins akan memberitahu kesalahan kepada pasukan pembangun. |
Oleh kerana kod itu dibina sekaligus, beberapa pembangun perlu menunggu sehingga pembangun lain menyelesaikan pengekodan untuk memeriksa binaannya | Kod tersebut dibina sebaik sahaja mana-mana Pembangun melakukan. |
Ini bukan tugas yang mudah untuk mengasingkan, mengesan, dan memperbaiki kesalahan untuk beberapa kesalahan. | Oleh kerana kod tersebut dibina setelah setiap komit dari satu pembangun, mudah untuk mengesan kod yang menyebabkan binaan tersebut gagal |
Proses pembuatan dan ujian kod sepenuhnya manual, jadi ada banyak kemungkinan kegagalan. | Proses binaan dan ujian automatik menjimatkan masa dan mengurangkan kecacatan. |
Kod digunakan setelah semua kesalahan diperbaiki dan diuji. | Kod digunakan setelah setiap kejayaan dan ujian yang berjaya. |
Kitaran Pembangunan perlahan | Kitaran pengembangannya pantas. Ciri-ciri baru lebih mudah didapati oleh pengguna. Meningkatkan keuntungan. |
Kajian kes dunia nyata mengenai Integrasi Berterusan
Saya pasti anda semua mengetahui Nokia telefon lama. Nokia digunakan untuk melaksanakan prosedur yang disebut pembuatan malam. Setelah melakukan pelbagai komitmen dari pelbagai pembangun pada waktu siang, perisian tersebut dibina setiap malam. Oleh kerana perisian itu dibina hanya sekali dalam sehari, sangat menyakitkan untuk mengasingkan, mengenal pasti, dan memperbaiki kesalahan dalam pangkalan kod yang besar.
Kemudian, mereka menggunakan pendekatan Integrasi Berterusan. Perisian ini dibina dan diuji sebaik sahaja pembangun membuat kod. Sekiranya terdapat ralat, pengembang masing-masing dapat memperbaiki kerosakan dengan cepat.
Pemalam Jenkins
Secara lalai, Jenkins hadir dengan sekumpulan ciri terhad. Sekiranya anda ingin mengintegrasikan pemasangan Jenkins anda dengan alat kawalan versi seperti Git, maka anda perlu memasang pemalam yang berkaitan dengan Git. Sebenarnya, untuk penyatuan dengan alat seperti Maven, Amazon EC2, anda perlu memasang pemalam masing-masing di Jenkins anda.

Kelebihan menggunakan Jenkins
- Jenkins dikendalikan oleh komuniti yang sangat terbuka. Setiap bulan, mereka mengadakan perjumpaan awam dan mengambil input dari orang ramai untuk pengembangan projek Jenkins.
- Setakat ini sekitar 280 tiket ditutup, dan projek itu menerbitkan pelepasan stabil setiap tiga bulan.
- Seiring berkembangnya teknologi, begitu juga Jenkins. Sejauh ini Jenkins mempunyai sekitar 320 plugin yang diterbitkan dalam pangkalan data pluginnya. Dengan pemalam, Jenkins menjadi lebih hebat dan kaya dengan ciri.
- Jenkins juga menyokong seni bina berasaskan awan sehingga anda dapat menggunakan Jenkins dalam platform berasaskan awan.
- Sebab mengapa Jenkins menjadi popular adalah bahawa ia dibuat oleh pembangun untuk pemaju.
Kelemahan penggunaan Jenkins
Walaupun Jenkins adalah alat yang sangat kuat, ia mempunyai kekurangan.
- Antaramuka itu ketinggalan zaman dan tidak mesra pengguna berbanding trend UI semasa.
- Walaupun Jenkins disukai oleh banyak pembangun, tidak mudah untuk mengekalkannya kerana Jenkins menjalankan pelayan dan memerlukan beberapa kemahiran sebagai pentadbir pelayan untuk memantau aktivitinya.
- Salah satu sebab mengapa banyak orang tidak melaksanakan Jenkins adalah kerana kesukaran memasang dan mengkonfigurasi Jenkins.
- Integrasi berterusan terputus disebabkan oleh beberapa perubahan tetapan kecil. Integrasi berterusan akan dijeda dan oleh itu memerlukan perhatian pemaju.
Kesimpulan:
- Dalam Integrasi Berterusan, setelah melakukan kod, perisian dibina dan diuji dengan segera
- Jenkins adalah pelayan Integrasi Berterusan sumber terbuka yang mampu mengatur rangkaian tindakan
- Sebelum Jenkins ketika semua Pembangun telah menyelesaikan tugas pengekodan yang diberikan, mereka selalu melakukan kod mereka pada masa yang sama. Kemudian, Build diuji dan digunakan.
- Selepas Jenkins, kod itu dibina dan diuji sebaik sahaja Pembangun membuat kod. Jenkin akan membina dan menguji kod berkali-kali pada siang hari
- Secara lalai, Jenkins hadir dengan sekumpulan ciri terhad. Sekiranya anda ingin mengintegrasikan pemasangan Jenkins anda dengan alat kawalan versi seperti Git, maka anda perlu memasang pemalam yang berkaitan dengan Git
- Kelebihan terbesar Jenkins adalah ia dikendalikan oleh masyarakat yang mengadakan perjumpaan awam dan mengambil input daripada orang ramai untuk pengembangan projek Jenkins
- Kelebihan terbesar dari Jenkin adalah antara muka yang ketinggalan zaman dan tidak mesra pengguna berbanding dengan trend UI semasa.