4 poin oleh GN⁺ 2024-06-10 | 1 komentar | Bagikan ke WhatsApp

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

 
GN⁺ 2024-06-10
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 logika git push Heroku. 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 pull dan 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.