Enero 27, 2025
English version here.
Spoiler: No se trata solo de ahorrar dinero—aunque mi billetera no se queja.
Imagina esto: has creado una brillante aplicación en Laravel—tu obra maestra, una navaja suiza digital con funciones tan útiles que podrían cortar mantequilla... o los comentarios de los usuarios. Pero hay un detalle. Cada mes estás pagando por una instancia EC2 que está tan infrautilizada como una membresía de gimnasio después de enero. Mientras tanto, escalar se siente como intentar aparcar un crucero en medio de un huracán.
¿Te ha pasado? A mí también.
Hace tres años, hice algo que la mayoría de los desarrolladores llamarían una locura: desplegué PHP en AWS Lambda. “¿PHP? ¿En serverless? ¡Eso es como poner piña en la pizza!”, decían.
Pero aquí estoy, tres años después, comiendo mi pizza con piña con orgullo. Déjame contarte por qué Laravel en serverless es la actualización en la nube que no sabías que necesitabas.
(ó: Por qué mis instancias EC2 estaban teniendo una crisis existencial)
Antes de serverless, mi aplicación Laravel vivía en EC2. Para los no iniciados, EC2 es la versión de Amazon de un servidor privado virtual, donde alquilas una parte de una máquina para ejecutar tu código. Suena bien, ¿verdad? Hasta que la realidad te golpea más fuerte que un composer update
rebelde.
Ejecutar una instancia EC2 es como tener un Tesla que dejas encendido las 24 horas del día, solo por si acaso quieres conducir. Mi aplicación no siempre estaba ocupada, pero eso no detenía el contador. Entre instancias EC2, balanceadores de carga y almacenamiento compartido, gastaba alrededor de $110/mes en un stack de servidores que pasaba la mayor parte del tiempo inactivo. ¿Mi billetera? Hundida como el Titanic.
Lo sé, no es mucho en el gran esquema de las cosas, pero como desarrollador/emprendedor en solitario, cada dólar cuenta.
Las instancias EC2 son como ese amigo que reacciona de forma exagerada a todo.
Gestionar el autoescalado se sentía como enseñar a un pez a hacer malabares—es posible, pero ¿a qué costo? Ajustar manualmente los grupos de escalado, configurar balanceadores de carga y rezar para no provisionar de más se sentía como un segundo trabajo al que nunca me postulé.
Nadie me dijo que el desarrollo con Laravel venía con un lado de responsabilidades de sysadmin:
sudo
, esperando que funcionaran esta vez.No me inscribí para esta vida.
Fue entonces cuando comencé a explorar alternativas, y serverless se destacó como la solución perfecta para resolver estos dolores de cabeza.
Aclaremos un mito: serverless no significa "sin servidores". Solo significa que los servidores son el problema de otra persona. En este caso, AWS hace el trabajo pesado mientras yo me concentro en lo que realmente disfruto: programar.
AWS Lambda es como un superhéroe que solo aparece cuando lo necesitas. Ejecuta tu código en respuesta a eventos—solicitudes HTTP, mensajes de SQS, tareas programadas, tu nómbralo. Y cuando el trabajo termina, desaparece más rápido que una pizza gratis en una reunión de desarrolladores.
Serverless no es solo Lambda—es un ecosistema. AWS reemplaza tu infraestructura DIY (hazlo tú mismo) con servicios administrados que "simplemente funcionan":
Debo admitirlo: PHP no nació para serverless. Es como pedirle a un pez que trepe un árbol—se quejará, pero eventualmente lo hará. Laravel, tradicionalmente dependiente de PHP-FPM, necesitó algunos ajustes para prosperar en el mundo efímero de Lambda:
Storage
de Laravel..env
con AWS Secrets Manager o Parameter Store para una gestión centralizada y segura de la configuración.Recuerda que serverless no se trata solo de reemplazar servidores por funciones Lambda. Se trata de repensar tu arquitectura—dejando que AWS maneje los puntos de dolor operativos mientras tú te concentras en construir.
Entonces, ¿Laravel en serverless realmente cumple sus promesas?
Serverless no es solo una palabra de moda, es un cambio transformador. La belleza de Laravel en serverless radica en su capacidad para resolver los puntos débiles del alojamiento tradicional, al mismo tiempo que permite soluciones más rápidas, escalables y rentables. Pero la verdadera magia ocurre cuando profundizas en cómo se combinan estos beneficios. Vamos a desglosarlo.
Los cold starts ocurren cuando Lambda inicializa una nueva instancia. Piensa en ello como si PHP despertara de una siesta. Los críticos los tratan como si fueran el apocalipsis, pero son manejables:
Para la mayoría de las aplicaciones, los retrasos menores a 3 segundos durante el tráfico bajo son aceptables. La mayoría de los usuarios no notará un cold start, especialmente durante cargas máximas de tráfico cuando Lambda permanece "caliente".
El escalado en el hosting tradicional suele parecer una batalla interminable. Con serverless, el escalado se vuelve muy sencillo: ya no es necesario ajustar las reglas de autoescalado ni cruzar los dedos durante un aumento repentino de tráfico. AWS Lambda elimina las conjeturas, escalando horizontalmente por defecto.
Aquí va un ejemplo:
Esto no es solo comodidad, es tranquilidad. Mientras tú te concentras en celebrar el éxito de tu aplicación, Lambda hace el trabajo pesado. ¿Y lo mejor? Solo pagas por el tiempo de computación que usas, no por la capacidad inactiva que podrías necesitar "por si acaso".
Serverless no solo ahorra dinero, es como tener un buffet de $5 donde solo pagas por lo que comes.
Recurso | Costo EC2 | Costo Lambda |
---|---|---|
Computación | $60.00 | $4.50 |
Red (LB, API Gateway) | $16.40 | $0.30 |
Almacenamiento | $7.80 | $2.90 |
Base de datos | $26.00 | $26.00 |
TOTAL | $110.20 | $33.70 |
En resumen, serverless no solo ahorra dinero, libera ancho de banda mental. Cuantos menos recursos desperdicie preocupándome por el sobreaprovisionamiento, más puedo concentrarme en construir algo increíble.
Hasta ese momento, todavía utilizaba una instancia MySQL como motor de base de datos. Publicaciones posteriores explorarán cómo migrar a DynamoDB para reducir aún más los costos.
Serverless me liberó de las cadenas del mantenimiento de servidores. Aquí está cómo:
Serverless no solo reduce el mantenimiento, elimina las distracciones operativas que te impiden programar.
Por muy revolucionario que sea Laravel en serverless, no es una solución universal. Para algunas aplicaciones, la naturaleza stateless y orientada a eventos de serverless puede parecer un sueño hecho realidad. Para otras, puede parecer como tratar de encajar un cuadrado en un círculo. Antes de subirte al tren de serverless, retrocedamos un poco y evaluemos si es adecuado para tu proyecto.
Laravel adora las operaciones que guardan información entre interacciones, como almacenar archivos localmente y guardar sesiones en el sistema de archivos. Para pasar a serverless, debes cambiar:
.env
a AWS Secrets Manager o Parameter Store para una gestión centralizada.Los servicios de AWS son mágicos, pero también son propietarios:
Serverless no es una bala de plata para todas las cargas de trabajo. Debes evitarlo si:
Laravel en serverless tiene el potencial de transformar la forma en que construyes y despliegas aplicaciones, pero la verdadera magia está en la implementación. ¿Estás listo para dar el salto y darle a tu aplicación Laravel el tratamiento serverless? Mantente atento a la Parte 2, donde te guiaré a través de los pasos exactos para llevar esta arquitectura a la vida.