Pengenalan Jenkins X
Jenkins X adalah sistem open source yang menyediakan alat untuk Continuous Integration (CI), Continuous Delivery (CD), dan pengujian otomatis yang dirancang khusus untuk aplikasi cloud-native di lingkungan Kubernetes. Jenkins X menghadirkan otomatisasi pipeline, integrasi Git (GitOps), dan lingkungan preview untuk membantu tim berkolaborasi dan mempercepat proses pengiriman perangkat lunak.
Jenkins X tidak menggantikan Jenkins, melainkan menggunakan Jenkins sebagai mesin utama CI/CD. Jika Jenkins lebih fokus pada otomatisasi CI, Jenkins X melengkapinya dengan mendukung CD secara penuh dan mengelola promosi aplikasi ke lingkungan preview, staging, dan produksi di Kubernetes. Dengan Jenkins X, developer tidak perlu mahir dalam Jenkins maupun Kubernetes karena prosesnya sudah otomatis.
Cara Kerja Jenkins X
Developer tidak perlu berinteraksi langsung dengan Jenkins karena Jenkins berjalan di belakang layar. Jenkins X akan menjalankan pipeline CI/CD untuk setiap repository dan mengatur orkestrasi melalui Kubernetes.
Jenkins X memiliki pendekatan “opinionated” yang artinya sistem ini sudah menentukan standar dan keputusan terbaik dalam lifecycle pengembangan perangkat lunak, sambil tetap fleksibel untuk penyesuaian. Saat memulai proyek baru, Jenkins X akan membuat struktur dan file yang dibutuhkan. Bahkan jika cluster Kubernetes belum tersedia, Jenkins X bisa menyiapkannya otomatis, lengkap dengan tools yang dibutuhkan.
Satu perintah jx
saja sudah bisa membuat repository Git, mengatur webhook, dan membuat pipeline CD. Jenkins X juga menyediakan berbagai quick start tools seperti language pack, yang membuat contoh aplikasi sesuai bahasa pilihan, membuatkan Dockerfile, Jenkinsfile, Helm chart, dan workflow Skaffold ke dalam repository Git yang telah terintegrasi.
Fitur Jenkins X
- Automated CI/CD pipelines: Pipeline otomatis ini mendefinisikan CI/CD sebagai pipeline-as-code menggunakan Jenkinsfile, membuat image kontainer, dan men-deploy aplikasi ke Kubernetes melalui Helm chart.
- Environment promotion dengan GitOps: Jenkins X menggunakan pendekatan GitOps untuk mengelola promosi aplikasi dari staging ke produksi. Promosi ke staging dilakukan otomatis, sedangkan ke produksi bersifat manual.
- Preview environments: Lingkungan preview dibuat otomatis saat ada pull request, sehingga developer bisa melihat hasil perubahan sebelum digabung ke branch utama.
- Extension: Jenkins X bisa diperluas melalui kode tambahan (extension) yang berjalan di waktu-waktu tertentu selama pipeline berlangsung, seperti sebelum atau sesudah instalasi aplikasi.
- Serverless Jenkins: Jenkins X hanya berjalan saat dibutuhkan, sehingga lebih hemat resource karena tidak terus-menerus menggunakan CPU dan memori.
Kelebihan Jenkins X
- Instalasi, konfigurasi, dan upgrade alat eksternal dilakukan otomatis.
- Setiap tim bisa bekerja secara terisolasi, baik dalam cluster bersama maupun cluster terpisah.
- Perintah
jx create devpod
memungkinkan setiap developer bekerja di sandbox pribadi dalam cluster Jenkins X. - Mempercepat pekerjaan dengan perintah
jx
dan integrasi mudah dengan cloud atau SCM. - GitOps menyimpan semua riwayat build dan komentar pull request, memudahkan pemulihan sistem saat terjadi gangguan.