¿Qué es PaaS? Platform as a Service frente a IaaS, SaaS y Kubernetes

Tres pilas de bloques para IaaS, PaaS y SaaS, con las capas que gestiona el proveedor en verde

En resumen

  • Platform as a Service (PaaS) es un modelo cloud en el que despliegas código fuente o una imagen de contenedor y el proveedor se encarga de los servidores, los sistemas operativos, las builds, los despliegues y el escalado.
  • Tú sigues siendo responsable de tu código, la configuración, los secretos y los datos, y de elegir tamaños y regiones.
  • Frente al IaaS gestionas menos; frente al SaaS sigues publicando tu propio software, y a diferencia de Kubernetes, muchas plataformas PaaS hacen la build de tu código fuente por ti, y la mayoría también despliega una imagen de contenedor que aportes tú.
  • Para evitar el lock-in, elige un PaaS que construya imágenes de contenedor estándar a partir de un Dockerfile o de Cloud Native Buildpacks y que ejecute motores de bases de datos estándar.

Platform as a Service (PaaS) es un modelo cloud en el que entregas tu aplicación, como código fuente o como imagen de contenedor, y el proveedor la ejecuta. La plataforma hace la build, la despliega, la escala y opera los servidores, los sistemas operativos y las redes que hay debajo. Tú sigues a cargo de la aplicación, de su configuración y de sus datos.

La definición más citada viene del National Institute of Standards and Technology de EE. UU. (NIST SP 800-145). Con un PaaS despliegas tus propias aplicaciones en la infraestructura del proveedor, pero no gestionas ni controlas la infraestructura cloud subyacente, incluidos la red, los servidores, los sistemas operativos y el almacenamiento (en el original: “not manage or control the underlying cloud infrastructure including network, servers, operating systems, or storage”). Lo que sí controlas son las aplicaciones desplegadas y, en algunos casos, ajustes del entorno de hosting.

De qué se encarga un PaaS

La lista exacta varía según el proveedor, pero un PaaS completo cubre casi todo esto:

  • Builds: convierte un repositorio Git en una imagen ejecutable, ya sea con buildpacks que detectan tu lenguaje o a partir de un Dockerfile que incluyes en el repositorio.
  • Despliegues: publica las nuevas releases, a menudo con cada push a una rama, y guarda un historial de qué se ejecutó y cuándo.
  • Escalado: para tener más réplicas o un tamaño mayor basta con cambiar un ajuste, sin instalar otro servidor.
  • TLS y dominios: cada app recibe un hostname, y la plataforma emite y renueva los certificados de tus propios dominios.
  • Logs y métricas: logs de ejecución y gráficas de CPU y memoria sin mantener tu propio stack de logging.
  • Bases de datos gestionadas: PostgreSQL, MySQL o una caché junto a la app, con réplicas y backups como opciones.
  • Servidores y sistemas operativos: aplicar parches a los hosts, sustituir el hardware que falla y mantener la red en funcionamiento.

Qué sigue siendo cosa tuya

Un PaaS te quita el trabajo de infraestructura, no la responsabilidad sobre tu producto. Sigues siendo responsable de:

  • Tu código y sus dependencias, incluida la actualización de librerías cuando se publica una vulnerabilidad.
  • Configuración y secretos: variables de entorno, claves de API y quién de tu equipo puede verlas.
  • Tus datos: el esquema, las migraciones, activar los backups y probar una restauración.
  • Dimensionamiento y coste: cuántas réplicas ejecutas y con qué plan, y la factura que resulta.
  • Seguridad de la aplicación: autenticación, validación de entradas y acceso al dashboard.
  • Ubicación: en qué región se ejecutan tu app y sus datos.

PaaS vs IaaS vs SaaS vs serverless vs Kubernetes

Los modelos se diferencian en lo que delegas y lo que sigues gestionando. Una comparación aproximada:

ModeloLo que aportasLo que gestiona el proveedorLo que sigues gestionando túUso típico
IaaSMáquinas virtuales, discos, redesHardware, virtualización, centros de datosSistema operativo, runtime, despliegues, escalado, parchesControl total, software heredado o especial
PaaSCódigo fuente o una imagen de contenedorServidores, SO, builds, despliegues, enrutamiento, a menudo bases de datosAplicación, configuración, datosApps web, APIs, workers
SaaSNada que desplegarToda la aplicaciónAjustes, usuarios y tus datos en la appSoftware de gestión estándar
Serverless (FaaS)FuncionesEjecución por evento o petición, escalado según la demandaCódigo de las funciones, arranques en frío, límites de tiempo y tamañoCargas basadas en eventos y con picos
KubernetesImágenes de contenedor y manifiestosComo servicio gestionado: el control planeNodos, deployments, ingress, configuración del escalado, CI/CD, loggingGrandes infraestructuras con un equipo de plataforma

El IaaS te da máquinas virtuales y deja el resto en tus manos. El NIST lo describe como el aprovisionamiento de “processing, storage, networks, and other fundamental computing resources” (capacidad de procesamiento, almacenamiento, redes y otros recursos informáticos fundamentales) sobre los que ejecutas cualquier software, incluido el sistema operativo.

El SaaS está en el otro extremo: usas la aplicación terminada del proveedor en el navegador o a través de una API y no despliegas nada.

