Dos desarrolladores y un dueño de negocio confundido
El mes pasado estuve en una reunión donde dos desarrolladores discutieron durante diez minutos sobre si la nueva aplicación de un cliente debía correr "serverless" o "en contenedores". La dueña del negocio estaba ahí sentada, con el café enfriándose, asintiendo en los momentos que parecían importantes. Después me llevó aparte y me hizo la pregunta que escucho todo el tiempo: "¿Qué acaban de acordar, y eso me va a costar más o menos?"
Esto pasa todo el tiempo. Las decisiones de hosting se toman en lenguaje técnico, pero tienen consecuencias reales para el negocio: cuánto paga, qué tan bien responde su sitio ante un pico de visitas, y cuánto depende de una sola persona para que todo siga funcionando. Así que vamos a aclararlo, sin tecnicismos.
Alquilar una habitación, alquilar un departamento o ser dueño de una casa
Piense en las distintas formas de conseguir un lugar donde alojarse.
Una habitación de hotel. Llega, paga por la noche y se va cuando quiere. Otra persona la limpia, arregla la plomería y atiende la recepción. Usted nunca piensa en el cableado del edificio. Pero paga un extra por esa comodidad, y si se quedara todas las noches del año, la cuenta subiría rápido.
Un departamento alquilado. Firma un contrato y paga el alquiler cada mes, esté en casa o no. Tiene más espacio y más control sobre cómo lo organiza, pero igual comparte el edificio con un propietario que se encarga del techo, el ascensor y el calefón.
Una casa propia. La paga una sola vez, o con una hipoteca, y después es suya para manejarla como quiera. Sin propietario, sin paredes compartidas, sin restricciones sobre lo que construye en el patio. Pero cada gotera, cada caldera rota y cada factura de reparación es responsabilidad exclusivamente suya.
El hosting serverless es la habitación de hotel. Los contenedores son el departamento alquilado. Un servidor tradicional es la casa propia. Veamos cada uno.
Serverless: solo paga cuando alguien aparece
"Serverless" no significa que no haya un servidor. Significa que usted no lo administra. Su código queda listo, y un proveedor en la nube, como Amazon, Google o Microsoft, lo ejecuta solo cuando alguien realmente lo usa, y después lo apaga otra vez. Le cobran por esos segundos de actividad, en lugar de cobrarle por mantener una máquina encendida las veinticuatro horas.
Por eso serverless encaja con negocios de tráfico impredecible o con picos puntuales. El precio suele basarse en la cantidad de solicitudes y en cuánto tarda cada una en procesarse, así que un mes tranquilo puede costar casi nada. Si lanza una página de promoción de temporada, o un formulario de reservas que se usa unos cientos de veces al día, suele ser la opción más barata y la que menos trabajo requiere, porque nadie tiene que vigilar un servidor que pasa la mayor parte del tiempo sin usarse.
La contrapartida: con un volumen muy alto y constante, ese precio por uso deja de ser conveniente. Cuando una aplicación recibe un flujo constante de tráfico todo el día, todos los días, en la práctica está pagando la "tarifa de hotel" por una estadía que le habría salido más barata con un contrato de alquiler.
Contenedores: un espacio predecible que usted controla
Un contenedor empaqueta su aplicación junto con todo lo que necesita para funcionar, así se comporta igual sin importar dónde se instale. Piénselo como un departamento amueblado: las paredes, la plomería y la distribución están armadas de forma repetible, y puede mover esa misma configuración entre distintos edificios, es decir, servidores, sin rehacer el trabajo cada vez.
Los contenedores corren de forma continua, lo que significa que paga un monto mensual más predecible, parecido a un alquiler que a una tarifa por noche. Para un negocio con tráfico estable y constante, esa previsibilidad, sumada a un costo por visita más bajo, suele ganar. Las comparaciones de costos del sector muestran, de forma constante, que cuando el tráfico es alto y constante, los contenedores con capacidad reservada terminan siendo más baratos que la factura equivalente de serverless, porque deja de pagar un extra por uso sobre una infraestructura que de todas formas usa cada minuto.
Los contenedores también le dan más flexibilidad que serverless: puede correr tareas en segundo plano, procesos largos y configuraciones de software personalizadas que las plataformas serverless suelen restringir.
Un servidor tradicional: todo es suyo, incluido el mantenimiento
Un servidor tradicional, o "dedicado", es una máquina física o virtual que es completamente suya, igual que una casa propia. Instala lo que quiere, controla cada configuración y no comparte recursos con desconocidos. Para negocios con requisitos estrictos de cumplimiento normativo, necesidades de software poco comunes, o cargas de trabajo que exigen control total hasta el sistema operativo, a veces esta es la única opción que encaja.
El costo es fijo, use el 10% o el 100% de la capacidad de la máquina. Es como pagar la hipoteca igual en un mes tranquilo que en uno agitado. También asume el mantenimiento: los parches de seguridad, las fallas de hardware y la planificación de capacidad quedan a su cargo o a cargo de quien contrate para administrarlo.
Qué opción le conviene a su negocio
Aquí está la versión en lenguaje simple de la decisión:
- Tráfico con picos o impredecible, volumen general bajo: serverless. Paga casi nada cuando nadie usa la aplicación, y escala al instante durante un pico sin que nadie mueva un dedo.
- Tráfico estable y constante: contenedores. Costo mensual predecible, más control, y más barato que serverless una vez que el volumen es alto de forma sostenida.
- Control total, cumplimiento normativo o requisitos técnicos poco comunes: un servidor tradicional. Más responsabilidad, pero ningún propietario le dice qué puede y qué no puede hacer.
La mayoría de los negocios en crecimiento terminan usando una combinación, de la misma forma en que una empresa puede ser dueña de su oficina central pero reservar una habitación de hotel para un viaje puntual. Un sistema central estable corre en contenedores, mientras que una función ocasional, como un generador de reportes puntual o un formulario de inscripción de temporada, corre en serverless.
Un ejemplo real
Un cliente del rubro retail especializado tenía una página de venta flash dos veces al año, además de una tienda online de uso diario. Pusimos la tienda diaria en contenedores, porque funcionaba todo el día, todos los días. La página de venta flash quedó en serverless, porque no tenía casi tráfico durante 363 días y recibía un pico enorme en los otros dos. Esa combinación redujo la factura de hosting en aproximadamente un tercio, comparado con correr todo en un único servidor tradicional dimensionado para el pico más grande posible. Esto se relaciona con lo que explico en decisiones de migración a la nube para pequeñas empresas: la forma correcta de hosting suele seguir la forma de su tráfico, no una regla única para todos.
No tiene que elegir solo
No necesita volverse experto en arquitectura de servidores para tomar una buena decisión aquí. Necesita a alguien que mire cómo sus clientes realmente usan su aplicación, y que ajuste el hosting a ese patrón en lugar de elegir lo que suene más de moda en una reunión.