Apa itu Knative?

Apa itu Knative?

Knative memungkinkan beban kerja tanpa server untuk berjalan di klaster Kubernetes. Ini membuat membangun dan mengatur kontainer dengan Kubernetes lebih cepat dan lebih mudah.

Knative (diucapkan Kei-NEI-tiv) adalah perluasan dari platform orkestrasi kontainer Kubernetes . Menyediakan peralatan dan utilitas yang membuat pembangunan, penerapan, dan pengelolaan aplikasi terkontainerisasi dalam Kubernetes menjadi pengalaman yang lebih sederhana dan lebih "asli-Kubernetes" (oleh karena itu namanya, "K" untuk "Kubernetes" + "native (asli)").

Seperti Kubernetes, Knative adalah perangkat lunak sumber terbuka. Google awalnya mengembangkannya bekerja sama dengan IBM®, Pivotal, Red Hat®, SAP dan hampir 50 perusahaan lainnya. Hari ini, Cloud Native Computing Foundation (CNCF) menjadi tuan rumah proyek sumber terbuka Knative.

Pemandangan udara dari jalan raya

Dapatkan ketenangan saat menggunakan cloud 


Dapatkan Buletin Think mingguan untuk mendapatkan panduan pakar dalam mengoptimalkan pengaturan multicloud di era AI.

Mengapa Kubernetes membutuhkan Knative

Kubernetes mengotomatiskan dan menjadwalkan penerapan, manajemen, dan penskalaan kontainer— komponen aplikasi yang ringan dan dapat dieksekusi yang menggabungkan kode sumber dengan semua pustaka sistem operasi (OS) dan dependensi yang diperlukan untuk menjalankan kode di lingkungan apa pun.

Kontainer memungkinkan komponen aplikasi untuk berbagi sumber daya dari satu instance OS, dengan cara yang hampir sama seperti mesin virtual (VM) memungkinkan aplikasi untuk berbagi sumber daya dari satu komputer fisik. Lebih kecil dan lebih hemat sumber daya daripada VM dan lebih cocok untuk siklus rilis inkremental dari metodologi pengembangan Tangkas dan DevOps, kontainer telah menjadi unit komputasi de facto dari aplikasi cloud-native modern. Perusahaan yang menggunakan kontainer melaporkan manfaat lain, termasuk peningkatan kualitas aplikasi, tingkat inovasi yang lebih tinggi, dan banyak lagi:

Ketika pengembangan cloud native menjadi lebih populer dan kontainer bertambah di sebuah organisasi,  kemampuan orkestrasi kontainer Kubernetes, yang mencakup penjadwalan, penyeimbangan beban, pemantauan kesehatan, dan banyak lagi, membuat proliferasi itu jauh lebih mudah untuk dikelola. Namun, Kubernetes adalah alat kompleks yang mengharuskan pengembang untuk melakukan atau membuat template banyak tugas berulang, seperti menarik kode sumber aplikasi dari repositori, membangun dan menyediakan image kontainer di sekitar kode dan mengonfigurasi koneksi jaringan di luar Kubernetes menggunakan alat yang berbeda. Memasukkan kontainer yang dikelola Kubernetes ke dalam pipeline integrasi berkelanjutan/pengiriman berkelanjutan (CI/DC) otomatis membutuhkan alat khusus dan pengodean khusus.

Knative menghilangkan kerumitan ini dengan alat yang mengotomatiskan tugas-tugas ini dari dalam Kubernetes. Seorang pengembang dapat mendefinisikan konten dan konfigurasi kontainer dalam satu berkas manifes YAML, dan Knative melakukan sisanya, membuat kontainer dan melakukan pemrograman jaringan untuk mengatur rute, akses masuk, penyeimbangan beban, dan banyak lagi. Knative juga menawarkan antarmuka baris perintah, Knative CLI yang memungkinkan para pengembang untuk mengakses fitur-fitur Knative tanpa mengedit berkas YAML.

AI Academy

Mencapai kesiapan AI dengan hybrid cloud

Dipandu oleh pemimpin terkemuka IBM, kurikulumnya dirancang untuk membantu pemimpin bisnis dalam mendapatkan pengetahuan yang diperlukan untuk memprioritaskan investasi AI yang dapat mendorong pertumbuhan.

Membuat kontainer tanpa server

