Panduan Cepat untuk Kerangka Kerja Tanpa Server Knative untuk Pemula

Diterbitkan: 2022-09-28

Kerangka kerja tanpa server diminati selama beberapa tahun terakhir dan telah menyaksikan peningkatan adopsi di kalangan pengembang.

Namun demikian, aplikasi berbasis container sudah populer, begitu pula Kubernetes di kalangan bisnis.

Kubernetes, tanpa diragukan lagi, adalah alat hebat yang memiliki potensi bagus. Ekosistemnya juga berkembang dengan berbagai alat baru dan teknologi terbaru, seperti Knative, yang memiliki kekuatan untuk membuat Kubernetes menjadi lebih baik.

Knative diperkenalkan untuk mengatasi situasi yang mengarah pada kegagalan dan menetapkan standar inti untuk platform cloud dan orkestrasi cloud-native.

Dengan kata lain, kerangka kerja tanpa server Knative dapat memenuhi kebutuhan perusahaan jauh lebih baik daripada penerapan tanpa server berbasis cloud lainnya.

Dalam panduan ini, saya akan berbicara tentang Knative, manfaatnya, kasus penggunaan, prosedur instalasi, prosedur kerja, dan banyak lagi.

Ini dia!

Apa itu Knatif?

Knative adalah framework tanpa server berbasis Kubernetes yang pertama kali dikembangkan oleh Google. Ini memuat dan menjalankan fungsi tanpa server berdasarkan kebutuhan perusahaan, sehingga meminimalkan pemborosan. Ini adalah proyek sumber terbuka yang menambahkan komponen untuk menerapkan, menjalankan, dan mengelola aplikasi tanpa server di Kubernetes.

Tujuan utama dari kerangka kerja tanpa server Knative adalah untuk mengelola standar untuk orkestrasi lintas platform. Hal ini diimplementasikan dengan mengintegrasikan fungsi pembuatan container, penskalaan otomatis, model peristiwa, dan manajemen beban kerja.

knative-serverless

Sebelumnya, ada berbagai solusi open-source selain Knative. Setiap solusi memiliki cara penerapannya sendiri, yang dapat menyebabkan fragmentasi pasar karena kurangnya praktik standar. Ini berarti memilih penyedia tertentu diperlukan jika Anda menginginkan fitur sistem tertentu.

Namun, masalah migrasi mulai datang ke depan. Dan untuk menghindari masalah seperti itu, kerangka kerja tanpa server Knative diperkenalkan. Jadi, jika Anda kesulitan untuk memasukkan tugas apa pun, Knative dapat melakukannya secara efisien dalam pipeline berbasis Kubernetes.

Knative memiliki tiga bagian:

  • Knative Build: Ini membangun gambar kontainer dan membuatnya tersedia dari kode sumber.
  • Knative Serving: Menggunakan Istio dan Kubernetes untuk menghubungkan dan menyebarkan gambar container ini melalui sumber daya infrastruktur yang ditetapkan.
  • Peristiwa Knative: Ini memungkinkan pengguna untuk menentukan pemicu peristiwa dan memungkinkan pengguna mengaitkan pemicu peristiwa dengan fungsi yang di-container.

Setiap kali Knative mengidentifikasi suatu peristiwa, Knative mendefinisikan proses terkait untuk menjalankannya sesuai permintaan. Dengan Knative, tidak perlu mengalokasikan node container, cluster, dan pod untuk bekerja karena Knative mengkomit sumber daya hosting hanya ketika proses tertentu berjalan. Dengan cara ini, Knative menyeimbangkan manfaat tanpa server dan container.

Konsep Inti Knative

Mari kita bahas konsep utama Knative Serverless Framework dan bagaimana konsep tersebut berkaitan dengan primitif Knative.

Membangun

Knative-building membantu memanfaatkan dan memperluas primitif Kubernetes yang ada, memungkinkan Anda untuk menjalankan build container dari asalnya. Ini memungkinkan kode sumber dari dependensi dan repositori, membangun gambar kontainer dan mendaftarkannya.

Acara

acara

Acara ini membantu Anda menciptakan komunikasi yang lebih baik antara konsumen dan produsen acara yang digabungkan secara longgar untuk membangun arsitektur yang digerakkan oleh acara. Knative menempatkan acara ini dalam antrian yang perlu dilakukan secara otomatis tanpa skrip pengembang.

Kemudian, acara ini dikirim ke kontainer. Kemudian mengirimkan feed ke produser acara untuk melakukan tugas. Ini akan mengurangi beban kerja pengembang dalam membuat kode untuk pembuatan koneksi.

Fungsi

Fungsi adalah unit penerapan independen dan layanan penyajian Knative, seperti layanan mikro. Kodenya ditulis untuk melakukan satu tugas, seperti:

  • Memproses file dalam database
  • Menyimpan pengguna ke database
  • Melakukan pekerjaan terjadwal

Kerangka kerja tanpa server asli dirancang untuk memungkinkan Anda mengembangkan dan menerapkan fungsi secara efektif dan mengelolanya.

Plugin

plugin

Perluas atau timpa fungsionalitas kerangka kerja tanpa server Knative dengan mudah menggunakan plugin. Setiap file serverless.yml berisi properti plugin yang menampilkan berbagai plugin.

Sumber daya

Sumber daya adalah komponen infrastruktur tanpa server Knative yang digunakan fungsi Anda, termasuk:

  • Sumber acara AWS SQS
  • Tugas terjadwal (dijalankan setiap 5 menit, 10 menit, dll.)
  • Sumber acara Kafka

Dan banyak lagi.

Jasa

Layanan seperti sebuah proyek. Oleh karena itu, layanan adalah unit organisasi kerangka kerja tanpa server Knative. Meskipun Anda dapat memiliki banyak layanan untuk satu aplikasi, Anda dapat menganggap layanan tersebut sebagai file proyek.

Di sinilah Anda akan mampu mendefinisikan fungsi, peristiwa, dan sumber daya, semuanya dalam satu file berjudul serverless.yml , serverless.json , atau serverless.js . Saat Anda menerapkan layanan dengan kerangka kerja tanpa server, semua yang ada di file akan diterapkan sekaligus.

Porsi

melayani

Knative-serving dibangun di Istio dan Kubernetes yang mendukung penerapan aplikasi. Ini memungkinkan pengembangan kontainer tanpa server yang cepat, pemrograman jaringan, dan penskalaan otomatis untuk komponen Istio. Knative-serving menganggap container sebagai layanan skalabel yang dapat berkisar dari satu instance hingga banyak instance container.

Fitur Knative

fitur-fitur dari knative

Mari kita bahas beberapa fitur kerangka kerja tanpa server Knative:

  • Knative adalah framework tanpa server berbasis Kubernetes yang memungkinkan Anda menerapkan layanan ke Kubernetes.
  • Ini dengan mudah mengintegrasikan Knative dengan lingkungan yang didukung
  • Pengembang dapat langsung menggunakan Kubernetes API dengan bantuan Knative untuk menerapkan layanan tanpa server
  • Ini memungkinkan pengguna untuk memicu layanan tanpa server dengan bantuan sistem acara Knative

Bagaimana Cara Kerja Knative?

Kerangka kerja tanpa server asli berfungsi sebagai segmen pengarah acara dan menghubungkan Istio dan Kubernetes. Kubernetes berfungsi sebagai orkestra untuk layanan mikro dan kontainer. Istio, di sisi lain, adalah teknologi mesh open-source yang menyatukan berbagai komponen untuk berinteraksi dengan pengguna dan diri mereka sendiri.

Knative memberi pengguna beberapa komponen yang ditargetkan untuk melakukan pekerjaan dasar sehari-hari. Komponen-komponen ini digunakan lagi dan lagi dalam berbagai aplikasi. Seorang pengembang dapat menggunakan bahasa pemrograman apa pun. Oleh karena itu, Anda tidak memerlukan pengetahuan khusus tentang bahasa karena Knative hanya mengenali gambar kontainer.

Ada tiga komponen kerangka kerja tanpa server Knative yang merupakan kunci fungsinya.

Membangun Kontainer Baru

membangun

Komponen build bertanggung jawab untuk membangun container baru. Itu dapat mengonversi kode sumber ke wadah. Knative dapat dikonfigurasi untuk memenuhi kebutuhan spesifik bisnis.

Pertama, Knative mengeluarkan kode sumber dari perpustakaan seperti Github. Kemudian, dependensi yang mendasari ditambahkan sehingga kode berjalan secara efektif. Gambar kontainer kemudian dibuat dan dimasukkan ke dalam file yang dapat diakses oleh platform Kubernetes.

Wadah ini tersedia untuk pengembang yang menggunakan Kubernetes dan Knative. Dengan demikian, kontainer dibangun selama asal kode diketahui.

Melayani atau Menjalankan Platform

