Apa yang dimaksud dengan Helm?

Pria dan wanita melihat layar

Penyusun

Stephanie Susnjara

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

Apa yang dimaksud dengan Helm?

Helm adalah pengelola paket untuk Kubernetes yang menyederhanakan penerapan dan manajemen aplikasi.

Helm tidak membuat dan memelihara puluhan file konfigurasi terpisah secara manual, melainkan menggabungkan semua yang diperlukan untuk suatu aplikasi ke dalam satu paket yang dapat digunakan kembali yang disebut sebagai chart Helm.

Helm membantu mengurangi kerumitan penanganan Kubernetes, platform sumber terbuka yang mengotomatiskan penerapan dan operasi aplikasi dalam kontainer di beberapa server. Meskipun canggih, Kubernetes sering kali memerlukan konfigurasi ekstensif dan mendetail yang ditulis dalam file YAML untuk menentukan cara menjalankan aplikasi, cara menghubungkan aplikasi, dan sumber daya yang dibutuhkan aplikasi.

Terutama di berbagai lingkungan seperti pengembangan, pengujian, dan produksi, manajemen konfigurasi ini secara manual oleh pengembang, administrator sistem, dan insinyur DevOps dapat memakan waktu dan rawan kesalahan. Helm mengatasi tantangan ini dengan memperkenalkan standardisasi, kemampuan untuk dipakai kembali, serta kontrol versi, dengan fitur yang mencakup rollback dan penyesuaian khusus lingkungan.

Berita teknologi terbaru, didukung oleh insight dari pakar

Ikuti perkembangan tren industri yang paling penting—dan menarik—di bidang AI, otomatisasi, data, dan lainnya dengan buletin Think. Lihat Pernyataan Privasi IBM.

Terima kasih! Anda telah berlangganan.

Langganan Anda akan disediakan dalam bahasa Inggris. Anda akan menemukan tautan berhenti berlangganan di setiap buletin. Anda dapat mengelola langganan atau berhenti berlangganan di sini. Lihat Pernyataan Privasi IBM kami untuk informasi lebih lanjut.

Apa yang dimaksud dengan kontainerisasi?

Sebelum menjelajahi Helm, sangat penting untuk memahami kontainerisasi, yang merupakan fondasi Kubernetes dan alat cloud native modern.

Kontainerisasi mengemas aplikasi dengan semua yang dibutuhkannya untuk menjalankan kode, perpustakaan, dan konfigurasi ke dalam sebuah unit portabel ringan yang disebut kontainer. Kemampuan ini memungkinkan perangkat lunak berjalan secara konsisten di berbagai lingkungan, mulai dari laptop pengembang hingga lingkungan cloud produksi.

Kontainer biasanya berbasis Linux serta lebih cepat dan lebih efisien daripada mesin virtual tradisional. Kontainer juga cocok untuk arsitektur layanan mikro, di mana aplikasi dipecah menjadi beberapa komponen yang lebih kecil, dapat diterapkan secara independen, dan dapat diskalakan sesuai kebutuhan. Di Kubernetes, beban kerja dalam kontainer ini berjalan pada klaster, yang merupakan sekelompok mesin yang terdiri dari bidang kontrol yang mengelola sistem dan node untuk mengeksekusi aplikasi di seluruh infrastruktur.

Docker, platform sumber terbuka yang dirilis ke publik pada tahun 2013, adalah alat kontainerisasi yang paling banyak digunakan. Saat ini, kontainerisasi adalah bagian inti dari ekosistem cloud native sumber terbuka yang memungkinkan pengembangan lebih cepat, penerapan lebih andal, dan fleksibilitas operasional lebih besar.

Kubernetes mengorkestrasi kontainer dalam skala besar dengan mengotomatiskan penerapan, penskalaan, dan manajemen sumber daya. Namun, mengelola konfigurasi Kubernetes secara langsung bisa jadi rumit dan rentan kesalahan. Di sini, Helm berperan penting dengan menyederhanakan, menstandarkan, serta merampingkan penerapan dan pemeliharaan aplikasi dalam kontainer.

Pengembangan Aplikasi

Bergabunglah: Pengembangan aplikasi Enterprise di cloud

Dalam video ini, Dr. Peter Haumer membahas seperti apa pengembangan aplikasi perusahaan modern saat ini di hybrid cloud dengan menunjukkan berbagai komponen dan praktiknya, termasuk IBM Z Open Editor, IBM Wazi, dan Zowe. 

