14 poin oleh GN⁺ 2025-09-02 | Belum ada komentar. | Bagikan ke WhatsApp
  • Belakangan ini, pendekatan hibrida yang mengintegrasikan Go dan Rust sebagai bahasa ekstensi di dalam arsitektur monolitik PHP semakin mendapat perhatian
  • Sebelumnya, kombinasi microservice Go dan monolitik PHP 8.3 memungkinkan tercapainya keseimbangan antara produktivitas dan kinerja tinggi
  • Sesuai hukum Pareto (80% trafik terkonsentrasi pada 20% API), optimalisasi endpoint hotspot menjadi hal yang penting, dan di masa lalu hal ini ditangani dengan caching serta pemisahan layanan Go, tetapi kompleksitasnya meningkat
  • Perkembangan terbaru dalam ekosistem PHP menghadirkan teknik seperti FFI, ekstensi Rust, dan ekstensi Go (FrankenPHP) sehingga kinerja dapat ditingkatkan secara signifikan di dalam monolitik itu sendiri
  • Ekstensi Rust memberikan keamanan memori dan kecepatan sekaligus, sementara FrankenPHP menunjukkan peningkatan kinerja lebih dari 4x lewat worker mode dan ekstensi berbasis Go
  • Tanpa harus menanggung biaya dan risiko menulis ulang semuanya ke Go/Rust, pendekatan PHP hibrida memungkinkan tercapainya produktivitas dan kecepatan sekaligus

Latar belakang dan arsitektur sebelumnya

  • Sebelumnya, pengembangan berpusat pada aplikasi monolitik DDD (mother), lalu microservice berbasis Go (children) dikembangkan secara terpisah untuk mengoptimalkan fungsi tertentu
  • Microservice Go menangani pemrosesan trafik berkinerja tinggi, sementara monolitik PHP 8.3 memberikan pengembangan fitur yang cepat dan keandalan deployment dalam lingkungan tim backend kecil
  • Struktur ini menawarkan titik keseimbangan yang mampu menghadirkan kecepatan, stabilitas, dan produktivitas sekaligus

Titik bottleneck kinerja dan cara penanganan sebelumnya

  • Prinsip Pareto bahwa 80% trafik terkonsentrasi pada 20% endpoint API sering diamati
  • Untuk 20% area yang paling penting dari sisi kinerja ini, diterapkan berbagai cara seperti penulisan kode yang dioptimalkan, penambahan lapisan caching, dan pemisahan microservice Go
  • Namun, pendekatan ini memiliki keterbatasan dari sisi kompleksitas dan beban operasional

Opsi hibrida dalam ekosistem PHP modern

  • Kini semakin banyak teknologi yang memungkinkan peningkatan kinerja langsung di dalam monolitik PHP
  • 1. FFI (Foreign Function Interface)

    • Fitur FFI di PHP memungkinkan kode C dipanggil langsung dari PHP
    • Logika level sistem maupun logika kritikal terhadap kinerja dapat diimplementasikan di dalam proyek PHP
    • Namun, penggunaannya disarankan hanya pada situasi yang tepat dengan mempertimbangkan biaya context switching
  • 2. Ekstensi berbasis Rust

    • Ekstensi PHP dapat dikembangkan dengan Rust (atau Zig)
    • Area pemrosesan beban tinggi dapat di-offload ke ekstensi Rust yang memiliki stabilitas memori dan kinerja kompilasi, sehingga keandalan dan kecepatan tinggi bisa diperoleh sekaligus
  • 3. Ekstensi berbasis Go: FrankenPHP

    • Setelah beralih ke FrankenPHP, saat dijalankan dalam worker mode, terlihat kinerja lebih dari 4x lebih cepat dibanding sebelumnya
    • Rilis terbaru juga memungkinkan penulisan ekstensi PHP dengan Go
    • Dengan ini, kinerja API Go dapat langsung dimanfaatkan di dalam monolitik PHP, sehingga produktivitas dan kecepatan bisa digabungkan tanpa memecah bahasa

Mengapa bukan migrasi total ke Go atau Rust

  • Biaya penulisan ulang total dan risikonya sangat tinggi
    • Mengganti sepenuhnya aplikasi yang sudah besar dan stabil ke Go atau Rust membutuhkan risiko dan sumber daya yang besar
  • PHP sendiri masih memiliki kekuatan
    • Untuk sebagian besar kebutuhan bisnis, pengembangan cepat, ekosistem yang ramah, dan performa yang cukup cepat dari PHP tetap kompetitif
    • Jika hanya area tertentu yang benar-benar membutuhkan batas performa tertinggi yang disusun secara hibrida dengan Go atau Rust, kebutuhan migrasi total dapat dihilangkan

Kesimpulan: nilai dari PHP hibrida

  • Ekosistem PHP modern menyediakan produktivitas pengembangan yang cepat sekaligus opsi integrasi ekstensi berkinerja tinggi (C, Rust, Go)
  • Dengan struktur hibrida seperti ini, kecepatan dan produktivitas dapat dicapai bersamaan
  • Ini menghadirkan paradigma arsitektur baru yang memungkinkan pengembangan tetap berpusat pada PHP sambil memperluas bahasa secara selektif sesuai kebutuhan

Belum ada komentar.

Belum ada komentar.