Google Cloud Platform (GCP) presenta oficialmente la ejecución de funciones PHP en Cloud Run, y nada menos que con la base el framework de Symfony. Esta biblioteca de código abierto te permite implementar fácilmente aplicaciones PHP en Cloud Run. Revisemos rápidamente este paquete y veamos cómo implementar una función PHP en Cloud Run.
Artículos recomendados antes de seguir con la lectura:
- Arquitectura totalmente escalable con API Serverless
- ¿Por qué Google Cloud Platform?
- ¿Por qué utilizar Docker?
- PHP y Symfony. Una breve introducción a Mercure
- Primeros pasos con Symfony 5 como API REST
- Symfony 5. ¿Cómo traducir e internacionalizar el framework?
- Symfony 5. ¿Qué hay de nuevo en el Framework?
¿Qué es Cloud Run?
Cloud Run es una plataforma Serverless de Google Cloud Platform (GCP) autogestionada que escala automáticamente los contenedores. En lugar de utilizar servidores, Cloud Run abstrae toda la gestión de la infraestructura con Docker para que puedas dedicarte a desarrollar aplicaciones que realmente aporten valor.
Framework Symfony de funciones PHP con Cloud Run
El framework de funciones de PHP te permite desarrollar fácilmente funciones PHP autónomas con una experiencia de desarrollado Function as a Service (FaaS) que se pueden ejecutar localmente y desplegar en el cloud. Puedes consultar el repositorio del framework publicado en Packagist y también puedes encontrar el código fuente en GitHub.
Desarrollar funciones FaaS PHP con Symfony
PHP Functions Framework te permite utilizar el framework Symfony para gestionar las solicitudes HTTP de tu desarrollo. Mientras desarrollas localmente, puedes ejecutar pruebas en tu equipo con el servidor web incorporado de PHP (mediante CLI) para ejecutar el código de su función que responde a las solicitudes HTTP.
Veamos un ejemplo a continuación creando nuestro “Hello World”. Creamos la siguiente función en el archivo index.php en la raíz de tu nuevo proyecto:
Para que todo funcione deberemos instalar la dependencia de Cloud Function Framework de GCP con composer:
Finalmente, y para verificar tu desarrollo con Cloud Function Framework localmente podemos ejecutar los siguientes comandos para verificar y testear mediante el servidor web incorporado de PHP:
Desde http://localhost:8080/?name=ITDO verás tu nueva función PHP ejecutándose localmente.
Contenerización de tu aplicación con Cloud Run
PHP Functions Framework es portable, lo que significa que puedes hacer correr tu código fuente existente con Functions Framework de GCP y ejecutarlo en cualquier lugar que admita PHP.
Ejecuta tu función en un contenedor
El repositorio de PHP Functions Framework de GCP incluye un ejemplo Dockerfile que puedes usar para construir un nuevo contenedor.
Crea el contenedor con el ejemplo Dockerfile:
Ejecuta el contenedor con tu nueva función:
Desde http://localhost:8080/?name=ITDO verás nuevamente tu nueva función PHP ejecutándose localmente.
Implementar tus funciones PHP Symfony en Cloud Run
Implementar tu aplicación en Google Cloud es fácil. Ejecute los siguientes comandos para construir tu contenedor e implementarlo en Cloud Run:
Después de ~ 30 segundos, obtendrá una URL similar a esta:
https://hellophp-q7vieseilq-uc.a.run.app/?name=ITDO
Conclusión
¡Has desplegado tu primera función PHP en Google Cloud! Además de Dockenizar tu nuevo proyecto PHP. Con GCP Cloud Run podrás hacer correr tus funciones PHP como FaaS (Función como servicio) para escribir funciones PHP portátiles. Aunque por el momento el repositorio está en desarrollo y no está destinado para uso en producción. Seguiremos atentos las novedades de esta solución.
¿Desarrollas en PHP? ¿Tu infraestructura es Serverless? ¿Qué te parecen las FaaS?
Photo by Oswaldo Martinez on Unsplash
Referencias: