Knative #
Knative adalah platform open-source untuk membangun, menjalankan, dan mengelola aplikasi serverless berbasis container di atas Kubernetes. Knative tidak menggantikan Kubernetes, melainkan melapisinya dengan abstraksi serverless agar developer tidak perlu berurusan langsung dengan kompleksitas resource Kubernetes sehari-hari.
Berbeda dengan serverless tradisional (seperti AWS Lambda) yang berbasis function, Knative menggunakan container sebagai unit eksekusi, sehingga sangat cocok untuk:
- Microservices
- API backend
- Event-driven services
- Aplikasi yang membutuhkan kontrol runtime lebih besar
Bagan Konseptual Knative (High-Level) #
Bagan berikut membantu memahami posisi Knative di antara user, Kubernetes, dan workload aplikasi:
+-------------------+
| Developer |
| (Code & Container)|
+-------------------+
|
v
+-------------------+
| Knative |
| - Serving |
| - Eventing |
| - Autoscaling |
+-------------------+
|
v
+-------------------+
| Kubernetes |
| Pod, Service, HPA |
+-------------------+
|
v
+-------------------+
| Infrastructure |
| VM / Bare Metal |
| Cloud / On-Prem |
+-------------------+
Dengan bagan ini, pembaca dapat langsung memahami bahwa Knative = Serverless Experience + Kubernetes Power.
Kenapa Knative Disebut Serverless? #
Knative memenuhi karakteristik utama serverless:
No Server Management
- Developer tidak mengatur node, pod count, atau autoscaler manual.
Auto Scaling (Termasuk Scale-to-Zero)
- Saat tidak ada traffic → pod = 0
- Saat traffic datang → pod otomatis dibuat
Pay-per-Use Friendly
- Sangat efisien di environment cloud karena resource hanya aktif saat digunakan.
Event-Driven Native
- Event bukan sekadar trigger, tapi citizen utama dalam arsitektur.
Fully Managed oleh Control Plane
- Routing, revisioning, dan scaling diurus Knative.
Kesimpulannya: Knative memberikan serverless behavior, meskipun tetap berjalan di Kubernetes.
Arsitektur dan Komponen Utama Knative #
Knative terdiri dari dua komponen inti yang saling melengkapi, yaitu Knative Serving dan Knative Eventing.
Knative Serving #
Knative Serving bertanggung jawab menjalankan HTTP-based workloads secara serverless.
Objek Utama Knative Serving #
Service
- Entry point utama aplikasi
- Abstraksi tertinggi
Configuration
- Mendefinisikan bagaimana aplikasi dibangun dan dijalankan
Revision
- Immutable snapshot dari Configuration
- Setiap perubahan config → revision baru
Route
- Mengatur traffic ke satu atau lebih revision
Alur Kerja Knative Serving #
Request Masuk
|
v
Knative Route
|
v
Revision (v1 / v2 / vN)
|
v
Pod Kubernetes
Fitur Penting Knative Serving #
- Autoscaling berbasis request
- Scale-to-zero
- Canary deployment
- Blue-green deployment
- Traffic splitting berbasis persentase
Knative Eventing #
Knative Eventing menyediakan sistem event abstraction yang decoupled, scalable, dan extensible.
Konsep Dasar Eventing #
- Producer: penghasil event
- Broker: event hub
- Trigger: filter dan routing event
- Consumer: Knative Service
Alur Eventing #
Event Source
|
v
Broker
|
v
Trigger (filter)
|
v
Knative Service
Event Sources yang Didukung #
- Kafka
- Google Pub/Sub
- GitHub Webhook
- CloudEvents
- Custom event source
Konfigurasi Penting di Knative #
Autoscaling Configuration #
minScale: minimum podmaxScale: maksimum podtargetConcurrencytargetCPU
Request Handling #
containerConcurrencytimeoutSeconds
Resource Management #
- CPU request & limit
- Memory request & limit
Traffic Management #
- Weight-based routing
- Revision pinning
Monitoring & Observability #
Apa yang Bisa Dimonitor? #
- Request rate
- Latency (P50, P90, P99)
- Pod scaling events
- Cold start frequency
- Event delivery success/failure
Tool Observability #
- Prometheus
- Grafana
- Fluentd / Loki
- Jaeger / OpenTelemetry
Pros & Cons Knative #
Pros #
- Serverless experience di Kubernetes
- Autoscaling hingga nol
- Event-driven native
- Traffic management advanced
- Portable & cloud-agnostic
Cons #
- Kompleks untuk pemula
- Cold start latency
- Debugging lebih sulit
- Eventing setup cukup verbose
Best Practices #
- Gunakan
minScale > 0untuk service latency-sensitive - Gunakan traffic splitting untuk production rollout
- Aktifkan monitoring sejak awal
- Gunakan dead letter sink di eventing
- Optimalkan ukuran container image
- Pisahkan service berdasarkan domain/event
- Gunakan CI/CD (Tekton, ArgoCD)
Penutup #
Knative adalah solusi serverless tingkat lanjut bagi tim yang sudah atau ingin serius menggunakan Kubernetes. Dengan Knative, organisasi mendapatkan:
- Fleksibilitas container
- Efisiensi serverless
- Arsitektur event-driven modern
- Kontrol penuh tanpa vendor lock-in
Jika digunakan dengan benar, Knative dapat menjadi fondasi platform internal serverless (Internal PaaS) yang sangat kuat dan scalable.