4 poin oleh GN⁺ 2024-05-31 | 1 komentar | Bagikan ke WhatsApp

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

 
GN⁺ 2024-05-31
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.