Evolusi Helm

Deis (yang belakangan diakuisisi oleh Microsoft) menciptakan Helm pada tahun 2016 sebagai salah satu alat pertama untuk menyederhanakan manajemen aplikasi Kubernetes. Pada tahun 2018, tim ini menyumbangkan proyek tersebut ke Cloud Native Computing Foundation (CNCF), yang kemudian menyetujuinya sebagai proyek CNCF penuh pada tahun 2020.

Pengembangan sumber terbuka Helm aktif dikelola di GitHub, dan evolusinya merupakan hasil kolaborasi kontributor dari seluruh dunia. Situs resminya, helm.sh, menyediakan dokumentasi komprehensif (doc), unduhan, dan sumber daya untuk membantu pengguna memulai dan menerima informasi terbaru.

Rilis Helm 3 pada akhir 2019 merupakan tonggak pencapaian penting. Versi ini menghapus komponen Tiller dari Helm 2, sehingga meningkatkan keamanan dan menyederhanakan kontrol akses melalui interaksi langsung dengan antarmuka pemrograman aplikasi (application programming interface, API) Kubernetes. Helm 3 juga meningkatkan proses upgrade, manajemen dependensi, dan dukungan untuk chart perpustakaan, yang membuatnya lebih aman, fleksibel, serta mudah digunakan di perusahaan.

Helm banyak sekali digunakan di ekosistem cloud-native. Menurut survei CNCF terbaru, Helm memimpin sebagai pengelola paket Kubernetes yang paling disukai, dengan 75% adopsi oleh organisasi yang menjalankan Kubernetes.1

Artifact Hub (yang menggantikan Helm Hub awal) menghosting ribuan chart, dan berbagai vendor perangkat lunak besar rutin menyediakan chart Helm sebagai metode distribusi Kubernetes utama mereka.

Bagaimana cara kerja Helm?

Helm menyederhanakan manajemen aplikasi Kubernetes dengan menggabungkan manifes Kubernetes (file konfigurasi), templat konfigurasi, dan metadata ke dalam paket yang dapat digunakan kembali yang disebut chart Helm. Chart ini berisi semua spesifikasi yang diperlukan untuk menghasilkan file YAML yang sesuai untuk sumber daya Kubernetes, misalnya penerapan, layanan, pengontrol ingress, PersistentVolume, ConfigMap, dan secret, yang membentuk aplikasi. 

"YAML" adalah kependekan dari "YAML Ain't Markup Language" atau "Yet Another Markup Language". Ini adalah format data yang mudah dipahami manusia dan digunakan untuk menulis file konfigurasi, yang memberikan cara jelas dan terstruktur untuk menyajikan informasi yang dapat dibaca oleh manusia dan program.

Saat chart diinstal, Helm otomatis menerapkan sumber daya ini ke klaster Kubernetes target, dengan dukungan untuk pembuatan versi, rollback, dan manajemen dependensi bawaan.

Arsitektur dan komponen Helm

Helm beroperasi terutama sebagai alat sisi klien yang berinteraksi langsung dengan apiserver Kubernetes untuk mengelola penerapan aplikasi:

  • Klien Helm
  • Chart Helm
  • Rilis Helm
  • Repositori Helm

Klien Helm

Klien Helm adalah alat baris perintah (command-line, CLI) yang berinteraksi dengan klaster Kubernetes serta mengelola chart dan rilis. Alat ini digunakan sehari-hari oleh pengembang dan operator. Berbeda dengan kubectl yang merupakan alat perintah asli Kubernetes, Helm mengelola seluruh aplikasi, bukan komponen terpisah.

Chart Helm

Chart Helm adalah format paket yang berisi semua penetapan sumber daya yang diperlukan untuk menjalankan aplikasi di Kubernetes. Chart mencakup templat, nilai konfigurasi default, dan metadata.

Rilis Helm

Rilis Helm adalah contoh chart yang berjalan di klaster Kubernetes. Setiap rilis memiliki nama unik dan dapat dikelola secara independen.

Repositori Helm atau repo Helm

Repositori Helm adalah kumpulan chart yang dapat dibagikan dan didistribusikan, mirip dengan toko aplikasi atau perpustakaan paket di ekosistem lain.

Bagaimana chart Helm disusun?

