- Platform open source yang dibuat agar developer solo pun bisa memanfaatkan Kubernetes dengan mudah, menawarkan kemudahan yang mirip Heroku
- Berjalan di lingkungan Docker dan Docker Compose, serta dapat diinstal dan dijalankan dengan perintah sederhana
- Dikembangkan untuk mengatasi masalah kenaikan biaya TI yang tak terduga yang dialami di startup sebelumnya
- Alih-alih fitur yang rumit, platform ini mengejar kesederhanaan dengan hanya mengekspos elemen inti seperti Ingress, Services, Deployments, Pods, CronJobs, dan lainnya
- Melalui Helm, hampir semua aplikasi open source dapat di-deploy, dan konfigurasi YAML dapat diunduh sehingga keluar dari Canine juga memungkinkan
- Dengan melengkapi fitur yang tidak tersedia secara bawaan di Kubernetes, seperti akun, deployment, dan dashboard, platform ini ditujukan sebagai platform pengembangan yang cocok untuk tim kecil
Ikhtisar
- Canine adalah platform deployment Kubernetes open source yang dirancang agar aplikasi dapat di-deploy semudah di Heroku
- Berjalan di atas klaster Kubernetes sendiri, dan bila perlu konfigurasi YAML dapat diunduh sehingga operasi yang terdesentralisasi juga dimungkinkan
- Dengan hanya mengekspos resource inti seperti Ingress, Services, Deployments, Pods, CronJobs, platform ini memberikan pengalaman penggunaan yang sederhana dan intuitif
Latar masalah: struktur yang kompleks dan biaya yang melonjak
- Dari pengalaman menjalankan startup sebelumnya, biaya TI meningkat jauh lebih cepat dari perkiraan
- Biaya terutama meningkat seiring kompleksitas organisasi dan bertambahnya layanan yang terintegrasi, dan dalam banyak kasus tidak berkaitan dengan penggunaan server atau komputasi
- Alat pihak ketiga berikut menumpuk dan membuat biaya TI melonjak cepat:
- alat terkait data seperti Looker, Redshift, Databricks, DBT Cloud, FiveTran
- alat monitoring seperti Datadog, New Relic, Sentry
- alat infrastruktur seperti Google Maps API, AWS
- Sebagian memang bisa diganti dengan open source, tetapi adopsinya dihindari karena beban menyusun infrastruktur operasional seperti monitoring, health check, dan notifikasi
Potensi dan batasan Kubernetes
- Kubernetes adalah platform yang dapat diskalakan dari satu node hingga ribuan klaster, dan tersedia sebagai standar di hampir semua cloud
- Namun bagi pemula dan tim kecil, platform ini dipandang sebagai sistem yang rumit dan mudah rusak
- Khususnya, kesalahan seperti menghapus CoreDNS dapat membuat seluruh klaster tidak berfungsi
- Ketika biaya dan kompleksitas operasional menumpuk, PaaS terabstraksi yang sudah ada justru bisa menjadi penghambat
Fitur Canine
- Dengan hanya mengekspos fitur minimum yang dibutuhkan dari Kubernetes, Canine menghadirkan kesederhanaan dan kontrol
- Kekurangan yang ada dilengkapi dengan fitur-fitur berikut:
- manajemen akun
- manajemen deployment
- menjalankan skrip one-off sederhana
- dashboard metrik
- Melalui platform deployment yang intuitif, bahkan pemula dapat dengan mudah men-deploy aplikasi ke lingkungan Kubernetes
- Selama Docker dan Docker Compose sudah siap, instalasi dan menjalankan sistem bisa dilakukan dengan satu perintah
- Menyediakan lingkungan manajemen berbasis UI yang mengurangi beban konfigurasi dan pemeliharaan Kubernetes yang rumit
- Melalui integrasi Helm, aplikasi open source seperti Sentry juga dapat di-deploy dengan mudah
Migrasi dan kebebasan
- Canine digunakan di atas Kubernetes yang sudah ada, sehingga mudah juga untuk keluar darinya
- Semua konfigurasi dapat diunduh sebagai YAML, sehingga migrasi ke platform lain di kemudian hari juga mudah
Pentingnya dan pembeda
- Dibandingkan alat Kubernetes pada umumnya, Canine menawarkan UI yang ramah pemula dan proses instalasi yang mudah
- Dengan membawa pengalaman penggunaan mirip Heroku ke ekosistem Kubernetes, hambatan masuk dapat diturunkan secara signifikan
- Berbasis open source, sehingga memungkinkan ekstensibilitas yang fleksibel dan peningkatan yang berpusat pada komunitas
- Diperkirakan sangat efektif karena bahkan tim pengembang kecil atau startup dapat dengan mudah memanfaatkan keunggulan Kubernetes
- Bebas digunakan, didistribusikan, dan dimodifikasi di bawah Apache 2.0 License
1 komentar
Opini Hacker News
Saya termasuk orang yang selalu mencari solusi yang lebih baik untuk mewujudkan “pengalaman mirip Heroku” di server saya sendiri, jadi saya senang sekali melihat ini
Dokumentasi Kubernetes milik Canine sangat mudah diakses, terasa sebagai salah satu yang paling ramah yang pernah saya lihat
Saat membaca dokumentasinya saya jadi penasaran: saya sempat berharap Canine bisa dipakai juga di lingkungan managed K8s seperti Digital Ocean, tetapi setelah dibaca kesannya saya tetap harus mengelola klaster K8s sendiri
Ada beberapa pertanyaan
Umumnya nomor 1 dipakai untuk aplikasi staging/pengembangan, dan nomor 2 untuk aplikasi produksi
Untuk nomor 2, jumlah node dikelola di Digital Ocean atau layanan serupa, lalu Kubernetes akan otomatis melakukan rescheduling workload dan memanfaatkan autoscaling
Ini tampaknya inti dari pertanyaannya, tetapi Canine saat ini memang belum mendukung pembuatan klaster multinode secara langsung di lingkungan Hetzner
Ada juga terraform Hetzner untuk membuat klaster K8s, tetapi itu belum terintegrasi di Canine
Setelah peningkatan UI dan hal lainnya selesai, ada minat ke arah sana
Untuk saat ini, asumsinya adalah Canine membantu lewat panduan instalasi K3s satu VPS, atau digunakan ketika klaster sudah siap
Referensi: terraform-hcloud-kube-hetzner
Sebagai orang yang merasa proyek seperti ini memang sangat dibutuhkan, saya mendukung penuh
Kalau hari ini, saya mungkin akan mempertimbangkan Canine atau Dokploy (menurut saya Docker Swarm juga teknologi yang diremehkan)
Masukan: bagian “mengapa Anda tidak seharusnya memakai Canine” tadinya saya kira akan terasa segar karena jujur, tetapi nuansanya agak terdengar menyindir dan kurang nyaman
Akan lebih baik kalau ditulis secara lugas saja: Anda harus membeli dan mengelola server sendiri, Anda yang bertanggung jawab jika down, dan ini adalah produk tahap awal dari pengembang tunggal—kelemahan praktis seperti itu yang sebaiknya dijelaskan dengan jelas
Saya penasaran bagaimana status pemeliharaan dan dukungan Docker Swarm saat ini
Beberapa tahun lalu saya berhenti mengikutinya karena rasanya tim Docker saat itu sudah menghentikan pengembangannya
Saya menulisnya seperti itu agar berbeda dari landing page lain, tetapi saya sangat menghargai masukan dari pengguna nyata
Saya akan mencoba lagi
Membagikan daftar yang mengumpulkan berbagai platform PaaS yang ada di luar sana
awesome-paas
Saya memang sedang mencari cara mengajukan proyek ke daftar seperti ini, jadi berkat ini saya akan membuat PR
dokku adalah platform PaaS minimalis yang bisa dijalankan di VPS, dan ada juga dokku-scheduler-kubernetes
dokku-scheduler-kubernetes
Namun, Helm chart tidak didukung
Ada juga ringkasan struktur umum cloud computing dan berbagai tautan perbandingan
Cloud computing architecture
Cloud-computing comparison
Category:Cloud_platforms
Di awesome-selfhosted juga ada serverless/FaaS, dan itu terhubung ke awesome-sysadmin > PaaS
awesome-selfhosted FaaS/Serverless
Pertanyaan untuk OP (penulis)
Saya penasaran apa latar belakang yang membuat Anda membangun proyek seperti ini
Saya punya keinginan untuk membuat sesuatu yang kompleks dari awal sampai akhir, tetapi pengalaman saya sejauh ini baru sebatas integrasi API dan React
Saya ingin tahu bagaimana proses memecah ide yang rumit menjadi daftar tugas yang realistis hingga akhirnya benar-benar menjadi proyek open source “alternatif Heroku”
Saya sendiri hampir tidak punya pengalaman memakai Heroku, jadi saat mencoba menentukan “fitur apa yang harus dibuat”, saya mungkin akan melihat hal-hal seperti halaman harga, tetapi saya khawatir pendekatan itu tidak efisien
Alternatif Heroku berbasis Kubernetes terdengar menarik
Tetapi kalau untuk memakainya saya tetap harus paham K8s atau Helm chart, maka bagi saya itu pada dasarnya bukan alternatif Heroku
Tentu saya paham bahwa dari sudut pandang operator, mungkin itu bisa terasa sesederhana echo hello
Saya hanya ingin, saat perlu mengunggah sesuatu secepat mungkin, saya bahkan tidak perlu memikirkan kata “Kubernetes dan Helm chart” sama sekali
Pengguna bahkan tidak perlu tahu bahwa Kubernetes itu ada, tetapi tetap bisa menikmati ekosistemnya yang matang
Kapan pun butuh fitur yang lebih kuat, mereka juga bisa langsung membuka dan menggunakan kemampuan tingkat lanjut seperti Kubernetes API
Catatan kecil
Kubernetes tidak menjalankan container Docker, melainkan container yang sesuai dengan spesifikasi Open Container Initiative (OCI)
Docker adalah merek dagang
Catatan kecil lain:
Di Canine Kubernetes Crash Course tertulis bahwa Kubernetes mendukung “10 ribu server”, padahal secara resmi Kubernetes disebut mendukung hingga 5 ribu node
Lihat dokumentasi resmi Kubernetes
Klaster yang jauh lebih besar memang mungkin, tetapi akan butuh banyak kustomisasi besar-besaran (misalnya mengganti seluruh API registry)
Tentu workload juga berpengaruh
Kubernetes masih belum benar-benar mendukung klaster besar secara out-of-the-box, tetapi ia terus berkembang di setiap rilis
Saya pribadi tidak suka kalau Docker diwajibkan
Sekarang saya lebih sering menjalankan semuanya dengan podman atau containerd ketimbang docker
Membangun proyek ini benar-benar sangat menyenangkan, dan ini adalah pengembangan paling seru dalam hidup saya
Rasa puas karena bisa menggenggam seluruh “tech stack” dalam satu tangan itu luar biasa
Mulai dari Rails app, infra Canine, server Raspberry pi, sampai ISP yang saya pakai
Saya membagikan pengalaman menjalankan aplikasi sambil mengelola semuanya sendiri
Di situs web, lisensinya tertulis MIT License 2024
tetapi di GitHub justru tertulis apache license
Bagi saya ini perbedaan yang lebih penting daripada sekadar tahunnya benar atau tidak
Saya ingin tahu lisensi mana yang sebenarnya berlaku
Dalam self-hosting, saya ingin sesuatu di tengah-tengah antara docker dan K8s, jadi saya juga pernah mencari hal serupa sendiri
Saya sempat mempertimbangkan Nomad, tetapi tetap sedikit lebih rumit daripada docker yang benar-benar dead simple, dan ekosistemnya juga kurang
Akhirnya home server saya tetap hanya menjalankan docker, dan saya menerima downtime saat deployment
Untuk produksi, saya penasaran sejauh mana Canine mengabstraksikan K8s
Apakah nantinya tetap akan ada kebutuhan untuk melihat ke dalam, karena saya masih pemula di K8s dan bertanya-tanya apakah posisi tengah seperti itu benar-benar memungkinkan
uncloud
Tujuannya adalah menghadirkan CLI ala Docker dan kemampuan multi-mesin/produksi ala Docker Compose, sambil tetap sederhana tanpa control plane operasional
Masih dalam pengembangan, tetapi tujuannya adalah agar apa yang terjadi di setiap lapisan mudah dipahami, dan troubleshooting juga mudah
Saya sangat suka konsepnya
K8s adalah teknologi yang hebat, tetapi kompleksitasnya menjadi hambatan masuk
Dari materi publik yang ada, terlihat bahwa esensinya dipahami dengan baik
Ini tampaknya akan sangat berguna terutama di ranah self-hosting tempat solusi seperti PVE, Microcloud, dan Cockpit populer
Saya punya N100 NUC nganggur di rumah, dan sekarang jadi tertarik mencoba Canine alih-alih melanjutkan Microcloud
helm kadang memang merepotkan
Membingungkan mana nilai yang cukup diubah di
values.yamllalu diterapkan, dan mana yang harus disetel sejak awalBeberapa instalasi helm memiliki terlalu banyak service, sehingga membingungkan apa yang aman direstart dan kapan
Sebaliknya, core kubernetes terasa sangat nyaman untuk stateless job
Saya sekarang tidak tahu lagi dari mana istilah “kompleksitas” K8s berasal
Dulu memang ada masa setup dua jam dengan kubespray dan semacamnya
Tetapi sekarang, dengan alat seperti rke, Anda bisa membuat klaster hanya dengan satu file yaml dan satu SSH key saja