Komputasi tanpa server adalah model eksekusi cloud-native yang membuat aplikasi lebih mudah dikembangkan dan lebih hemat biaya. Model komputasi tanpa server

  • menyediakan sumber daya komputasi sesuai permintaan, menskalakan secara transparan berdasarkan permintaan dan menskalakan ke nol ketika permintaan tidak lagi dibuat;

  • menurunkan semua tugas manajemen infrastruktur—penskalaan, penjadwalan, tambalan, penyediaan, dan banyak lagi—ke penyedia cloud, memungkinkan pengembang untuk memfokuskan waktu dan upaya mereka pada pengembangan dan inovasi; dan

  • memungkinkan pelanggan cloud untuk membayar hanya untuk sumber daya yang digunakan; mereka tidak pernah membayar untuk kapasitas idle.

Dengan sendirinya, Kubernetes tidak dapat menjalankan aplikasi tanpa server tanpa perangkat lunak khusus yang mengintegrasikan Kubernetes dengan platform tanpa server dari penyedia cloud tertentu. Knative memungkinkan kontainer apa pun untuk dijalankan sebagai beban kerja tanpa server pada klaster Kubernetes apa pun, apakah kontainer dibangun di sekitar fungsi tanpa server atau kode aplikasi lainnya (misalnya, layanan mikro), dengan mengabstraksi kode dan menangani perutean jaringan, pemicu peristiwa, dan penskalaan otomatis.

Cara kerja Knative: Komponen Knative

Knative berada di atas Kubernetes dan menambahkan tiga komponen utama atau primitif: Build, Serving, dan Eventing.

Pembangunan

Komponen Knative Build mengotomatiskan mengubah kode sumber menjadi kontainer. Proses ini biasanya melibatkan beberapa langkah, termasuk:

  • Menarik kode sumber dari repositori kode, seperti GitHub
  • Menginstal dependensi yang mendasari, seperti variabel lingkungan dan pustaka perangkat lunak, yang dibutuhkan kode untuk menjalankannya
  • Membuat image kontainer
  • Menempatkan image kontainer ke dalam registri tempat Kubernetes dan pengembang lain dapat menemukannya.

Knative menggunakan API Kubernetes dan peralatan lain untuk proses Build-nya. Pengembang dapat membuat manifes tunggal (biasanya file YAML) yang menentukan semua variabel — lokasi kode sumber, dependensi yang diperlukan, dan banyak lagi—dan Knative menggunakan manifes untuk mengotomatiskan pembuatan kontainer.

Serving

Komponen Serving menerapkan dan menjalankan kontainer sebagai layanan Knative yang dapat diskalakan. Serving menyediakan kemampuan penting berikut:

  • Konfigurasi mendefinisikan dan memelihara status suatu layanan. Ia juga menyediakan manajemen versi: Setiap modifikasi pada konfigurasi membuat versi baru layanan, dan versi sebelumnya disimpan.

  • Perutean layanan cerdas memungkinkan pengembang merutekan lalu lintas ke versi layanan yang berbeda. Misalkan Anda telah membuat versi layanan baru tetapi ingin menyebarkannya ke subset pengguna sebelum memigrasikan semua pengguna. Perutean layanan cerdas memungkinkan Anda merutekan persentase permintaan pengguna ke layanan baru dan sisanya ke versi sebelumnya; ketika Anda semakin yakin dengan layanan baru, Anda bisa merutekan lebih banyak lalu lintas ke layanan tersebut.

  • Penskalaan otomatis. Knative dapat menskalakan layanan menjadi ribuan instans; itu juga dapat menskalakannya hingga nol — yaitu, tidak ada instans kontainer sama sekali — yang sangat penting untuk mendukung aplikasi tanpa server.

Knative Serving meminjam perutean layanan cerdas dari Istio, aplikasi lain dalam ekosistem Kubernetes. Jaring layanan sumber terbuka untuk Kubernetes, Istio juga menyediakan autentikasi untuk permintaan layanan, enkripsi lalu lintas otomatis untuk komunikasi yang aman antar layanan, metrik terperinci tentang layanan mikro dan operasi fungsi tanpa server dan alat lain bagi pengembang dan administrator untuk mengoptimalkan infrastruktur. 

Eventing

Komponen Eventing dari Knative memungkinkan berbagai peristiwa untuk memicu layanan berbasis kontainer dan fungsi mereka. Knative mengantri dan mengirimkan peristiwa tersebut ke kontainer yang sesuai, jadi tidak perlu menulis skrip atau mengimplementasikan middleware untuk fungsionalitas tersebut. Knative juga menangani saluran, yang merupakan antrean acara yang bisa dipilih oleh para pengembang, dan bus, sebuah platform perpesanan yang mengantarkan acara ke kontainer. Ini juga memungkinkan pengembang untuk menyiapkan umpan, yang menghubungkan peristiwa ke tindakan untuk dilakukan kontainer mereka.