Komponen penyajian bertanggung jawab untuk menjalankan platform. Ini melibatkan:

  • Konfigurasi: Konfigurasi pasti dalam mengelola beberapa versi layanan. Setiap kali ada penerapan fitur baru wadah, Knative menyimpan versi yang ada dan membuat yang baru dengan perubahan dan fitur terbaru. Selain itu, Knative mendefinisikan status layanan.
  • Penskalaan otomatis: Agar container tanpa server berfungsi dengan lebih baik, Anda harus mampu menskalakan container secara otomatis ke atas atau ke bawah. Knative dapat menskalakan layanan secara otomatis ke banyak orang jika diperlukan.
  • Perutean layanan cerdas: Ini adalah bagian penting dari mekanisme kerja Knative. Ini memungkinkan pengembang mengarahkan aliran dan jumlah lalu lintas ke berbagai versi layanan mikro yang ada. Saat memperkenalkan fitur baru dan strategi penerapan biru-hijau, perutean layanan cerdas dapat digunakan.

Ini memungkinkan Anda untuk mengekspos sebagian kecil pengguna ke pengujian dan versi terbaru dan secara bertahap mengarahkan lalu lintas besar ke versi baru.

Acara untuk Mendefinisikan Fungsi

menyenangkan

Komponen eventing Knative bertanggung jawab untuk menggambarkan fungsi Knative. Hal ini memungkinkan mendefinisikan menjalankan kontainer berdasarkan peristiwa. Peristiwa yang berbeda memicu fungsi wadah tertentu.

Pengembang dapat menentukan pemicu acara dan wadah terkait untuk membiarkan Knative melakukan tugasnya. Knative menangani daftar acara dan pengiriman acara.

Manfaat Knative

Knative menyediakan layanan seperti manajemen rute, rilis bertahap, dan koneksi layanan. Ini membanggakan komunitas yang luas. Mari kita bahas bagaimana Knative mempengaruhi perusahaan untuk mengadopsi teknologi ini.

  • Tidak seperti solusi lain, Knative memiliki event standar dan kompatibel dengan solusi FaaS. Ini menawarkan kerangka kerja standar CloudEvent yang membantu dalam merancang arsitektur tanpa server.
  • Meskipun Knative bukan PaaS, ini memungkinkan Anda membuat PaaS tanpa server dengan platform orkestrasi tanpa server.
  • Knative memiliki desain tanpa server yang lengkap dan matang.
  • Ini mendukung lintas platform dan memberi Anda standar universal di antara penyedia cloud untuk menghilangkan kemungkinan mengikat vendor dengan solusi spesifik.
lintas platform
  • Knative menyediakan kerangka kerja yang fleksibel.
  • Ini mendukung rilis bertahap proporsional.
  • Anda dapat mengalami ekosistem tanpa server dalam lingkungan kemas.
  • Knative menghilangkan keandalan pada manajemen dan perkakas.
  • Anda dapat dengan cepat bermigrasi ke penyedia cloud lain yang terintegrasi dengan Knative dengan mengimplementasikan Kubernetes.
  • Ini menawarkan model komputasi berbasis permintaan.
  • Ini memungkinkan Anda untuk mengelola alur kerja sebagai layanan.
  • Dengan Knative, Anda dapat memproses data IoT, menjalankan pemeriksaan aksesibilitas, dan memvalidasi konfigurasi grup keamanan Anda.
  • Ini memungkinkan pengembang untuk fokus pada pengkodean dan membiarkan mereka membuat kode berulang dengan cepat.
  • Ini memastikan pengembang akan memasukkan versi baru.
  • Model berbasis acara Knative membantu mengimplementasikan desain, termasuk langganan, koneksi ke sistem eksternal, dan pendaftaran.

Tantangan Knative (dan Beberapa Solusi)

Tantangan Efisiensi

Kerangka Knative yang mendukung aplikasi yang tepat memberikan kinerja yang lebih baik dengan biaya minimal. Namun, campuran aplikasi yang tidak tepat dapat mengakibatkan biaya yang lebih tinggi dan sumber daya kontainer yang kurang dimanfaatkan. Hal ini dapat menyebabkan kinerja aplikasi yang buruk, yang merupakan tantangan terbesar dari penerapan tanpa server Knative.

Efisiensi-Tantangan

Dengan demikian, kumpulan sumber daya yang berukuran buruk atau aplikasi yang salah dapat merusak banyak manfaat Knative.

Anda dapat mengatasi tantangan ini dengan melakukan pengujian untuk memverifikasi jumlah sumber daya dan campuran aplikasi di Knative. Ukur beban acara dengan mengukur beban rata-rata dan maksimum untuk masing-masing dan perkirakan total konsumsi sumber daya. Ulangi ini untuk beberapa aplikasi untuk membuat dan menjalankan konfigurasi percobaan untuk memvalidasi perkiraan.

Tantangan Fungsional

