Introducción a FrankenPHP, un servidor de aplicaciones PHP moderno
¿Qué es FrankenPHP?
- FrankenPHP es un servidor de aplicaciones PHP moderno escrito en Go.
- Integra el ejecutor oficial de PHP en el servidor web Caddy, con soporte para HTTP/1.1, HTTP/2 y HTTP/3.
- Ofrece generación y renovación automática de certificados HTTPS (usando Let’s Encrypt o ZeroSSL).
Funciones principales
- Permite ejecutar un servidor PHP de nivel producción con un solo comando.
- Puede generar un binario independiente para ejecutar aplicaciones web PHP y herramientas de línea de comandos sin dependencias.
- Incluye soporte predeterminado para extensiones populares de PHP (OPcache, XDebug, etc.).
Mejora de rendimiento
- Modo Worker: la aplicación se inicia una sola vez y permanece en memoria.
- Uso sencillo: cuenta con soporte predeterminado en Symfony, API Platform, Laravel y otros.
- Alta velocidad: en aplicaciones de API Platform es 3.5 veces más rápido que FPM.
- Eficiencia: aprovecha las goroutines de Go para ofrecer un rendimiento eficiente.
- Despliegue simple: se ejecuta como un único binario y no requiere servicios externos.
Ventajas de FrankenPHP
- Configuración fácil y rápida: basta con copiar los archivos PHP al document root.
- Alto rendimiento: combina tecnologías modernas de servidor web con el ejecutor de PHP para ofrecer gran rendimiento.
- Flexibilidad: también puede servir aplicaciones que no sean compatibles con el modo Worker.
Opinión de GN⁺
- Punto interesante: FrankenPHP puede mejorar de forma importante el rendimiento de las aplicaciones PHP al aprovechar tecnologías modernas de servidor web.
- Aspectos a considerar al adoptarlo: conviene revisar con anticipación posibles problemas de compatibilidad con entornos PHP existentes.
- Visión crítica: adoptar una tecnología nueva puede implicar una curva de aprendizaje y costos iniciales de configuración.
- Alternativas recomendadas: también vale la pena considerar servidores PHP como RoadRunner o Swoole, que ofrecen funciones similares.
- Pros y contras de la elección tecnológica: la mejora de rendimiento y la simplicidad de despliegue son ventajas, pero hay que evaluar con cuidado los riesgos de adoptar una tecnología nueva y los posibles problemas de integración con sistemas existentes.
1 comentarios
Opiniones en Hacker News
No he desarrollado en PHP en 10 años, pero esta landing page casi logra que vuelva a PHP: el diseño, los colores y las animaciones se ven limpios, y la propuesta de valor está muy bien destacada. Parece una buena forma de empezar un proyecto pequeño.
Desarrollador veterano de C#, actualmente usando principalmente PHP8: PHP8 es un gran lenguaje para terminar el trabajo rápido. Esta dirección parece mejor que LAMP.
Me da curiosidad su desempeño en los benchmarks de TechEmpower: por ahora aparece al final con estado de "incompleto".
Uso seguido el servidor web integrado de PHP mientras desarrollo: es lento por ser de un solo hilo y no es adecuado para producción. FrankenPHP se ve prometedor, pero el problema de núcleos/hilos limitados sigue existiendo. La imagen de Docker se ve prometedora.
Probé FrankenPHP, pero es muy lento: falta documentación y el rendimiento está por debajo de lo esperado. Afirman que rinde 3.5 veces más que FPM, pero en la práctica no da ni el 1% de mejora.
FrankenPHP tiene problemas de rendimiento: aun así, es un proyecto muy prometedor.
Enlace relacionado: presentación de FrankenPHP, un servidor de aplicaciones PHP escrito en Go.
Cómo construir un contenedor Docker: explica cómo convertir un Debian nuevo en el contenedor necesario mediante comandos de Docker.
Intenté hacer un benchmark de WordPress con FrankenPHP y Apache Mod-PHP: no pude confirmar una ventaja de FrankenPHP. Hice las pruebas en Docker y hace falta investigarlo más a fondo.
Me gustó ver este proyecto en la portada de HN: da la impresión de que una arquitectura que no comparte con FPM fue, al mismo tiempo, parte del éxito y de las limitaciones de PHP.