Sumber Knative Event memudahkan pengembang untuk membuat koneksi ke produsen acara pihak ketiga. Eventing Knative secara otomatis membuat koneksi ke produsen acara dan merutekan peristiwa yang dihasilkan. Tidak perlu mencari tahu cara melakukannya secara terprogram—Knative melakukan semua pekerjaan.

Contoh penggunaan Knative

Sebagai rekap, Knative mendukung beberapa contoh penggunaan untuk pengguna Kubernetes yang ingin menyederhanakan pengembangan aplikasi dalam kontainer atau membawa penggunaan kontainer ke tingkat berikutnya.

Merampingkan Kubernetes. Dengan menghilangkan tugas-tugas pembangunan dan konfigurasi yang berulang, Knative membuat pengembang yang bekerja dengan Kubernetes lebih produktif. Tim pengembangan mana pun yang kesulitan mengelola klaster Kubernetes yang jumlahnya terus bertambah adalah kandidat ideal untuk Knative.

Mempercepat perjalanan menuju tanpa server. Lingkungan tanpa server bisa jadi sulit untuk disiapkan dan dikelola secara manual. Knative memungkinkan organisasi untuk menyiapkan beban kerja tanpa server dengan cepat. Bagi pengembang, mereka hanya membangun sebuah kontainer—Knative yang menjalankannya sebagai fungsi tanpa server di balik layar.

Mendukung siklus hidup Agile dan DevOps. Dengan memungkinkan pengembang untuk membuat kontainer baru dan versi kontainer lebih cepat, Knative mempermudah penerapan aplikasi kontainer dalam langkah-langkah kecil, cepat, berulang sebagai bagian dari alur kerja Agile atau DevOps. Layanan Knative dapat diintegrasikan dengan mudah ke dalam pipeline CI/CD otomatis tanpa memerlukan perangkat lunak khusus atau pemrograman khusus.

Memperlancar peluncuran fitur baru. Meluncurkan rilis baru kepada pelanggan dapat mengungkap masalah perangkat lunak yang mungkin memengaruhi proses bisnis. Konfigurasi dan perutean Knative memungkinkan pengembang memaparkan revisi kontainer baru ke sebagian basis pengguna. Kemudian, mereka secara bertahap meningkatkan audiens tersebut seiring berjalannya waktu sembari mereka memecahkan masalah atau dengan cepat mengembalikan ke versi lama jika diperlukan.

Menjaga pengembang tetap fokus pada pengodean dan inovasi. DevOps dapat memberdayakan pengembang untuk mengelola lingkungan mereka sendiri. Tetapi pada akhirnya, pengembang ingin fokus pada pembuatan perangkat lunak bebas bug dan fitur-fitur baru yang inovatif, bukan pada mengonfigurasi antrian bus pesan untuk memicu peristiwa atau mengelola skalabilitas kontainer. Knative memungkinkan pengembang menghabiskan lebih banyak waktu untuk melakukan apa yang terbaik yang mereka lakukan.

Solusi terkait
IBM Red Hat OpenShift

Red Hat OpenShift on IBM Cloud adalah OpenShift Container Platform (OCP) yang dikelola sepenuhnya.

Jelajahi Red Hat OpenShift
Solusi Kontainer

Solusi kontainer menjalankan dan meningkatkan beban kerja dalam kontainer dengan keamanan, inovasi sumber terbuka, dan penerapan yang cepat.

Jelajahi kontainer
Layanan Konsultasi Cloud 

Dapatkan kemampuan baru dan dorong ketangkasan bisnis dengan layanan konsultasi cloud IBM. Temukan cara berkolaborasi dalam menciptakan solusi, mempercepat transformasi digital, dan mengoptimalkan kinerja melalui strategi hybrid cloud dan kemitraan pakar.

Layanan cloud
Ambil langkah selanjutnya

Modernisasi infrastruktur Anda dengan solusi kontainer IBM. Jalankan, skalakan, dan kelola beban kerja kontainer di seluruh lingkungan dengan fleksibilitas, keamanan, dan efisiensi dengan platform kontainer IBM yang komprehensif.

Jelajahi solusi kontainer Buat akun IBM Cloud gratis Anda