Memperkenalkan FrankenPHP, server aplikasi PHP modern
Apa itu FrankenPHP?
- FrankenPHP adalah server aplikasi PHP modern yang ditulis dalam bahasa Go.
- Server ini menanamkan runtime PHP resmi ke dalam web server Caddy, sehingga mendukung HTTP/1.1, HTTP/2, dan HTTP/3.
- Menyediakan fungsi pembuatan dan pembaruan sertifikat HTTPS otomatis (menggunakan Let’s Encrypt atau ZeroSSL).
Fitur utama
- Dapat menjalankan server PHP kelas produksi dengan satu perintah.
- Dapat membuat binary mandiri untuk menjalankan aplikasi web PHP dan alat baris perintah tanpa dependensi.
- Mendukung ekstensi PHP populer (OPcache, XDebug, dll.) secara bawaan.
Peningkatan performa
- Mode worker: aplikasi di-boot sekali lalu tetap disimpan di memori.
- Mudah digunakan: didukung secara bawaan di Symfony, API Platform, Laravel, dan lainnya.
- Kecepatan tinggi: 3,5 kali lebih cepat daripada FPM pada aplikasi API Platform.
- Efisiensi: memanfaatkan fitur goroutine dari Go untuk memberikan performa yang efisien.
- Deployment sederhana: berjalan sebagai satu binary tanpa memerlukan layanan eksternal.
Kelebihan FrankenPHP
- Pengaturan mudah dan cepat: cukup salin file PHP ke document root.
- Performa tinggi: memberikan performa tinggi dengan menggabungkan teknologi web server modern dan runtime PHP.
- Fleksibel: aplikasi yang tidak kompatibel dengan mode worker pun tetap bisa dijalankan apa adanya.
Opini GN⁺
- Hal yang menarik: FrankenPHP dapat secara signifikan meningkatkan performa aplikasi PHP dengan memanfaatkan teknologi web server terbaru.
- Hal yang perlu dipertimbangkan saat adopsi: masalah kompatibilitas dengan lingkungan server PHP yang ada perlu ditinjau terlebih dahulu.
- Sudut pandang kritis: adopsi teknologi baru dapat menimbulkan kurva belajar dan biaya pengaturan awal.
- Alternatif yang direkomendasikan: server PHP seperti RoadRunner atau Swoole yang menawarkan fungsi serupa juga layak dipertimbangkan.
- Untung dan rugi dalam memilih teknologi: peningkatan performa dan deployment yang sederhana adalah kelebihan, tetapi risiko dari adopsi teknologi baru dan masalah integrasi dengan sistem yang ada harus ditinjau dengan cermat.
1 komentar
Komentar Hacker News
Sudah 10 tahun tidak mengembangkan dengan PHP, tetapi landing page ini nyaris membuat saya kembali ke PHP: desain, warna, dan animasinya rapi, serta proposisi nilainya ditonjolkan dengan baik. Terlihat seperti cara yang bagus untuk memulai proyek kecil.
Pengembang C# lama, saat ini terutama menggunakan PHP8: PHP8 adalah bahasa yang hebat untuk menyelesaikan pekerjaan dengan cepat. Arah ini lebih baik daripada LAMP.
Penasaran dengan performanya di benchmark Tech Empower: saat ini statusnya "belum selesai" dan berada di posisi paling bawah.
Sering menggunakan web server bawaan PHP saat mengembangkan: single-threaded, lambat, dan tidak cocok untuk lingkungan produksi. FrankenPHP terlihat menjanjikan, tetapi masalah core/thread yang terbatas masih tetap ada. Image Docker-nya terlihat menjanjikan.
Sudah mencoba FrankenPHP, tetapi sangat lambat: dokumentasinya kurang dan performanya di bawah ekspektasi. Mereka mengklaim performa 3,5x dibanding FPM, tetapi kenyataannya tidak mencapai bahkan 1% dari itu.
FrankenPHP memiliki masalah performa: meskipun begitu, ini tetap proyek yang sangat menjanjikan.
Tautan terkait: FrankenPHP, pengenalan app server PHP yang ditulis dengan Go.
Cara membangun kontainer Docker: menjelaskan cara mengubah Debian baru menjadi kontainer yang dibutuhkan melalui perintah Docker.
Mencoba benchmark Wordpress dengan FrankenPHP dan Mod-PHP milik Apache: tidak berhasil melihat keunggulan FrankenPHP. Diuji di Docker, dan tampaknya perlu digali lebih dalam.
Senang melihat proyek ini naik ke halaman depan HN: ada kesan bahwa arsitektur yang tidak berbagi dengan FPM membawa keberhasilan PHP sekaligus keterbatasannya.