Octane adalah server PHP yang dioptimalkan untuk Laravel. Mampu meningkatkan performa aplikasi secara drastis. Serta menggunakan teknologi modern seperti Swoole, RoadRunner, dan frankenPHP.
Keunggulan Menggunakan Laravel Octane
- Respons aplikasi menjadi lebih cepat.
- Mampu menangani lebih banyak traffik sekaligus.
- Mengurangi beban server dan biaya infrastruktur.
- Mudah diintegrasikan dengan aplikasi Laravel yang ada.
Kenapa Laravel Octane Cepat ?
- Octane menggunakan server aplikasi persisten seperti frankenPHP, Swoole atau RoadRunner. Server ini berjalan terus-menerus dan dapat menangani banyak permintaan secara bersamaan tanpa harus memulai proses PHP baru untuk setiap permintaan. Hal ini mengurangi overhead secara signifikan.
- Octane juga mampu menjalankan beberapa permintaan secara bersamaan dalam satu proses, sehingga meningkatkan throughput dan mengurangi latency.
Instalasi Laravel Octane Pada Aplikasi Laravel
Pertama jalankan perintah
composer require laravel/octane
Perintah tersebut akan menambahkan dependency octane pada composer kita
Setelah selesai proses penginstallan octane, Meskipun dependency octane pada composer telah di install, octane belum bisa berjalan sepenuhnya, ini dikarenakan octane membutuhkan server khusus untuk membungkus aplikasi laravel kita. Octane menyediakan beberapa pilihan server diantaranya frankenphp, roadrunner, dan swoole
Untuk menginstall server, jalankan perintah
php artisan octane:install
Pada tutorial ini, saya memilih menggunakan server roadrunner.
untuk roadrunner dan frankenphp di tulis menggunakan go dan tidak perlu menjalankan konfigurasi khusus untuk menginstall mereka, karena octane akan otomatis mendownload mereka
Sedangkan untuk swoole yang di tulis menggunakan c/c++, ada konfigurasi khusus yaitu menambahkan php extension swoole
Selanjutnya menginstall roadrunner dependency, pilih Yes. Composer akan mendownload dependency yang di perlukan dan menambahkannya di composer.json
Setelah menginstall dependency roadrunner berhasil, kita akan diminta untuk mendownload file binary roadrunner (karna roadrunner di build menggunakan go. dan go support binary build).
Pilih Yes untuk mendownload roadrunner binary file. Tunggu hingga proses download selesai. Dan laravel octane siap dijalankan
Menjalankan Aplikasi Laravel Octane
Setelah proses penginstalan selesai, kini waktunya menjalankan aplikasi laravel, Berbeda dengan aplikasi laravel biasa, dimana untuk menjalankan aplikasi, kita menggunakan perintah php artisan serve
pada laravel octane, kita menjalankan aplikasi dengan perintah
php artisan octane:start
Selesai, kita berhasil menjalankan aplikasi laravel octane dengan server roadrunner. (saya sengaja menggunakan port 8001 karna port 8000 telah saya pakai)
Benchmark/Perbandingan Aplikasi Laravel Biasa, Dengan Aplikasi Laravel Menggunakan Octane
meskipun aplikasi kita telah bisa menggunakan roadrunner sebagai server, kita masih tetap bisa menjalankan aplikasi laravel biasa (tanpa roadrunner server / tidak pakai octane).
jadi untuk membandingkan performa antara laravel biasa dengan laravel octane, tidak usah membuat aplikasi baru, cukup menjalankan aplikasi pada port yang berbeda dengan perintah masing – masing
php artisan serve untuk menjalankan aplikasi laravel biasa pada port 8000 (port default)
php artisan octane:start –port 8001 untuk menjalankan aplikasi laravel dengan octane pada port 8001 (karna port 8000 telah terpakai)
Setelah menjalankan masing masing aplikasi, kini saatnya melakukan benchmarking kedua aplikasi tersebut,
Saya menggunakan program wrk untuk melakukan benchmark nya
wrk -c 150 -d 5 -t 4 http://127.0.0.1:8000
Perintah ini akan menjalankan request sebanyak 150 kali selama 5 detik dengan menggunakan 4 thread pada masing masing aplikasi (sesuaikan portnya)
Dapat dilihat pada hasil benchmarking, aplikasi yang menggunakan octane (kiri) mendapatkan :
505.28 request/second
16.91MB transfer/second
Sedangkan aplikasi yang tidak menggunakan octane (kanan) hanya mendapatkan :
95.99 request/second
3.21MB transfer/second
kenaikan yang dialami aplikasi kita untuk penanganan request sekitar 426.04%, menakjubkan bukan ?!
Kapan Menggunakan Octane
- Aplikasi dengan beban tinggi: Jika aplikasi kita sering mengalami lonjakan trafik, octane dapat membantu meningkatkan skalabilitas dan kinerja.
- Aplikasi real-time: Octane sangat cocok untuk aplikasi yang membutuhkan respons waktu yang sangat cepat, seperti aplikasi chat atau game online.
- Aplikasi yang membutuhkan kinerja tinggi: Jika Anda ingin memaksimalkan kinerja aplikasi laravel Anda, Octane adalah pilihan yang tepat.
Kekurangan Menggunakan Octane
- Rentan terhadap memory leaks : karna server octane (roadrunner, swool, frankenphp) akan menjalankan aplikasi sekali, dan di taruh di memory, aplikasi menjadi rentan terhadap memory leaks. Meskipun itu tergantung dari kodingan developer pada aplikasinya. https://laravel.com/docs/11.x/octane#managing-memory-leaks
- Konfigurasi ekstra saat implementasi dependency injection laravel : menurut dokumentasi di laravel, aplikasi yang menggunakan octane butuh konfigurasi ekstra saat mengimplementasikan dependency injection. Untuk lebih jelasnya bisa melihat dokumentasi laravel di https://laravel.com/docs/11.x/octane#dependency-injection-and-octane