A la hora de elegir un servicio de hosting para un sitio web, uno de los debates que más se dan es si es mejor optar por un modelo nuevo como lo es el serverless, o bien si es mejor ir por un hosting tradicional. Hoy vamos a ver qué nos ofrecen ambos tipos de servicios y cómo se pueden comparar entre sí.
Contenido
¿Qué es Serverless?
Lo que se conoce como serverless es un servicio basado en la nube donde podemos ejecutar aplicaciones sin necesidad de administrar servidores. Contrario a lo que a veces se cree, en el modelo serverless no es que no se usen servidores, sí se usan, pero su nombre radica en que solo debemos enfocarnos en nuestra app y no en el servidor.
En lugar de desplegar y mantener un servidor, los desarrolladores simplemente se enfocan en escribir su código y luego lo ejecutan en el servicio brindado por un proveedor. Este tipo de servicio con frecuencia es utilizado por aplicaciones que requieren escalar automáticamente, responder a eventos o ejecutarse en períodos de tiempo limitado.
El modelo serverless se enfoca en la conveniencia y la escalabilidad, pero tiene algunas desventajas que no lo hacen ideal para ciertas aplicaciones y para equipos que buscan tener un mayor control. Veamos entonces varios aspectos de este tipo de servicio y cómo se compara con un hosting tradicional.
Control y personalización
El hosting tradicional nos brinda más control sobre el ambiente en el que vamos a desplegar nuestra aplicación. Si tenemos un servidor dedicado o un Cloud VPS podemos elegir por nuestra cuenta el sistema operativo, instalar cualquier librería que necesitemos y realizar cualquier ajuste en la configuración para adaptarlo a nuestras necesidades.
Esta flexibilidad que brinda el hosting tradicional, y que no está presente en el modelo serverless, hace que un servidor común y corriente se convierta en una pieza indispensable para el funcionamiento de aplicaciones complejas o que requieren tecnologías específicas.
Los ambientes serverless, si bien ya vienen configurados para correr aplicaciones, tienen una gran limitación en lo que podemos personalizar. En muchas situaciones esto no supone un problema, pero cuando se requiere más flexibilidad para un proyecto entonces esta opción ya deja de ser tan atractiva.
Rendimiento
Con el hosting tradicional, especialmente en dedicados y VPS, sabemos exactamente de cuántos recursos disponemos para nuestras aplicaciones. Esto lleva a que se pueda lograr un rendimiento consistente, lo cual es importante para webs de alto tráfico y para servicios que requieren una latencia baja.
Dentro de un entorno serverless, el rendimiento no necesariamente va a tener esa consistencia, ya que se pueden experimentar arranques en frío que degradan el rendimiento, así como también casos de throttling cuando la carga es más alta de lo normal.
Para cuando se requiere respuestas en tiempo real o un comportamiento más predecible, esta variabilidad que tiene el modelo serverless se puede convertir en un problema.
Predicción de costos
Una de las principales ventajas de serverless se puede convertir en un arma de doble filo, y se trata de los costos. En un entorno de este tipo, el precio suele ser muy adecuado cuando tenemos tráfico bajo o irregular, dado que se cobra por uso de recursos, peticiones y transferencia consumida. Sin embargo, para casos de alto tráfico, esto puede convertirse en un problema, más aún si tenemos picos inesperados, lo cual se traduce en gastos inesperados.
El modelo serverless es genial a baja escala, pero siempre estará allí esa falta de predicción de los costos que se podrían afrontar cuando nos llegue la factura. Esto en el hosting tradicional no ocurre, ya que generalmente tenemos un costo mensual fijo, y estaremos pagando una cantidad previamente determinada, sin importar cuántos picos de tráfico ocurran.
Tiempos de ejecución
Cuando se trata de los tiempos de ejecución, muchas veces en el hosting tradicional podemos configurar nuestros propios tiempos según las necesidades de nuestras aplicaciones, es decir que si por ejemplo necesitamos que un proceso corra por horas podemos configurar nuestro servidor para que así sea.
Esto lamentablemente no ocurre siempre en los servicios serverless, ya que a veces los procesos pueden estar limitados a ejecutarse por 5, 10 o 15 minutos como máximo. Esto no representa un problema si tenemos procesos de rápida ejecución, pero si necesitamos algo que corra por más tiempo entonces se puede convertir en un dolor de cabeza.
Para determinados procesos, como por ejemplo el procesamiento de grandes cantidades de datos o una migración, tener limitaciones de este tipo solo nos traerá mayores complicaciones.
Debug y monitoreo
Bajo un servidor de hosting tradicional, el debug de aplicaciones y el monitoreo no son un problema, ya que al tener control completo de nuestro entorno podemos configurar todo según nuestras necesidades. Los desarrolladores pueden acceder fácilmente a logs, archivos del sistema e informes en tiempo real para diagnosticar y arreglar toda clase de problemas.
En este sentido, el hosting serverless es más complejo, ya que no se posee tanta flexibilidad para revisar todo a fondo como sí ocurre en el caso de contar con un servidor dedicado por ejemplo. Si bien el modelo serverless ha mejorado este aspecto en los últimos años, lo cierto es que el modelo tradicional sigue siendo más flexible y transparente.
Compatibilidad
Algo que no debemos olvidar es que no todas las aplicaciones están diseñadas para ejecutarse en un entorno serverless, de hecho muchas directamente no se podrían ejecutar allí dado que fueron creadas teniendo en mente un entorno de hosting donde se posee más control y flexibilidad.
Convertir una aplicación para que funcione en un ambiente serverless puede volverse una tarea muy compleja. Por otro lado, un servidor común y corriente al ser más flexible tendrá una compatibilidad mucho mayor si lo configuramos correctamente, lo cual sin dudas tomará mucho menos tiempo que readaptar una app para que funcione bajo otro entorno.
Los servidores de hosting tradicional suelen incorporar soporte para todo tipo de aplicaciones con solo instalar unos pocos paquetes, y esto puede incluir webs personalizadas en PHP, sitios hechos en CMS como WordPress, aplicaciones bajadas en Node.js, scripts hechos en Python, y mucho más.
Salvo casos muy puntuales, que por ejemplo requieren una tecnología no disponible en determinado sistema operativo, un servidor tradicional será compatible prácticamente con cualquier tipo de app.
Confiabilidad
Dicen que con la edad llega la experiencia, y lo cierto es que el hosting tradicional existe hace aproximadamente 30 años, y en todo ese tiempo este ecosistema ha logrado madurar y se han creado grandes comunidades de usuarios en torno a muchos proyectos distintos, desde sistemas operativos hasta CMS.
Dicho de otra manera, el hosting tradicional tiene una gran confiabilidad, dado que posee mucha documentación, muchas comunidades, gran cantidad de herramientas y una infinidad de proveedores.
El hosting serverless está creciendo rápidamente, pero no deja de ser un servicio nuevo y al cual muchos todavía ven como un producto “verde”, que le falta madurez y en el cual no se puede confiar al 100%.
La arquitectura serverless trae consigo mucha innovación, pero también tiene menos estandarizaciones, y lo que brinda un proveedor es posible que no lo brinde otro. Si se busca estabilidad y confiabilidad, quizá este modelo no sea el más adecuado, más aún teniendo en cuenta lo críticas que pueden ser algunas aplicaciones hoy en día.
Deploy y mantenimiento
Para equipos pequeños o para quienes realizan desarrollos por su cuenta de manera independiente, un servidor de hosting tradicional suele integrar todo lo que necesitamos en un solo lugar. Generalmente se dispone de un medio para tener acceso a archivos, bases de datos, dominios, certificados SSL, crones y más, ya sea a través de un acceso SSH o mediante un panel de control como cPanel.
Por otro lado, dentro de los servicios serverless es posible que necesitemos administrar varios servicios, permisos y configuraciones, como por ejemplo gateways, buckets, roles de IAM, etc. Algunas cosas se pueden hacer más fácilmente, pero la curva de aprendizaje no es muy buena y el hecho de tener las herramientas en distintos lugares se vuelve contraproducente.
Conclusión: ¿Serverless o Hosting Tradicional?
Ambos modelos de hosting tienen sus ventajas, y la elección entre serverless y tradicional va a depender en gran medida del tipo de proyecto que tengamos en nuestras manos, del equipo de trabajo y de las necesidades específicas que se presenten. Sin embargo, cuando estamos buscando estabilidad, control, compatibilidad y una experiencia más predecible en términos de rendimiento y costos, el hosting tradicional sigue siendo sin dudas la opción más sólida.
No se trata de que uno sea estrictamente mejor que el otro, sino de entender en qué escenarios cada modelo se puede aplicar mejor. Serverless puede ser ideal para proyectos rápidos, microservicios o aplicaciones muy específicas. Pero para sitios web complejos, procesos que demandan más recursos o desarrollos que deben mantenerse a largo plazo, el modelo tradicional ofrece un entorno mucho más flexible y confiable.