Chart Helm adalah kumpulan file yang mendeskripsikan kumpulan sumber daya Kubernetes terkait. Struktur chart meliputi:

  • Templat Helm adalah manifes Kubernetes bertemplat yang diadaptasi dengan berbagai lingkungan penerapan, seperti pengembangan, penahapan, dan produksi, menggunakan parameter yang dapat dikonfigurasi.
  • File nilai (values.yaml) adalah nilai konfigurasi default yang dapat diganti untuk berbagai penerapan. Nilai dapat diberikan dalam format YAML atau JSON.
  • Metadata chart (chart.yaml) mendeskripsikan nama, versi, APIVersion, dependensi, dan pengelola chart.
  • Dokumentasi meliputi konten yang dapat dibaca manusia (misalnya, file readme, panduan memulai cepat, atau petunjuk penggunaan) yang membantu pengguna memahami cara menerapkan dan mengoperasikan chart.

Manfaat Helm untuk organisasi perusahaan

Pengembang Kubernetes, administrator sistem, dan profesional operasi TI (ITOps) lainnya di organisasi perusahaan menggunakan Helm untuk menyelesaikan tugas-tugas seperti:

  • Efisiensi Operasional
  • Mitigasi risiko
  • Tata kelola dan kepatuhan
  • Produktivitas pengembang

Efisiensi Operasional

Helm secara signifikan mengurangi kompleksitas operasional yang terkait dengan manajemen penerapan Kubernetes. Dengan mengotomatiskan dan menstandarkan manajemen konfigurasi, Helm merampingkan  alur kerja yang umumnya mencakup pengeditan YAML manual yang kompleks dan rawan kesalahan.

Efisiensi ini menjadi sangat penting seiring dengan penskalaan lingkungan cloud-native dan adopsi teknologi baru oleh organisasi, seperti beban kerja kecerdasan buatan (AI) dan machine learning (ML), serta komputasi edge.

Mitigasi risiko

Kemampuan rollback bawaan Helm menyediakan jaring pengaman penting untuk penerapan produksi. Jika upgrade gagal atau menyebabkan masalah, tim dapat langsung mengembalikan ke versi sebelumnya dengan satu perintah. Fitur ini mengurangi waktu rata-rata pemulihan (mean time to recovery, MTTR) untuk insiden terkait penerapan, yang penting dimiliki oleh aplikasi dengan ketersediaan tinggi dan layanan inferensi AI real-time.

Tata kelola dan kepatuhan

Chart dan skema Helm memungkinkan kontrol versi dan peninjauan kode layaknya artefak perangkat lunak lainnya. Pendekatan ini menyediakan jejak audit untuk penerapan dan memastikan bahwa perubahan melewati proses persetujuan yang tepat. Banyak organisasi menggunakan Helm dengan alur kerja GitOps untuk meningkatkan tata kelola, sehingga organisasi dapat memenuhi persyaratan kepatuhan industri teregulasi yang mengadopsi arsitektur cloud-native.

Produktivitas pengembang

Dengan menangani kompleksitas Kubernetes, Helm memungkinkan pengembang untuk fokus pada logika aplikasi, bukan konfigurasi infrastruktur. Tim dapat melakukan penyajian mandiri atas penerapan yang menggunakan chart yang telah disetujui sebelumnya. Hal ini mengurangi dependensi pada tim platform dan mempercepat waktu pengembangan yang diperlukan untuk AI kompetitif dan inisiatif transformasi digital.

Contoh penggunaan Helm

  • Manajemen siklus proses aplikasi
  • Penerapan perangkat lunak pihak ketiga
  • Lingkungan multitenant
  • Integrasi dan penskalaan CI/CD
  • Beban kerja AI/ML dan GPU
Manajemen siklus proses aplikasi

Organisasi biasanya menggunakan Helm untuk mengelola aplikasi khusus di lingkungan pengembangan, penahapan, dan produksi. Satu chart dapat dikonfigurasi dengan batas sumber daya, replika, dan flag fitur yang berbeda untuk setiap lingkungan.

Penerapan perangkat lunak pihak ketiga

Penginstalan dan pengelolaan perangkat lunak pihak ketiga, seperti database, alat pemantauan, atau komponen CI/CD, menjadi lebih sederhana dengan Helm. Tim tidak perlu mengikuti dokumentasi instalasi yang rumit, melainkan dapat menginstal konfigurasi siap produksi dengan satu perintah instalasi Helm.