Tantangan fungsional Knative dapat berupa:

  • Knative bergantung pada fungsi yang sesuai dengan model stateless. Ini berarti tidak ada data yang disimpan dalam komponen itu sendiri. Pengembangan fungsi bukanlah fase yang sulit, tetapi membutuhkan sedikit perubahan dalam pendekatan, yang berarti satu kesalahan dapat merusak kinerja perangkat lunak.
  • Data bisnis terdiri dari beberapa langkah transaksi, dan fungsi stateless mempertahankan konteks di semua langkah. Knative tidak memiliki kemampuan itu seperti yang dapat dilakukan oleh alat tanpa server cloud publik.

Pemantauan dan perbaikan masalah secara teratur dapat membantu Anda menjaga kinerja Anda pada skor yang layak.

Tantangan Operasional

Tantangan Operasional

Dibandingkan dengan penawaran tanpa server di cloud publik, ada tantangan operasi dengan Knative. Admin tidak mengontrol server yang mendasarinya dengan cloud publik. Namun, mereka perlu mengelola server bersama dengan Kubernetes, container, Knative, dan Istio itu sendiri.

Knative secara minimal memperluas operasi dan kompleksitas pengembangan untuk perusahaan yang telah berkomitmen pada Kubernetes dan container. Mereka yang berkomitmen pada layanan mesh dan layanan mikro akan menganggap Knative sebagai ekstensi alami.

Gunakan Kasus Knative

usecaseofknative

Untuk aplikasi yang memunculkan sejumlah variabel peristiwa yang tetap berada dalam atau melewati batas waktu yang ditentukan, Knative adalah yang terbaik untuk mereka. Kasus penggunaan khusus dari kerangka kerja tanpa server Knative meliputi:

  • Pengujian dan validasi situs web
  • Pemantauan aplikasi
  • IoT
  • Pemantauan jaringan
  • Proses ujung-ujung aplikasi seluler
  • Siklus hidup Agile dan DevOps
  • Peluncuran fitur baru
  • Memperlancar Kubernetes

Orientasi acara sangat penting. Jika tim TI tidak dapat membayangkan aplikasi sebagai rangkaian peristiwa alih-alih transaksi, Knative mungkin bukan pilihan yang baik karena alasan fungsional dan efisiensi.

Prasyarat dan Pemasangan Knative

Seperti yang kita lihat di bagian di atas, Knative adalah kumpulan komponen seperti kejadian dan penyajian yang berjalan pada mesh layanan dan kluster orkestrasi beban kerja. Ada utilitas baris perintah yang perlu kita instal untuk pengoperasian yang mudah. Jadi, kita memerlukan beberapa dependensi untuk memastikan kita dapat melanjutkan instalasi.

Prasyarat

Prasyarat

Ada beberapa opsi untuk menginstal Kubernetes. Docker Desktop hadir untuk mengaktifkan cluster Kubernetes yang mudah yang melayani berbagai tujuan. Pendekatan sederhananya adalah dengan menggunakan Kubernetes di Docker untuk menjalankan cluster Kubernetes bersama dengan node container Docker. Cara mudah untuk bekerja dengan cluster adalah dengan menggunakan alat baris perintah Knative.

Knative CLI menawarkan antarmuka yang mudah dan cepat untuk membuat sumber dayanya. Ini membantu dalam tugas-tugas kompleks seperti pemisahan lalu lintas dan penskalaan otomatis. Cara mudah adalah mengunduh biner yang kompatibel dari halaman GitHub.

Instalasi

Setelah kita memiliki semua prasyarat, kita dapat melanjutkan untuk menginstal komponen. Untuk lingkungan pengembangan, ada plugin quickstart. Plugin membantu dalam menginstal cluster Knative lokal menggunakan klien Knative. Anda dapat mengunduh plugin quickstart dari halaman rilis resmi.

Kesimpulan: Masa Depan Knative

Knative telah menggantikan komputasi tanpa server dengan menyediakan penskalaan aplikasi secara otomatis. Itu membuat dampak yang signifikan pada sistem interoperable dan modular.

Di masa depan, Knative diharapkan dapat menutupi kekurangan saat ini dan menjadi salah satu teknologi paling efisien untuk menjalankan arsitektur tanpa server.

Teknologi asli lebih berpengaruh bagi pengembang dengan melihat manfaatnya dibandingkan alternatif tanpa server. Knative akan membantu Anda menghemat waktu dengan mengganti kebutuhan untuk membangun dan memelihara ekstensi Kubernetes. Pengembang cukup senang dengan teknologi Knative karena mudah digunakan dan alternatif yang bagus untuk solusi tanpa server.

Jadi, jika Anda ingin memaksimalkan kekuatan lingkungan Kubernetes dalam alur kerja cloud Anda, adopsi teknologi Knative dan saksikan sendiri manfaatnya.