Demo
Dokumentasi: Instalasi | Cara penggunaan | Procfile | ENV | Contoh | Roadmap | Kontribusi | Presentasi LinuxConf | Tutorial aplikasi web cepat | Forum diskusi
Instalasi
- Instalasi sederhana:
curl https://piku.github.io/get | sh
- Metode instalasi lain: juga tersedia
cloud-init dan metode instalasi manual.
Aktivitas proyek
- Stabilitas:
piku stabil. Diperbarui saat ada penambahan runtime bahasa baru atau perbaikan bug.
- Persyaratan Python: memerlukan Python 3.7 atau lebih baru.
Motivasi
piku dikembangkan karena menginginkan metode deployment seperti Heroku/CloudFoundry pada board ARM.
- Karena
dokku tidak berjalan di ARM, dibutuhkan solusi yang lebih sederhana.
piku dapat men-deploy, mengelola, dan menskalakan banyak aplikasi secara independen pada arsitektur ARM dan Intel.
Alur kerja
- Alur kerja mirip Heroku:
- Membuat remote repository SSH
git: git remote add piku piku@yourserver:appname
- Push kode:
git push piku master
piku menentukan runtime dan memasang dependensi
- Melihat
Procfile lalu menjalankan worker yang relevan
- Dapat mengubah konfigurasi aplikasi dari jarak jauh dan menskalakan proses worker
- Dapat menyertakan konfigurasi aplikasi dan
nginx dalam file ENV
- Dapat men-deploy situs statis bergaya
gh-pages
Virtual host dan SSL
- Dukungan virtual host: dapat meng-host banyak aplikasi pada VPS yang sama
- Pengaturan SSL: dapat mengatur sertifikat SSL melalui Let's Encrypt
Caching dan path statis
- Dukungan situs statis: dapat memetakan prefiks URL tertentu langsung ke path sistem file
- Caching: dapat melakukan caching respons backend
Platform yang didukung
- Lingkungan POSIX: berjalan di lingkungan POSIX yang memiliki Python,
nginx, uwsgi, dan SSH
- Penggunaan utama: digunakan sebagai micro PaaS di server cloud
Runtime yang didukung
- Bahasa yang didukung: Python, Node, Clojure, Java, dan lainnya
- Aturan umum: jika bisa dipanggil dari shell, maka bisa dijalankan di
piku
Nilai inti
- Dapat berjalan di perangkat berspesifikasi rendah
- Mudah diakses oleh pengguna hobi dan sekolah K-12
- Sekitar 1500 baris kode yang mudah dibaca
- Gaya kode fungsional
- Dependensi tunggal
- Aplikasi 12 faktor
- Penyederhanaan pengalaman pengguna
- Mencakup 80% kasus penggunaan umum
- Menyediakan default yang masuk akal untuk semua fitur
- Memanfaatkan paket distribusi Raspbian/Debian/Ubuntu
- Memanfaatkan alat standar (
git, ssh, uwsgi, nginx)
- Menjaga kompatibilitas mundur jika memungkinkan
Pendapat GN⁺
- Deployment yang praktis:
piku memungkinkan deployment yang praktis bahkan di server kecil, sehingga berguna bagi software engineer.
- Dukungan banyak bahasa: mendukung berbagai bahasa sehingga dapat diterapkan ke beragam proyek.
- Dukungan perangkat berspesifikasi rendah: dapat berjalan di perangkat berspesifikasi rendah sehingga efisien dari sisi biaya.
- Pengalaman pengguna: menyederhanakan pengalaman pengguna sehingga engineer pemula pun dapat memakainya dengan mudah.
- Keamanan: pengaturan SSL melalui Let's Encrypt memungkinkan peningkatan keamanan.
1 komentar
Komentar Hacker News
Penulis tutorial webapp piku: Sangat menyukai piku. Saya menulis tutorial webapp, dan tutorial itu dimasukkan ke repo sebagai bagian dari organisasi piku resmi di GitHub. Bisa dilihat di tautan tutorial. Tutorial tersebut menjelaskan cara kerja piku dan contoh minimal webapp Python dari sudut pandang pengguna.
Pengguna yang baru pertama kali mengenal piku: Baru pertama kali membaca tentang piku. Rasanya selalu seperti sihir saat deployment dimulai dengan
git push. Tidak ada yang lebih sederhana dari ini.Pengguna yang meng-open-source proyek Kubernetes: Baru-baru ini saya meng-open-source proyek terkait Kubernetes. Ini adalah proyek yang berada di ranah yang sama dengan piku. Tautan proyek. Selamat. Terlihat sangat bagus.
Pengguna Dokku: piku terlihat bagus. Dokku juga sangat stabil. Namun, jika ketergantungan pada Docker dihilangkan, pilihan akan bergantung pada OS. Ini tidak ideal untuk aplikasi yang harus berjalan bertahun-tahun tanpa pemeliharaan. Bisa jadi akan membutuhkan versi OS tertentu.
Anggota tim Cloud Native Buildpacks (CNB): Ini tidak terkait dengan deployment
git push, tetapi berkaitan dengan pengalaman PaaS. Kami sedang mempratinjau CNB yang menargetkan Buildpacks dari CNCF. Dengan ini, image Docker bisa dibuat secara lokal menggunakan alat build yang mirip dengan logikagit pushHeroku. Tautan tutorial build aplikasi Rails. Kami ingin mendapatkan masukan.Pemberitahuan pembaruan dokumentasi piku: Disarankan untuk melihat dokumentasi piku yang baru diperbarui. Tautan dokumentasi.
Pengguna yang terkejut dengan waktu commit awal proyek: Saya kaget mengetahui bahwa commit awalnya sudah 8 tahun lalu. Andai saya tahu proyek ini 18 bulan yang lalu. Saya sedang mencari cara untuk menghadirkan pengalaman pengembangan seperti Heroku di Raspberry Pi. Sepertinya piku melakukan tepat hal itu.
Pengguna yang menekankan bahwa git bukan alat deployment: Terus mengulang, "git bukan alat deployment".
Pengenal ground-init: Saya adalah maintainer sekaligus co-author. Jika Anda menyukai alat deployment yang sederhana dan minimal, silakan lihat ground-init. Ini menawarkan pendekatan yang pragmatis untuk cloud init.
Pengguna yang menyiapkan deployment otomatis: Saya menambahkan URL ajaib yang dipanggil GitHub setiap kali commit didorong ke aplikasi. Server kemudian menjalankan
git pulldan pm2 me-reload aplikasi. Cocok untuk proyek kecil.Penanya tentang zero-downtime deployment: Saya penasaran bagaimana piku menangani deployment tanpa downtime. Misalnya, saat layanan Python berjalan di port 8080 di belakang nginx, saya ingin tahu bagaimana cara beralih ke instance baru pada port yang sama.