Lingkungan multitenant

Helm unggul dalam skenario ketika aplikasi yang sama perlu diterapkan beberapa kali dengan konfigurasi berbeda di namespace yang berbeda. Platform SaaS, misalnya, kerap menggunakan Helm untuk mengelola penerapan khusus pelanggan dari aplikasi mereka.

Integrasi dan penskalaan CI/CD

Helm terintegrasi mulus dengan integrasi berkelanjutan dan pipeline penerapan berkelanjutan, yang berfungsi sebagai mekanisme penerapan dalam delivery pipeline otomatis. Platform e-commerce menggunakan Helm untuk mengelola penskalaan musiman, yang dengan cepat menerapkan instans aplikasi lain selama periode lalu lintas puncak dan menurunkan skala saat di luar periode sibuk. Semua ini dikelola melalui rilis Helm.

Beban kerja AI/ML dan GPU

Helm adalah solusi ideal untuk mengelola beban kerja kecerdasan buatan (AI) dan machine learning (ML), yang sering kali memerlukan konfigurasi kompleks, termasuk sumber daya GPU, penyimpanan khusus, komponen penyajian model, dan sistem pemantauan. Berbagai organisasi menggunakan chart Helm untuk menstandarkan penerapan pipeline ML, demi memastikan lingkungan yang konsisten untuk beban kerja inferensi dan pelatihan di klaster pengembangan dan produksi.

Helm versus pendekatan alternatif

Helm versus Kustomize

Kustomize adalah solusi lain yang banyak digunakan untuk mengelola konfigurasi Kubernetes, meskipun mengambil pendekatan yang berbeda dengan Helm. Helm menggunakan templat untuk menghasilkan manifes, sedangkan Kustomize mengambil pendekatan deklaratif dengan patch dan overlay untuk memodifikasi konfigurasi dasar.

Kustomize bersifat lebih sederhana dan memiliki kurva pembelajaran lebih landai, tetapi tidak dilengkapi dengan kemampuan manajemen paket, fitur pembuatan versi, dan rollback yang tersedia pada Helm. Banyak organisasi menggunakan keduanya secara bersamaan. Kustomize digunakan untuk menangani varian konfigurasi, sementara Helm dipakai untuk mengelola siklus proses aplikasi secara keseluruhan.

Helm versus operator Kubernetes

Operator Kubernetes adalah pengontrol khusus aplikasi yang memperluas API Kubernetes untuk mengelola aplikasi yang kompleks. Helm berfokus pada pengemasan dan penerapan, sedangkan operator menyediakan manajemen siklus proses berkelanjutan. Operator Kubernetes dapat menangani tugas operasional khusus aplikasi, seperti pencadangan, penskalaan, dan upgrade.

Helm lebih cocok untuk penerapan aplikasi umum dan beban kerja yang lebih sederhana. Di sisi lain, operator unggul dalam mengelola aplikasi stateful dengan persyaratan operasional yang kompleks. Banyak organisasi menggunakan Helm untuk menerapkan operator secara mandiri.

Solusi terkait
IBM Concert

Sederhanakan manajemen aplikasi dan dapatkan insight yang dapat Anda tindak lanjuti dengan menggunakan IBM Concert, platform otomatisasi teknologi berbasis AI.

Jelajahi IBM Concert
Perangkat lunak dan solusi Application Performance Management

Jembatani full stack observability dengan manajemen sumber daya aplikasi otomatis untuk mengatasi masalah kinerja sebelum berdampak pada pengalaman pelanggan.

Jelajahi solusi Application Performance Management
Layanan manajemen aplikasi untuk hybrid cloud

Temukan layanan yang sangat inovatif yang diberikan oleh IBM Consulting untuk mengelola lingkungan yang kompleks, hybrid, dan multicloud.

Jelajahi layanan manajemen aplikasi
Ambil langkah selanjutnya

Dengan menggunakan AI, IBM Concert mengungkap insight penting tentang operasi Anda dan memberikan rekomendasi spesifik aplikasi untuk perbaikan. Temukan cara Concert dapat memajukan bisnis Anda.

Jelajahi Concert Ikuti tur mandiri
Catatan kaki

1. CNCF 2023 Annual Survey, Cloud Native Computing Foundation, 2023