El serverless, en el sentido de funciones, ejecuta tu código como pequeñas funciones que se disparan con eventos o peticiones HTTP, y factura según la demanda real. El whitepaper sobre serverless de la CNCF señala que la mayoría de los runtimes limitan el tamaño o el tiempo de ejecución de cada función, y que el arranque tras periodos de inactividad puede ser lento. Un PaaS, en cambio, suele ejecutar tu app como un proceso siempre activo.

Kubernetes es un orquestador de contenedores, y su propia documentación dice que Kubernetes “is not a traditional, all-inclusive PaaS”, es decir, que no es un PaaS tradicional que lo incluye todo. No despliega código fuente, no hace la build de tu aplicación y no incluye bases de datos como servicios integrados. Ofrece piezas para construir plataformas. Lee PaaS vs Kubernetes para una comparación más detallada.

Cuándo encaja un PaaS

  • Desarrollas apps web, APIs o background workers en un lenguaje habitual.
  • En tu equipo nadie se dedica a gestionar servidores o clústeres, y prefieres no contratar a alguien para eso todavía.
  • Quieres una nueva versión en producción a los pocos minutos de un merge, con los logs y las métricas ya funcionando.
  • Necesitas las bases de datos, el almacenamiento y la app en un mismo sitio, con una sola factura.

Cuándo no encaja

  • Necesitas un kernel personalizado, hardware especial o control a bajo nivel de la red. Te encaja mejor una máquina virtual o un servidor bare metal.
  • Tu software espera acceso root, un sistema init completo o paquetes instalados con scripts del mantenedor. Un Dockerfile puede cubrir parte de esto; hay software que solo funciona bien en una VM.
  • Ejecutas cargas de trabajo grandes y estables y ya tienes un equipo de plataforma. En ese punto, gestionar tu propia infraestructura puede compensar.
  • Tu código se ejecuta unos segundos al día en respuesta a eventos. Una plataforma de funciones puede salir más barata.
  • Tienes un requisito legal o de cumplimiento normativo que las regiones o las certificaciones del proveedor no pueden cubrir.

Cómo evaluar un PaaS

Regiones y ubicación de los datos

Comprueba dónde se ejecutan realmente la app, la base de datos, los backups y los logs, y si puedes elegirlo por servicio. Comprueba también dónde están el plano de control del proveedor y los datos de la cuenta, y en qué país tiene su sede la empresa. Si tratas datos personales de personas en la UE, ambas cuestiones importan.

Servicios incluidos

Fíjate en qué viene con la plataforma y qué necesita un tercero: bases de datos, object storage, email, CDN, logs y métricas, entornos de preview. Cada complemento de otro proveedor es un contrato más, una factura más y un subencargado del tratamiento más.

Modelo de precios

Las plataformas facturan por instancia, por segundo de ejecución, por petición o por usuario (seat), y algunas miden además el ancho de banda, los minutos de build o el volumen de logs. Calcula un mes con tus números reales, incluidos la base de datos y un segundo entorno para staging.

Portabilidad

El lock-in suele esconderse en la build y en la configuración, no en el código. Elige preferiblemente una plataforma que construya imágenes de contenedor estándar a partir de un Dockerfile o de Cloud Native Buildpacks: el lifecycle de buildpacks exporta una imagen OCI, el mismo formato que ejecutan otras plataformas de contenedores. Mantén la configuración en variables de entorno y usa motores de bases de datos estándar de los que puedas hacer un dump para restaurarlo en otro sitio. Así, irte será una migración, no una reescritura.

Dónde encaja Nodion

Nodion es un PaaS operado por Nodion GmbH desde Stuttgart (Alemania). Despliegas desde Git con un Dockerfile o con los propios Cloud Native Buildpacks de Nodion, o desde una imagen ya construida. Cada app tiene procesos, logs, métricas y dominios. Las apps de Git pueden tener entornos de preview, y Postgres, MySQL, Valkey y ClickHouse gestionados se vinculan desde la pestaña Environment de la app. Eliges la región por servicio, por ejemplo EU Central en Fráncfort. Consulta Applications para ver los detalles.

Preguntas frecuentes

¿Qué es PaaS en pocas palabras?

Un PaaS es una plataforma que ejecuta tu aplicación por ti. Subes código o una imagen de contenedor, y el proveedor hace la build, la despliega y la escala en servidores que gestiona él, así que nunca instalas ni parcheas un sistema operativo.

¿Qué diferencia hay entre IaaS, PaaS y SaaS?

Con IaaS alquilas máquinas virtuales y gestionas todo desde el sistema operativo hacia arriba. Con PaaS solo gestionas tu aplicación y sus datos. Con SaaS usas una aplicación terminada y no despliegas nada.

¿Es Kubernetes un PaaS?

No. La documentación de Kubernetes dice que no es un PaaS tradicional que lo incluya todo: no hace la build ni el despliegue de código fuente y no tiene bases de datos integradas. Ofrece piezas sobre las que se pueden construir plataformas.

¿Cómo evito el vendor lock-in con un PaaS?

Elige una plataforma que construya imágenes de contenedor estándar a partir de un Dockerfile o de Cloud Native Buildpacks, mantén la configuración en variables de entorno y usa motores de bases de datos estándar como PostgreSQL o MySQL, de los que puedas hacer un dump para restaurarlo en otro sitio.

Dale a tu agente un cloud.

Hasta 15 € de crédito al registrarte.

Continuar con GitHub

o con tu email

Mantente al día.

Novedades del producto, sin spam. Puedes darte de baja cuando quieras.