4 puntos por GN⁺ 2024-05-31 | 1 comentarios | Compartir por WhatsApp

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

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